在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');

这是我想做什么的基本想法,但由于某种原因,我无法实现。我是不是用错把手了?

你想做这样的事情吗:

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);

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

子批次选项

Imshow/subimage选项

您可能还需要使用"保持"来应用补丁,而不替换您首先显示的图像。