第八章图像视频和声音.ppt
第八章 图像、视频和声音,第八章 图像、视频和声音,第一节 图像 第二节 影片 第三节 图像和影片的相互转换 第四节 声音,第一节 图像,一、图像格式 二、图像的类型 三、图像的读取和显示,第六章 图形处理功能,第八章 图像、视频和声音,第二章 数组的运算基础,一、图像格式,函数调用格式为:info=imfinfo(文件名,文件格式)info=imfinfo(文件名)由该函数获取的信息依赖于文件类型的不同而不同,但至少应包含一些内容:Filename 文件名FileMdeDate 文件最后一次修改的时间,第六章 图形处理功能,第八章 图像、视频和声音,第二章 数组的运算基础,第六章 图形处理功能,第八章 图像、视频和声音,FileSize 文件的大小,单位:字节Format 文件格式FormatVersion 文件格式的版本号Width 图像的宽度,单位:像素Height 图像的高度,单位:像素BitDepth 每个像素的位数ColorType 图像类型:RGB图像、亮度图像、索引图像【例8-1】利用“imfinfo”函数显示图像文件的信息。,info=imfinfo(C:Matlab71toolboximagesimdemospenoy.jpg)info=Filename:1x44 charFileModDate:1x20 charFileSize:558806Format:jpgFormatVersion:Width:1280Height:960BitDepth:24ColorType:truecolorFormatSignature:NumberOfSamples:3CodingMethod:HuffmanCodingProcess:SequentialComment:,第六章 图形处理功能,第八章 图像、视频和声音,第六章 图形处理功能,二、图像的类型,Matlab的图像数据矩阵大致有3种类型,即:索引图像、灰度图像和真色彩图像(也称RGB图像),下面简单介绍一下这三种图像类型。索引图像包括一个数据矩阵X和一个颜色映射矩阵Map。Map是一个包含3列和若干行的数据矩阵。Map的每一行分别表示红色、绿色和蓝色的颜色值。在Matlab中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map。,第八章 图像、视频和声音,灰度图像是一个矩阵I,其中I的数据代表了在一定范围内的颜色灰度值。Matlab把灰度图像存储为一个数据矩阵,该数据矩阵中的元素分别代表了图像中的像素。矩阵中的元素可以是双精度的浮点类型、8位或16位无符号整数类型。RGB图像,即真彩色图像,在Matlab中存储为mn3数据矩阵。数组中的元素定义了图像中每一个像素的红、绿和蓝颜色值。图像文件格式把RGB图像存储为24位的图像,红、绿、蓝分别各占8位,这样可以有将近1000万种颜色(即224=16777216)。Matlab的RGB数组可以是双精度的浮点类型、8位或16位无符号整数类型。在RGB的双精度数组中,每一种颜色用01之间的数值表示。例如,(0 0 0)显示的是黑色;(1 1 1)显示的是白色。每一像素的3个颜色值保存在数组的第三维中。,第六章 图形处理功能,第八章 图像、视频和声音,第六章 图形处理功能,三、图像的读取和显示,1图像的读取 在Matlab中,利用函数imread来实现图像文件的读取。其函数调用格式主要包括以下几种类型。(1)a=imread(filename,fmt)上述语句可以读取字符串“filename”指定的灰度或彩色 图像,并且“fmt”指出了该图像文件的格式。在imread 函 数返回数组a表达的图像数据时,如果读取的是灰度 图像,那么a是mn的二维数组;如果读取的是彩色图 像,那么A就是一个mn3的三维数组。(2)X,map=imread(filename,fmt)该语句是用于读取索引色图像,“X”用来存储索引色图 像数据,“map”用来存储与该索引色图像相关的颜色映 射表。,第八章 图像、视频和声音,第六章 图形处理功能,(3)=imread(filename)该语句在读取图像时必须从图像文件“filename”的内容中推断该图像的类型。“”表示根据准备读取的图像数据的相应颜色映射表的序号值来确定采用不同语句形式。.图像的显示 imshow函数 imshow函数可以自动创建句柄图形图像对象,并自动设置各种句柄图形属性和图像特征,以优化显示效果。当用户使用imshow函数显示一幅图像时,该函数将自动设置图像窗口、坐标轴和图像属性。这些自动设置的属性包括图像对象的CData属性、CDataMapping属性、坐标轴,第八章 图像、视频和声音,的CLim属性和图像窗口对象的Colormap属性。函数imshow的调用格式如下:imshow(a)imshow(a,n)imshow(X,map)imshow(RGB)h=imshow(.)这里,a代表所显示的图像的数据矩阵;n为整数,代表所要显示的图像的灰度等级数;X为索引图像的数据矩阵,map为色图;RGB是mn3的矩阵。,第八章 图像、视频和声音,第六章 图形处理功能,imview函数函数imview是用来实现打开图像的浏览器,当然被打开的图像文件必须位于Matlab的当前路径下。该函数有以下几种调用格式:imview(I)imview(RGB)imview(X,map)h=imview(.)【例8-2】读入一幅图像,并在图形窗口显示之,如图8-1所示:a=imread(C:Matlab71toolboximagesimdemospenoy.jpg);imshow(a);axis off;%取消坐标轴size(a)ans=1944 2592 3,第八章 图像、视频和声音,第六章 图形处理功能,图8-1 显示牡丹花图像,第八章 图像、视频和声音,第六章 图形处理功能,可见,所读的图像是一个真彩色图像。例8-1所提供的图像信息是本例的图像信息。若所读的图像不在Matlab的搜索路径内,将会出现错误提示信息,如,a=imread(lily.jpg);?Error using=imreadFile lily.jpg does not exist.这表明,“lily.jpg”这个图片不在当前路径下。,第八章 图像、视频和声音,第六章 图形处理功能,四、图像的写操作,在Matlab中,用函数imwrite来实现图像文件的写入操作,函数调用格式为以下几种:(1)imwrite(A,filename,fmt)该语句是把图像数据A写到filename指定的输出 文件中,存储的格式由fmt来指定,如指定的输 出文件“filename”不在Matlab的目录下,必须得 指明其完整路径。,第八章 图像、视频和声音,第六章 图形处理功能,(2)imwrite(X,map,ilename,fmt)该语句是写入索引色图像的,“X”表示图像 数据数 组,“map”表示其关联的颜色映射表。(3)imwrite(,filename)该语句在写图像到文件中时,根据filename 的扩展名推断图像的文件格式,但必须注意 此扩展名是Matlab支持的类型。(4)imwrite(,Param1,Val1,Param2,Val2)该语句可以指定HDF、JPEG、PBM、PGM、PPM和TIFF等不同类型图像文件的不同参数。,第八章 图像、视频和声音,第六章 图形处理功能,第二节 影片,在Matlab中,函数getframe和movie提供了捕获和演示影片所需要的工具。函数getframe对当前的图像进行一次快照,得到影片的一个帧。影片是由若干帧构成的,所以getframe通常用在for循环内,它组织影片的帧序列,movie播放由getframe所记录的影片的帧。movie(M)播放影片一次,movie(M,N)播放影片N次,若N是负数,除了顺时针播放影片外,还逆时针播放该影片。,第八章 图像、视频和声音,第六章 图形处理功能,【例8-3】影片播放示例。x=1:.1:4;y=1:.1:4;%平面矢量数据 X,Y=meshgrid(x,y);%产生网格图 R=(X+Y).2;%生成平面上的数据点 Z=sin(R)./R;%生成三维数据 meshc(Z);%画三维图形 axis vis3d off;%关闭坐标轴 colormap(spring);%渲染表面效果 for i=1:20%旋转和捕捉每一帧 view(-37.5+15*(i-1),30)%改变每一帧的视角 m(i)=getframe;%旋转和捕获每一帧 end movie(m)%播放影片一次,第八章 图像、视频和声音,图8-2 影片播放中某时刻的画面,第八章 图像、视频和声音,第六章 图形处理功能,第三节 图像和影片的相互转换,函数im2frame和fram2im可以实现被索引图像和 影片之间的转换,将影片中的某帧动态图像转换成一 个静态图像的调用格式为:x=frame2im(M(n)。这条 命令将影片矩阵M的第n帧画面转换成一个被索引图像 x。【例8-4】将例8-3中的某帧动态图像转换成静态图像。figure%新建一个图形窗口 a=frame2im(m(5);%m(5)帧的画面 image(a)%显示该帧图像,第八章 图像、视频和声音,第六章 图形处理功能,图8-3 影片中的某帧图像,第八章 图像、视频和声音,第四节 声音,在Matlab中,播放*.wav的声音文件的函数格式是:wavplay(filename)。【例8-5】读一个*.wav的声音文件,并画声音的波形 图。a=wavread(bird);%鸟鸣声的声音文件 plot(a)%画鸟鸣声的波形图,第八章 图像、视频和声音,第六章 图形处理功能,图8-4 鸟鸣声的波形图,第八章 图像、视频和声音,第六章 图形处理功能,为了清楚显示声音的波形,可以选取声音波形的片段来显示,图8-5是前2000点的声音波形图。plot(a(1:2000),图8-5 部分鸟鸣声的波形图,第八章 图像、视频和声音,第六章 图形处理功能,图8-5虽然较图8-4较清晰显示了部分声音波形,但还是无法分辨其波形形状,我们可以进一步缩短波形的显示长度,见图8-6。plot(a(2000:2500),第八章 图像、视频和声音,图8-6 长度为500的鸟声声音波形图,