关闭

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

126人阅读 评论(0) 收藏 举报

转载地址:http://blog.sina.com.cn/s/blog_49dd59fe0100zp2q.html

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13908次
    • 积分:179
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:24篇
    • 译文:0篇
    • 评论:0条