matlab 读取视频文件和摄像头
来源:互联网 发布:ssh端口可以改成什么 编辑:程序博客网 时间:2024/04/28 07:27
一、视频的读取和显示
视频数据的读取要用到VideoReader这个函数,按照matlab软件中举的例子,基本流程是在用VideoReader建立一个obj后,采用read函数来读取一帧帧图像,最后用movie函数来放映视频。但是matlab自带的函数读取avi格式的视频时也只能读取那些原始格式的avi,比较局限性。其读取过程可以采用下面2种方法:
先读完,再显示。
即先将视频数据读取到内存的结构体中,然后直接从内存中拿数据来显示,这显示的视频看起来比较流畅,可是一开始把所有数据读入内存的过程所用时间也有点长。
在matlab指定目录下放入需要读取的视频,我这里放的是test.avi.其代码如下:
%% 先读取,后播放mov = VideoReader( 'test.avi' );
movFrames = mov.NumberOfFrames;
movHeight = mov.Height;
movWidth = mov.Width;
src(1:200) = struct( 'cdata', zeros(movHeight, movWidth, 3, 'uint8'),... 'colormap', [] );%前面一定要是cdata,且后面要加上后面的colormap, %否则运行出错,why?% src(1:150) = struct( 'cdata', zeros(movHeight, movWidth, 3, 'uint8') );
for i =1:200 %按照matlab自带的例子,这里应该可以用movFrames代替200的,解决办法见本博客 %但是运行会报错
src(i).cdata = read( mov, i );
endhf = figure;
set( hf, 'position', [150 150 movWidth movHeight] );movie( hf, src, 1, mov.FrameRate );
读一帧显示一帧。
直接从视频数据中抽取一帧,然后显示一帧图像,这样感觉视频显示的时候有点卡,不知道是不是程序设置问题。其代码如下:
%% 一帧一帧的读取视频数据,然后播放mov = VideoReader( 'test.avi' );for i=1:mov.NumberOfFrames img = read( mov, i ); imshow(img);end
二、摄像头的读取和显示
摄像头的读取要用到videoinput这个函数,当然它也只能读取能扫描到的摄像头,且名字也必须对应起来。读完后需要用preview函数来显示读取到的摄像头数据。
首先查看本机连有的摄像头,输入命令imaqhwinfo,显示结果为:
可以看出有个名为’winvideo’的摄像头被扫描到
查看'winvideo'摄像头的id号,输入命令imaqhwinfo( ‘winvideo’ ),显示结果为:
可以看出其DeviceIDs编号为1.另外返回的DeviceInfo如果为1x1的话,说明该摄像头可用。
自己设置显示的属性后即可显示摄像头数据了,此时的代码如下:
%% 读取摄像头%法一:%imaqhwinfo
src = videoinput( 'winvideo', 1 );%由imaqhwinfo('winvideo')查看到DeviceIDs为1
figure( 'Name', '摄像头:' );
uicontrol( 'String', 'Close', 'Callback', 'close(gcf)' );%gcf为current figure handle %即为当前图像句柄
vidRes = get( src, 'VideoResolution' );%返回分辨率,即摄像头数据的宽和高
nBands = get( src, 'NumberOfBands' );%返回摄像头数据的通道数,我这里返回的是3
hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
preview(src, hImage);%以hImage的尺寸格式显示摄像头数据
当然,还可以采用更简单的读取方法,即采用默认的显示属性,代码如下:
%% 读取摄像头%法二:%imaqhwinfosrc = videoinput( 'winvideo', 1 );%此处第二个参数1可以省略preview( src );%以默认格式显示数据
- matlab 读取视频文件和摄像头
- matlab 读取视频文件和摄像头
- Opencv(四):读取视频文件和摄像头
- opencv读取摄像头图像和读取视频文件图像
- OpenCV学习(二)读取视频文件和摄像头
- opencv读取图片,视频文件,摄像头
- opencv读取摄像头或视频文件
- matlab读取摄像头
- opencv程序十三:读取摄像头或视频文件
- opencv 读取视频、打开摄像头、写入视频文件
- opencv 读取视频、打开摄像头、写入视频文件
- JMF实现将从摄像头和麦克读取的媒体信息保存成视频文件
- MATLAB图片,视频,摄像头的读取和显示
- artoolkit从读取摄像头改为读取视频文件或图像
- matlab读取视频文件的图像数据
- 图像处理 MATLAB 读取摄像头
- 从摄像头或视频文件中读取视频流并显示
- 从摄像头或视频文件中读取视频流并显示
- 4、IPsec VPN(internet protrol security visual private net)ip地址安全虚拟专用网络
- Kali linux VPN设置(kali连接不上vpn解决办法)
- 图像分类精度评价
- LeetCode--Set Matrix Zeroes
- HTTP协议详解
- matlab 读取视频文件和摄像头
- apktool decompile compile sign
- 原来是水管夹啊~
- 关于BLOG的声明
- 树的子结构
- java自带线程池和队列详细讲解
- Xcode6添加空项目模板
- 推荐!国外程序员整理的Java资源大全
- waring Release版本