matlab读取摄像头

% ******************************************************************************************* %
% ---------------------------------***     模块0: 初始化     ***----------------------------- %
% ------------------------------------------------------------------------------------------- %
clc
clear

% 获取摄像头信息(imaqhwinfo)
imaqInfo = imaqhwinfo;
winvideoinfo = imaqhwinfo('winvideo');
n=length(winvideoinfo.DeviceInfo);% 看系统中有几个摄像头

% 调参数,设置成使用最后一个摄像头
CamNum=n;
device = winvideoinfo.DeviceInfo(CamNum)

% 分辨率设置,发现320x240时合适,640x480时只能预览(若要处理则会表现出较大的延时)
Format=device.SupportedFormats(3);   % 'YUY2_320x240'
% Format=device.SupportedFormats(1);   % 'YUY2_160x120'
% Format=device.SupportedFormats(end); % 'YUY2_640x480'
Format=char(Format);% 转换成字符串

% 申请内存空间
imaqmem(30000000);               



% ******************************************************************************************* %
% --------------------***     模块1: 创建视频输入对象,并显示原始视频     ***----------------- %
% ------------------------------------------------------------------------------------------- %
VID = videoinput('winvideo',CamNum,Format);% 创建视频输入对象(videoinput)
preview(VID);                              % 显示原始视频



% ******************************************************************************************* %
% --------------------------***     模块2: 处理输入视频并显示出来     ***-------------------- %
% ------------------------------------------------------------------------------------------- %
k=1;
start(VID);

% 新建窗口, 处理后的图像放在这里边
h=figure('NumberTitle','off','Name','处理后的视频','MenuBar','none', 'Visible', 'on');         
set(h,'doublebuffer','on');


while ishandle(h)             % 判断是否有效的图像对象句柄
    Iyuv=getsnapshot (VID);   % 捕获1帧图像    
    I=ycbcr2rgb(Iyuv);        % 将图像从YUV空间转换成RGB空间
    flushdata(VID);           % 清除数据获取引擎的所有数据、置属性SamplesAvailable为0

    imshow(I);                % 显示图像
    drawnow;                  % 实时更新图像,这句话很重要
    
    if (k==1) 
        tic; 
    end
    if (k==100) 
        toc; 
    end
    k=k+1;
    disp(k)
end




% 删除
% delete(VID);	

可能的报错

??? Subscript indices must either be real positive integers or logicals.

Error in ==> Untitled2 at 14
device = winvideoinfo.DeviceInfo(CamNum)

解释:没有找到摄像头,你的电脑驱动或者摄像头有问题,换别人的电脑试下?

============================找指导老师布置任务吧==============================