Matlab摄像头视频基本处理 - Lewiski

Matlab摄像头视频基本处理

一、读取摄像头

1.首先保证摄像头及其驱动正确在电脑上安装

2.简单的代码显示驱动摄像头,并显示:

vid = videoinput(\'winvideo\',1);
preview(vid);

3.默认显示彩色rgb图像,可用下面代码转换为灰度图像:

set(vid,\'ReturnedColorSpace\',\'grayscale\');

若要还原为彩色图像,即把上面的grayscale换成rgb

二、获取摄像头图像

image = getsnapshot(vid);%获得图像矩阵
figure;
imshow(image);%显示该幅图片

三、保存视频

writerObj = VideoWriter( [filename \'.avi\'] );%创建.avi文件
writerObj.FrameRate = N;%设置视频帧率
open(writerObj);

figure;
for ii = 1: nframe
    frame = getsnapshot(vid);
    imshow(frame);
    f.cdata = frame;
    f.colormap = [];
    writeVideo(writerObj,f);
end

close(writerObj);

四、摄像头深刻理解

imaqhwinfo()函数返回一个结构体,里面包含DeviceID和DeviceInfo,DeviceID存储着电脑上所有可用摄像头的ID,每个ID对应一个摄像头。DeviceInfo中存储着每个摄像头的信息,最主要的就是摄像头所支持的视频格式。通过下面代码可以得到DeviceID和DeviceInfo中支持的格式信息:

cam_info = imaqhwinfo(\'winvideo\');
cam_info.DeviceInfo.DeviceID
cam_info.DeviceInfo.SupportedFormats
得到支持的格式信息后,即可加到第一个代码中去了:
vid = videoinput(\'winvideo\',1,\'Formats\');