matlab连接摄像头读取视频部分解释

首先自己的电脑有个摄像头,如果没有插上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的

在语句中设置:

vwinvideo\',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);