まず最初に、私の下手な英語を許してください。私はその中で働いています。
私はコンピュータービジョンアプリケーションで働いています。ウェブカメラを使用しています。メインループは次のようになります。
while true
get frame
process frame
show frame in figure
end while
そして、私はこのようなものが欲しい:
while figure is open
get frame
process frame
show frame in figure
end while
以前は、フレームのプロットに figure と imshow を使用し、ユーザーが Figure をいつ閉じたかを知るためにハンドラーを使用していました。
fig = figure;
set(fig,'KeyPressFcn','exit = true;');
set(fig,'CloseRequestFcn', 'exit = true; delete(gcf)');
しかし、今は Computer System Toolbox の vision.VideoPlayer を使用しています。より高速であり、同様の方法を見つけることができません。GUIを使いたくない。
コードはこれです(この他のスレッドから):
vid = videoinput('winvideo', 1, 'RGB24_320x240'); %select input device
hvpc = vision.VideoPlayer; %create video player object
src = getselectedsource(vid);
vid.FramesPerTrigger =1;
vid.TriggerRepeat = Inf;
vid.ReturnedColorspace = 'rgb';
src.FrameRate = '30';
start(vid)
%start main loop for image acquisition
for t=1:500
imgO=getdata(vid,1,'uint8'); %get image from camera
hvpc.step(imgO); %see current image in player
end
アイデア?