使用Matlab调用摄像头及保存视频

文章目录

今天看到一个很有意思的程序,利用matlab调用摄像头,试了下,很不错,拿出来分享一下。

获得摄像头的参数

输入

1
cam_info = imaqhwinfo('winvideo');

得到

1
2
3
4
5
6
7
cam_info = 
 
       AdaptorDllName: [1x74 char]
    AdaptorDllVersion: '4.0 (R2010b)'
          AdaptorName: 'winvideo'
            DeviceIDs: {[1]}            %摄像头ID号,这个我们经常需要用到
           DeviceInfo: [1x1 struct]     %设备信息,这里主要是摄像头的一些参数,比较重要

这里面我们最关心的就是摄像头所支持的视频格式。以我的usb摄像头为例,通过下面代码,得到摄像头的ID和支持的视频格式:

1
2
3
cam_info = imaqhwinfo('winvideo');
cam_info.DeviceInfo.DeviceID
cam_info.DeviceInfo.SupportedFormats

得到摄像头的ID为:1
对应的的五种视频格式:
‘YUY2_160x120′ ‘YUY2_176x144′ ‘YUY2_320x240′ ‘YUY2_352x288′ ‘YUY2_640x480′

视频的预览与采集

下面给出视频的预览和采集代码:

1
2
3
4
5
6
7
8
9
10
11
 % By tennfy
clear all; clc
vid = videoinput('winvideo', 1, 'YUY2_640x480');%创建ID为1的摄像头的视频对象,视频格式是 YUY2_640x480,这表示视频的分辨率为640x480。
set(vid,'ReturnedColorSpace','rgb');
vidRes=get(vid,'VideoResolution');
width=vidRes(1);
height=vidRes(2);
nBands=get(vid,'NumberOfBands');
figure('Name', 'Matlab调用摄像头 By tennfy', 'NumberTitle', 'Off', 'ToolBar', 'None', 'MenuBar', 'None');
hImage=image(zeros(vidRes(2),vidRes(1),nBands));
preview(vid,hImage);    %打开视频预览窗口

视频的保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
filename = 'film';       %保存视频的名字
nframe = 120;            %视频的帧数
nrate = 30;              %每秒的帧数
preview(vid);            
set(1,'visible','off');
 
writerObj = VideoWriter( [filename '.avi'] );
writerObj.FrameRate = nrate;  
open(writerObj);
 
figure;
for ii = 1: nframe
    frame = getsnapshot(vid);
    imshow(frame);
    f.cdata = frame;
    f.colormap = colormap([]) ;
    writeVideo(writerObj,f);
end
close(writerObj);
closepreview

小结

这个程序我自己跑过,有效果,希望能够帮到大家!



本文出自 TENNFY WU,转载时请注明出处及相应链接。

本文永久链接: http://www.tennfy.com/1016.html

下一篇文章:

上一篇文章:

14人参与了讨论

  1. 朱砂吉衣 说:

    很简洁清晰

  2. dulang 说:

    请问一下这个视频保存在哪里呢,我也试了一遍这个代码,但是不知道保存的视频在哪里?谢谢

  3. 308196027 说:

    保存视频的长度根据总的帧数来确定的,因此就不要采用for循环,可以使用while循环,比如说按下开始键置1,按下停止置0,这样应该可以

    这个怎么编写呢,才接触matlab,在做毕设,求帮忙

  4. 春田花花狗汪汪 说:

    你好怎么样才能在采集视频同时保存音频信息啊 :?:

  5. hello 说:

    下面给出视频的预览和采集代码
    这段代码很有用,解决了在gui里面快速预览的问题,感谢楼主 :oops:

  6. lanxigyue 说:

    为什么我无法创建文件保存视频,请问是什么问题

  7. lanxigyue 说:

    无法创建文件 film.avi。权限被拒绝。这个问题该怎么解决

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

1 + 9 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部