【发布时间】:2015-08-08 18:28:57
【问题描述】:
我有一个代码,它使用 USB 视频采集器从模拟相机获取图像。对我来说最大的问题是,每当我使用 GETSNAPSHOT 获取图像时,该过程需要几秒钟才能执行,而设备的帧速率实际上是每秒 30 帧。有趣的是preview(vidObj) 工作得非常好。我知道对于 GETSNAPHOT 为何如此缓慢的原因进行了很多讨论,并且提出了一种使用 TRIGGERCONFIG 非常受欢迎的解决方案,但由于某种原因,这对我来说并没有提高图像采集率。我将在下面解释这两种情况:
-
直接使用GETSNAPSHOT
obj = videoinput('winvideo', 2); while someconditionhere img= getsnapshot(cam); % extract frame i from the video imshow(img); %do stuff end -
使用 TRIGGERCONFIG
obj = videoinput('winvideo', 2); triggerconfig(obj,'manual'); start(obj); while someconditionhere img= getsnapshot(cam); % extract frame i from the video imshow(img); %do stuff end
我试图让预览窗口在后台运行(我在网上找到了一个粗略的解决方案),但是我的 while 循环没有执行。另外,如果在第一个代码中,我添加了start(obj),那么它会给我一个错误:“GETSNAPSHOT 期间发生超时。”
我的想法已经不多了,我要在几个小时内完成。任何帮助将不胜感激!
【问题讨论】:
-
另外,我在使用我的网络摄像头时根本没有遇到这个问题,所以我知道代码可以工作,但真正发挥作用的是摄像头。而且由于预览效果很好,绝对不是 USB 视频采集卡导致任何问题。