如何使用MATLAB以定时间隔获取图像?

Ver*_*ica 3 matlab camera image timer capture

我是一名MATLAB初学者,我想知道如何从我的相机以5秒的间隔获取并保存20张图像.非常感谢你.

Ric*_*ard 6

首先构建视频输入接口

vid = videoinput('winvideo',1,'RGB24_400x300');
Run Code Online (Sandbox Code Playgroud)

您需要调整网络摄像头的最后一位.要查找网络摄像头设备列表(以及其他内容),请使用:

imaqhwinfo
Run Code Online (Sandbox Code Playgroud)

以下内容使第一个网络摄像头成为一个对象

a=imaqhwinfo('winvideo',1)
Run Code Online (Sandbox Code Playgroud)

查找支持的视频格式列表

a.SupportedFormats
Run Code Online (Sandbox Code Playgroud)

然后,您将要启动界面:

start(vid);
preview(vid);
Run Code Online (Sandbox Code Playgroud)

现在您可以执行以下操作:

pics=cell(1,20)
for i=1:20
   pause(5);
   pics{i}=getsnapshot(vid);
end
Run Code Online (Sandbox Code Playgroud)

或者,正如其他评论员所指出的那样,您也可以使用Matlab计时器进行间隔.

如果您希望以相当短的间隔(每秒1次或更多)捕获图像,将网络摄像头视为视频源可能更有用.我已经给出了这个问题的答案,答案列出了实现这一目标的方法.