%首先,在运行代码之前,需要现在matlab的附加资源管理器中,获取硬件支持包
%点击应用程序中的获取更多程序,分别搜索camera,usb webcam 和OS Generic Video Interface,
%找到下面三张图中的程序并下载到自己matlab常用的文件夹
%最后在matlab的当前文件夹中找到并点击安装这三个硬件支持包



%-----------------常用代码-----------------------------
clear ; clc; close all;
%imaqhwinfo()可以了解摄像头的属性,它返回一个结构体
%结构体中有摄像头的信息DeviceInfo
%包括摄像头的ID号 DeviceID,和摄像头支持的视频格式SupportedFormats
cam_info = imaqhwinfo('winvideo');
cam_info.DeviceInfo.DeviceID;
cam_info.DeviceInfo.SupportedFormats ;
%创建视频输入对象
%winvideo是适配器名称,第二个参数是DeviceID(摄像头ID);
%通常电脑自带的摄像头ID号都是1
vid = videoinput('winvideo',1);
%设置视频格式
%video=videoinput('winvideo',1,'YUY2_1280x720');
%设置视频色彩
%set(vid,'ReturnedColorSpace','grayscale'); %灰度显示视频对象
%set(vid,'ReturnedColorSpace','rgb'); %彩色显示视频对象
%显示所创建的视频对象
preview(vid);
%保存视频的原理其实是把摄像头中各个时刻的画面连接起来组成视频,然后对其进行保存
%通过VideoWriter()函数创建名为 film.avi 的视频文件对象writerObj
writerObj = VideoWriter( 'film.avi' );
%设置视频文件的帧率(每秒钟的帧数)
writerObj.FrameRate = 30;
%open打开文件以写入视频数据
open(writerObj);
%设置需要保持的总帧数nframe
nframe = 120;
figure;%创建一个新的窗口用来显示保持的每帧图片
for i = 1: nframe
%getsnapshot(vid)得到表示视频对象vid当前时刻画面的图像矩阵
frame = getsnapshot(vid);
imshow(frame);
%把frame写入视频对象writerObj
writeVideo(writerObj,frame);
end
%关闭文件
close(writerObj);