废话不多说,我们开始言归正传了。但是一定记住你必须安装了PC摄像头才可以进行下面的东西,如果说首次安装摄像头最好重启下PC,否则可能出现没法识别摄像头。
整个过程我们需要做如下几件事情:
1、查询USB2.0Camera 的具体参数(imaqhwinfo)
2、创建视频输入对象(videoinput)
3、图像预览和显示(preview、stoppreview、closepreview和image)
4、获取视频图像(getsnapshot)
5、图像获取设备的获取和设置(get和set)
6、关闭视频对象(delete)
在正式讲解之前,我想说明下几个个在图像获取工具箱中的术语:
图像获取设备:比如摄像头、扫描仪
图像获取适配器:主要的目的是通过驱动在Matlab和图像获取设备之间传递信息
ROI:region-of-interest 感兴趣区域
Matlab的图像获取工具箱为我提供了imaqhwinfo(),来获取PC上以安装的图像获取硬件信息
没有输入参数时,返回一个结构体, 它包含了系统中存在的适配器和Matlab相关的版本信息
info=imaqhwinfo;%返回一个结构体,它包含了系统中存在的适配器和Matlab相关的版本信息。
InstalledAdaptors=info.InstalledAdaptors;%PC上安装了的适配器
win_info=imaqhwinfo(InstalledAdaptors{2});%第二个适配器的具体参数
dev_win_info=win_info.DeviceInfo;%设备信息
SupportedFormats=dev_win_info.SupportedFormats;%图像支持格式
format=SupportedFormats{3};%选择第三种格式
adaptorname=win_info.AdaptorName;%适配器的名称
deviceID=dev_win_info.DeviceID;%适配器的ID
obj = videoinput(adaptorname,deviceID,format);%创建视频输入对象
vidRes = get(obj, 'VideoResolution');
nBands = get(obj, 'NumberOfBands');
figure(1);%指定预览窗体显示的figure
hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); %hImage视频预览窗口对应的句柄
preview(obj, hImage);
frame = getsnapshot(obj);
imwrite(frame,'snap.bmp');
delete(obj);