【问题标题】:Overlaying one image on another gives blue boxes instead of image - MATLAB将一张图像叠加在另一张图像上会给出蓝色框而不是图像 - MATLAB
【发布时间】:2014-06-04 19:57:11
【问题描述】:

我正在尝试在 MATLAB 中将一个图像叠加到另一个图像之上。

我签出了Superimpose two images in MATLAB 寻求答案。但问题是叠加的图像在原始图像上显示为蓝色框,而不是实际图像。

此处显示不正确的输出http://imgur.com/R1QZh32

我使用的代码是

    a = 0.2;
    tform = affine2d([1 0 0; a 1 0; 0 0 1]);
    B = imwarp(z,tform, 'FillValues',255);
    B = ~B;
    figure; imshow(B);
    h = imagesc([X1 X2], [Y1 Y2], B);
    set(h, 'AlphaData', 1);

正常的imshow(B) 向我显示了正确的图像,但覆盖部分给了我问题。

我已尝试更改 AlphaData 的值,但这似乎不起作用。

【问题讨论】:

    标签: matlab image-processing matlab-figure


    【解决方案1】:

    看看函数imshowpair 和属性Blend

    你也可以试试这个:

    figure;
    h = imshow(FirstImage);
    set(h,'AlphaData',0.2);
    
    hold on;
    imshow(SecondImage);    
    hold off;
    

    【讨论】:

    • 我看到了那个函数,看起来很有趣。但问题是,我在一个循环中生成了多个图像,并且它们被叠加到原始图像上。我如何使用imshowpair 实现这一目标?
    • 如果你有 3 张图片要叠加?
    • 是的,每个新图像的位置都需要设置,可以在我的原始代码中看到。
    • 也许您可以尝试多次调用 imshowpair ?像这样:figure;imshowpair(im,im2); I = getframe; figure;imshowpair(im3,I.cdata);
    • 问题是,我不知道我需要调用多少次imshowpair,因为循环是动态的,基于输入。另外,如何设置叠加图像的位置?
    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    相关资源
    最近更新 更多