在matlab中显示覆盖在同一图中的贴片的多个图像

时间:2012-07-09 18:04:26

标签: image matlab

我有一个覆盖了补丁的图像,我希望能够在同一个图上显示多个图像,所有图像都有不同的叠加补丁。我尝试使用subplot命令,但它不起作用。我在下面定义了我的轴和父图。

hFig = figure;
hAx = axes('Parent',hFig);
hAx2 = axes('Parent',hFig);

fh = figure('units','pixels',...
          'position',[300 300 440 500],...
          'menubar','none',...
          'name','SliderTool',...
          'numbertitle','off',...
          'resize','off');


subplot(1,2,1) imshow(image1,'Parent','hAx');
patch(....,'parent', 'hAx');
subplot(1,2,2) imshow(image2,'Parent','hAx2');
patch(....,'parent', 'hAx2');

这是我想要做的基本想法,但由于某种原因,我无法让它发挥作用。我不正确地使用手柄吗?

2 个答案:

答案 0 :(得分:1)

我不完全确定这会解决你想要做的事情,但我认为这会给你一个正确的方向。

Subplot option

Imshow/subimage option

您可能还需要使用Hold来应用修补程序而不替换您首先显示的图像。

答案 1 :(得分:1)

你是否想要做这样的事情:

image1 = imread('street1.jpg');
image2 = imread('street2.jpg');

ha1 = subplot(1,2,1) ;
imshow(image1);    
X = get(ha1,'Xlim')/2;
Y = get(ha1,'Ylim')/2;    
patch(X([1 2 2 1]),Y([1 1 2 2]),'m','FaceAlpha',0.5,'parent', ha1 );

ha2 = subplot(1,2,2) ;
imshow(image2);
X = get(ha2,'Xlim')/2;
Y = get(ha2,'Ylim')/2;    
patch(X([1 2 2 1]),Y([1 1 2 2]),'b','FaceAlpha',0.3,'parent', ha2);