2

我可以使用 matlab 在不同的窗口中显示 3-4 个输出(图形输出,相同的图像)吗?如下图所示。

更多说明-例如-

for i=1:10 
vid = videoinput('winvideo', 2);
set(vid,'FramesPerTrigger',2);
start(vid);
imageData=getdata(vid,1);
I=rgb2gray(imageData);
figure,imshow(I);
end

在这种情况下,10 帧将显示在 10 个不同的图中。我不想这样做。我想在同一个窗口中显示所有框架,即使框架每次都改变。 在此处输入图像描述

我不是在谈论数字或子图。并且每次都可以在同一个窗口中更改输出。

问候,

4

2 回答 2

2

您可以使用简单的代码调用已创建的图形figure(h)。这样,就不会创建新的图形窗口。

h = figure; %create figure
...
figure(h); %call the figure h and draw in it.

使用您的代码

h = figure;

for i=1:10   
  vid = videoinput('winvideo', 2);  
  set(vid,'FramesPerTrigger',2);  
  start(vid);  
  imageData=getdata(vid,1);  
  I=rgb2gray(imageData);  

  figure(h);

  imshow(I);  
end  
于 2013-08-26T09:21:32.370 回答
1

最接近的可以(可能)来创建一个带有图像且没有标题或菜单栏的简单矩形框,如下所示:

imagesc(randn(50)) % <-- display the image

axis off, set(gca,'Position',[0 0 1 1]), set(gcf,'menubar','none')

据我所知,不可能摆脱标题栏,例如,请参见this

编辑

关于您的具体示例,您可以尝试imagescor image,如下所示:

hgcf1=figure;
imagesc(randn(50)); hgca1=gca; axis off, set(hgca1,'Position',[0 0 1 1])
set(hgcf1,'units','normalized','Position',[0.1 0.6 0.4 0.3],'menubar','none')

while 1
    pause(0.5)
    imagesc(randn(50)); 
end

如果你想使用 imshow:

hgcf1=figure;
imshow(randn(50));  hgca1=gca; 
set(hgca1,'Position',[0 0 1 1])
set(hgcf1,'units','normalized','menubar','none')
axis tight off
while 1
    pause(0.5)
    imshow(randn(50)); 
    hgca1=gca;
    set(hgca1,'Position',[0 0 1 1])
    axis tight
end
于 2013-08-26T09:16:15.063 回答