首先自己的电脑有个摄像头,如果没有插上USB摄像头 ,然后再启动Matlab(顺序不可返的)。
具体方法:
查询USB2.0Camera 的具体参数:
输入:imaqInfo = imaqhwinfo
返回:
imaqInfo =
InstalledAdaptors: {\'coreco\' \'winvideo\'} %可选用的适配器名称,这里是两种\'coreco\'& \'winvideo\'
MATLABVersion: \'7.6 (R2008a)\'
ToolboxName: \'Image Acquisition Toolbox\'
ToolboxVersion: \'3.1 (R2008a)\'
输入:winvideoinfo = imaqhwinfo(\'winvideo\') %查询winvideo的具体参数
返回:
winvideoinfo =
AdaptorDllName: \'C:\Program Files\MATLAB\R2008a\toolbox\imaq\imaqadaptors\win32\mwwinvideoimaq.dll\'
AdaptorDllVersion: \'3.1 (R2008a)\'
AdaptorName: \'winvideo\'
DeviceIDs: {[1]} %设备ID号,重要
DeviceInfo: [1x1 struct]
输入:winvideoinfo.DeviceInfo %视频采集可选择的格式
返回:
ans =
DefaultFormat: \'YUY2_160x120\'
DeviceFileSupported: 0
DeviceName: \'USB2.0 Camera\'
DeviceID: 1
ObjectConstructor: \'videoinput(\'winvideo\', 1)\'
SupportedFormats: {\'YUY2_160x120\' \'YUY2_176x144\' \'YUY2_320x240\' \'YUY2_352x288\' \'YUY2_640x480\'}
到此为止!最后一行可以看出你的相机支持的分辨率,我的usb摄像头最高支持640*480的
在语句中设置:
vid=videoinput(\'winvideo\',1,\'YUY2_640x480\');%语法:vid=videoinput(adaptorname,deviceID,format)
set(vid,\'TriggerRepeat\',Inf);%TriggerRepeat重复触发
set(vid,\'FramesPerTrigger\',1);%FramesPerTrigger每特定的帧数去触发捕获选定使用的视频源
set(vid,\'FrameGrabInterval\',1);%FrameGrabInterval帧的抓取时间间隔
%设置返回色彩 rgb正常颜色(YUY2格式颜色发红),grayscale是灰度
set(vid,\'ReturnedColorSpace\',\'rgb\');
set(vid,\'ReturnedColorSpace\',\'grayscale\');
%获取分辨率,色彩数目等参数
vidRes=get(vid,\'VideoResolution\');%视频分辨率
nBands=get(vid,\'NumberOfBands\');%色彩数目
hImage=image(zeros(vidRes(2),vidRes(1),nBands));
% himage:视频预览窗口对应的句柄,也就是说在指定的句柄对象中预览视频,该参数可以空缺。至于预览窗口的关闭和停止可以使用colsepreview和stoppreview函数
preview(vid,hImage);