Matlab实现静态图\动态图和视频的读取

时间:2022-09-01 03:14:14

Matlab实现静态图\动态图和视频的读取

摘要:为了进行动态图和视频的后续处理,需要先使其转化为静态图,然后对静态图进行图像处理,最后合成为新的动态图和视频,这就牵涉到静态、动态图和视频三者之间的相互转化,但转化之前如何用MATLAB实现对三者的读取非常重要,基于这个问题,文章具体讨论了利用MATLAB进行静态图、动态图、视频读取显示的方法。

关键词:MATLAB;静态图;动态图;视频

中图分类号: TN941.2 文献标识码: A 文章编号

1引言

图片分为静态图片和动态图片,静态图:不随时间而发生状态变化的图、没有动态信号输入的图;动态图可以视为一帧一帧的静态图片构成,动态图像信息处理包括图形动画、数字图像处理等[1];视频是同时包含了图像、声音、说明信息等内容的用来记录多媒体信息的重要载体,随着社会的发展,视频的应用也越来越广泛,视频修复技术[2]、视频抠图技术、视频分割技术[3]、视频跟踪技术都有视频的应用。数字视频是数字图像在时间轴上的扩展,可以将视频的每一帧视为一幅静止的图像。为了使得这些技术得到应用,首先就应该实现对静态、动态图和视频三者的读取,文章给出了利用MATLAB读取三者的方法。

2MATLAB简介

MATLAB是美国MathWorks公司研制开发的一种科学计算软件,MATLAB将高性能的数值计算、符号计算和可视化集成在一起,并提供了大量的内置函数以及功能丰富的工具箱,使用方便,编程效率高。MATLAB编程高效、易学易用,是目前流行的编程语言。MATLAB提供了图像处理工具箱,使专业人士可以从复杂的编程中解脱出来,集中在问题的分析和算法设计上。本文所用的MATLAB的版本为7.1。

3MATLAB读取静态图、动态图、视频的方法

3.1 读取静态图方法

(1)读取静态图并显示程序: >> i=imread('2010624112438607.jpg'); imshow(i);

(2)读取多幅静态图并显示程序:图片的名称命名为1.gif,2.gif……10.gif。

n=10; I=cell(1,n); for i=1:nimageName=strcat(num2str(i),'.jpg');

I{i} = imread(imageName);imshow(I{i});pause(2) ;end

3.2 读取动态图方法

(1)读取动态图并显示程序如下: [data map]=imread('1.gif','frame','all');

for i=1:size(data,4)imshow(data(:,:,:,i));colormap(map);pause(0.1);end

(2)读取多个动态图,图片命名为1.gif,2.gif。

n=2;for i=1:n

[data map]= imread(which(strcat(num2str(i),'.gif')),'frame','all');

for j=1:size(data,4)

imshow(data(:,:,:,j)); colormap(map);pause(0.7);

end

end

3.3MATLAB读取视频的两种函数方法

MATLAB读取视频提供的较为简单的是aviread函数[4-5],但是aviread函数只能读取avi格式的视频文件,且不是所有格式的avi文件都能读取,只能读取某些格式的avi视频,为了解决不能用imread函数读取这一难题,MATLAB Centaral提供了mmread工具包进行视频读取,下载后解压到当前的work工作目录下,将路径添加上即可使用,mmread函数不仅可以读取avi格式的文件,而且还可以读取wav、 wmv、 asf、 mp3、 gif、jpg等格式的文件。在程序中只需将imread改为mmread即可。以下程序中所用的视频是由图片经过MATLAB合成的,可以直接用imread来读取[6]。

读取视频文件的方法:

(1)>>mov=aviread('out.avi');

>> movie(mov);

读取out.avi文件并通过movie函数进行播放。

(2)>>mov=aviread('out.avi',1:5);

读取out.avi文件的第一到第五帧的内容。

4结束语

本文简单的介绍了利用MATLAB读取图片和视频的方法,提供了读取多图的方法,为以后图像的读取和保存以及处理静态图片,制作动态图,修复视频和进行视频的后续处理等都提供了基础[7]。当然,视频也可以用VC进行读取,其相互转化也可以有PS实现,但利用VC对视频进行读取比较繁杂,尤其对于初学者来说非常困难,利用PS实现其转化更为复杂,因此利用MATLAB的简洁性和丰富的函数资源,能较为方便的读取视频。

参考文献:

[1]雷治军,林晓.用MATLAB读取数字视频的方法研究[J].福建电脑2011(3):6-7

[2]林成春.视频修复问题研究[D].浙江:浙江大学理学院.2008

[3]季白杨,陈纯,钱英.视频分割技术的发展[J].计算机研究与发展.2001(38):36-41

[4]杨杰.数字图像处理及MATLAB实现[M] .北京:电子工业出版社,2010

[5]张兆礼,赵春晖,梅晓丹.现代图像处理技术及MATLAB实现[M].北京:人民邮电出版,2001

[6]杨高波,杜青松.MATLAB图像/视频处理应用及实例[M].北京:电子工业出版社,2010

[7]Canny, J. A Computational Approach for Edge Detection. IEEE Trans. Pattern Anal. Machine Intell., vol. 8, no. 6, pp. 679-698, 1986

上一篇:关于智能电网光伏发电系统中逆变器系统的研究 下一篇:大温差下冷水机组的运行方案探讨