我想在 MATLAB 中叠加两个图像(I
和 imagesc(data)
),然后在它们上面绘制一个矩形。 I2
指定以下代码中的透明度模式。矩形变成图像顶部的一条线。谁能告诉我为什么矩形绘制不正确?
imshow(I);
hold on;
h = imagesc(data,[0,1]);
hold off;
I2 = ones(height,width) * 80;
set(h, 'AlphaData', I2);
rectangle('Position',[100,100,20,20]);
最佳答案
由于我们无法在没有所有数据的情况下准确地重现您的代码,因此这里是带有示例图像的完整示例:
%# some sample images
I = imread('coins.png');
I_transp = imread('peppers.png');
%# create a gaussian mask for transparency
[r,c,~] = size(I_transp);
M = fspecial('gaussian', [r c], mean([r c]./5));
M = (M-min(M(:)))./range(M(:));
%# show overlayed images
figure, imshow(I, 'XData',[1 c], 'YData',[1 r]), hold on
hImg = imshow(I_transp);
set(hImg, 'AlphaData',M);
%# draw a rectangle
rectangle('Position',[355 220 100 100], 'LineWidth',2, 'EdgeColor','b');
关于matlab - 在重叠的图像上绘制一个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6602697/