2013-08-26 44 views
2

我可以在不同窗口中使用matlab.s3-4輸出(圖形輸出,相同圖像)。在不同的窗口中輸出

更多clarification- 例 -

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個不同的圖中示出被。我不想這樣做。我想要在同一個窗口中顯示所有的幀,即使幀每次都改變。 enter image description here

我不是在談論數字或子圖。並且可以在同一個窗口中每次更改輸出。

問候,

+0

你所說的 「產出」 的意思是?圖形輸出或命令式輸出? – marsei

+0

圖形輸出。相同的圖像 – MMH

+0

不知道你可以實現,不參考數字(數字是窗口)。一種方法是創建一個適合整個屏幕的圖形,並在其中有4個面板。 – marsei

回答

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 
+0

嗨,如果我想要製作多個窗口,如我在原圖中所述? – MMH

+1

嗨,你可以聲明幾個像'h1 = figure; h2 =圖; ...;圖(h1)...'。你也可以使用[這個matlab鏈接]設置圖的位置(http://www.mathworks.com/help/matlab/creating_plots/positioning-figures.html) – marsei

+0

非常感謝你 – MMH

1

最接近的一種,可以(可能)來與圖像創建一個簡單的矩形框和沒有標題或菜單欄是類似以下內容:

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

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

至於我可能會發現它不可能擺脫標題欄,請參閱this

編輯

關於你提到的具體的例子,你可以嘗試imagescimage,這樣的事情:

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