将一幅图像叠加在另一幅图像上,得到的是蓝色框,而不是图像-MATLAB

将一幅图像叠加在另一幅图像上,得到的是蓝色框,而不是图像-MATLAB,matlab,image-processing,matlab-figure,Matlab,Image Processing,Matlab Figure,我试图在MATLAB中将一个图像叠加在另一个图像上 我退房了 我想知道答案。但问题是,重叠图像在原始图像上显示为蓝色框,而不是实际图像 此处显示了不正确的输出 我使用的代码是 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], [

我试图在MATLAB中将一个图像叠加在另一个图像上

我退房了 我想知道答案。但问题是,重叠图像在原始图像上显示为蓝色框,而不是实际图像

此处显示了不正确的输出

我使用的代码是

    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的值,但似乎不起作用。

看看如何使用属性
Blend

你也可以试试这个:

figure;
h = imshow(FirstImage);
set(h,'AlphaData',0.2);

hold on;
imshow(SecondImage);    
hold off;

我看到了这个功能,看起来很有趣。但问题是,我在一个循环中生成了多个图像,它们被叠加到原始图像上。如何使用
imshowpair
实现这一点?例如,如果要覆盖3张图像?是的,需要设置每个新图像的位置,正如我的原始代码中所示。也许您可以尝试调用多次imshowpair?像这样:
图;imshowpair(im,im2);I=getframe;图形imshowpair(im3,I.cdata)问题是,我不知道我需要调用多少次
imshowpair
,因为循环是动态的,基于输入。另外,如何设置叠加图像的位置?