首先,请原谅我的英语不好。我正在里面工作。
我正在从事计算机视觉应用程序。我正在使用网络摄像头。主循环是这样的:
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 来绘制框架,并且我使用处理程序来了解用户何时关闭图形。
fig = figure;
set(fig,'KeyPressFcn','exit = true;');
set(fig,'CloseRequestFcn', 'exit = true; delete(gcf)');
但是现在我正在使用计算机系统工具箱中的 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
有什么想法?