2017-05-23 44 views
1

我第一次創建了一個圖形來將攝像頭圖像流到它上面。然後,我從網絡攝像頭傳輸數據時在圖上創建了3D軸。請注意,網絡攝像頭幀流式傳輸不是在3D軸內部設置,而是在圖中的3D軸之外設置。問題是,由於uistack(ah,'bottom')函數,當流式傳輸攝像頭時,圖形保持閃爍。我需要這個功能來將3D軸ah保留在流圖背景frame的前面。matlab - 流動攝像頭時figure保持閃爍

正如你所看到的,我使用我的攝像頭來流蘋果。由於uistack(ah,'bottom')功能,您還可以看到3D軸在背景前。如果我沒有使用這個功能,3D軸將隱藏在背景之後。

enter image description here

% turn on webcam 
camList = webcamlist; 
cam = webcam(camList{1}); 

% stream webcam 
while(1) 
    frame = snapshot(cam); 
    ah = axes('unit','normalized','position',[0 0 1 1]); 
    imagesc(frame) 
    drawnow 
    set(ah,'handlevisibility','off','visible','off','Clipping','off') 
    uistack(ah,'bottom') 
end 

回答

0

我解決了這個問題。

需要定義兩個軸:(i)一種用於流傳輸圖像az和(ii)另一個用於靜態圖象ah循環外。此外,將uistack功能放置在之外,因爲多餘的是告訴程序在每個循環中將ah保留在az軸之上。

camList = webcamlist; 
cam = webcam(camList{1}); 

hold on 
az = axes('unit','normalized','position',[0 0 1 1]); 
ah = axes('unit','normalized','position',[0 0 1 1]); 
uistack(ah,'top') 

while(1) 
    frame = snapshot(cam); 
    imagesc(az,frame) 
    drawnow 
end