Matlab成长之路1(图片,视频,摄像头的读取和显示).docxVIP

Matlab成长之路1(图片,视频,摄像头的读取和显示).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab成长之路1(图片,视频,摄像头的读取和显示)

Matlab成长之路_1(图片,视频,摄像头的读取和显示)  在计算机视觉和图像处理中,用matlab来验证算法的有效性是非常重要的,可以作为前期工作,因为matlab比c/c++等编程要来得简单些,不需要考虑那么多的数据类型和变量定义等。因此matlab在图像和视觉处理领域的这个得力工具也是需要掌握的。这一节简单介绍一些matlab自带函数实现图像,视频,摄像头数据的读取和显示方法(因为刚入门,方法可能不是很好)。一、图片的读取和显示。  比较简单,一个imread和imshow就可以搞定,类似opencv的用法,代码如下:imshow( imread(lena.jpg) );二、视频的读取和显示  视频数据的读取要用到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) );fori =1:200 %按照matlab自带的例子,这里应该可以用movFrames代替200的, %但是运行会报错src(i).cdata = read( mov, i );endhf = figure;set( hf, position, [150150movWidthmovHeight] );movie( hf, src, 1, mov.FrameRate );  读一帧显示一帧。  直接从视频数据中抽取一帧,然后显示一帧图像,这样感觉视频显示的时候有点卡,不知道是不是程序设置问题。其代码如下:%% 一帧一帧的读取视频数据,然后播放mov = VideoReader( test.avi );fori=1:mov.NumberOfFramesimg = read( mov, i );imshow(img);end三、摄像头的读取和显示  摄像头的读取要用到videoinput这个函数,当然它也只能读取能扫描到的摄像头,且名字也必须对应起来。读完后需要用preview函数来显示读取到的摄像头数据。  首先查看本机连有的摄像头,输入命令imaqhwinfo,显示结果为:  ?  可以看出有个名为’winvideo’的摄像头被扫描到  查看winvideo摄像头的id号,输入命令imaqhwinfo( ‘winvideo’ ),显示结果为:    可以看出其DeviceIDs编号为1.另外返回的DeviceInfo如果为1x1的话,说明该摄像头可用。  自己设置显示的属性后即可显示摄像头数据了,此时的代码如下:%% 读取摄像头%法一:%imaqhwinfosrc = videoinput( winvideo, 1 );%由imaqhwinfo(winvideo)查看到DeviceIDs为1figure( Name, 摄像头: ); uicontrol( String, Close, Callback, close(gcf) );%gcf为current figure handle %即为当前图像句柄 vidRes = get( src, VideoResolution );%返回分辨率,即摄像头数据的宽和高nBands = get( src, NumberOfBands );%返回摄像头数据的通道数,我这里返回的是3hImage = image( zeros(vidRes

文档评论(0)

liangyuehong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档