【问题标题】:Displaying multiple images with patches overlayed in the same figure in matlab在matlab中显示多个图像,其中补丁覆盖在同一图中
【发布时间】:2012-07-09 18:04:26
【问题描述】:

我有一个用补丁覆盖的图像,我希望能够在同一个图形上显示多个图像,所有这些图像都具有不同的覆盖补丁。我尝试使用 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');

这是我想做的基本想法,但由于某种原因我无法让它发挥作用。我是否错误地使用了把手?

【问题讨论】:

  • 您想在图的同一面板中显示图像吗?还是在子图中可以接受?
  • 同一图上的不同面板是首选,但子图也可以。

标签: image matlab


【解决方案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);

【讨论】:

  • 是的,这正是我想要的!
【解决方案2】:

我不完全确定这会解决您正在尝试做的事情,但我认为它会为您指明正确的方向。

Subplot option

Imshow/subimage option

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

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多