MATLAB的图像处理介绍.ppt
《MATLAB的图像处理介绍.ppt》由会员分享,可在线阅读,更多相关《MATLAB的图像处理介绍.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于matlab中图像处理的简单介绍徐健2010年7月16日内容主要分为以下四个篇章:一.介绍应用matlab处理图像问题(以一个图像隐写的简单例子为说明线索)二.应用matlab解决三维血管重建中的图像处理问题三.图像处理练习(应用matlab解决双目定位问题中的图像处理)四.附录与说明(包括:函数命令库)一.介绍应用matlab处理图像问题(以一个图像隐藏的简单例子为说明线索)1.图像与数字图像简介2.图像的不同类型及在matlab中的显示3.常用的几个图像处理命令4.一个简单的图像隐写介绍5.图像处理中一些注意问题图像与数字图像简介n图像:利用各种系统观测客观世界获得的且可以直接或间接感
2、知的视觉实体。信息其他(20%)视觉(60%)听觉(20%)n图像:n(1)模拟图像:光学图像、模拟电视图像等。处理速度快,但精度和灵活度差。n(2)数字图像:数码相机、数字电视等。是将连续的模拟图像经过离散化处理后得到的计算机可以识别及处理的点阵图像。数字图像像素数字图像的优点:(1)精度高:目前计算机可将模拟图像转化成高精度数字图像(2)处理方便:数字图像是一组数据,可利用计算机对其处理(3)重复性好:数字图像可比模拟图像有正常的保质时间数字图像已经应用到各个领域,无处不在。那么对数字图像的处理主要有以下方面:(1)图像变换:傅立叶变换,小波变换等。(2)图像增强与复原:突出图像信息,抗干
3、扰。(3)图像压缩编码:简化图像利于传输等。(4)图像分割:提取图像中的有意义的特征。(5)图像分析:对图像中的信息进行各种分析。(6)图像识别:提取图像中的信息进行判别。(7)图像隐藏:对图像加入水印进行信息伪装。图像的不同类型及在matlab中的显示n1.数字图像数字图像(按纪录方式分):(按纪录方式分):n(1)矢量图像:利用数学的矢量方式纪录图像内容。以线条和色块为主,容易放大、缩小或旋转,且不易失真,精确度高,可以绘制3D图像。但是不易做成色彩丰富的图像。n(2)位图图像:将图像中每一个像素点转换成一个数据。如果以8位记录,可以表现出256种颜色(),所以色彩丰富。通常有:16色,2
4、56色,增强16位和真彩色24位().但随着颜色数和分辨率的提高,存储空间大,且较易失真。用数码相机和扫描仪获得的图像都属于位图。3)象素:是图像在计算机显示中的度量单位,可以变化,可大可小。4)分辨率:是用于度量图像在显示器中清晰程度的一个参数,分辨率越高,图像越清晰。分辨率是与象素相关的,即单位长度上的象素数就是分辨率。由此可知,分辨率越高,象素的几何尺寸就越小。5)图像文件的大小:指一幅图像在计算机中保存时所占用的磁盘空间,其大小与所用的颜色模式有关。灰度图像中的每一个灰度象素只占用一个字节(8位),RGB图像中红、绿、蓝各占用一个字节。另外,图像文件的大小也直接与其分辨率有关,原因是当
5、分辨率增加时,一幅图像所包含的象素量急剧增加。6)句柄:就是对象的代号或标志,它能使计算机方便地找到所需要的对象并加以相应的操作。MATLAB中的句柄图形对象包括轴、文本、菜单、控制框、图像等。2.几种常见的几种常见的MATLAB 图像文件格式简介图像文件格式简介:A)BMP格式。即位图文件,整幅图可视为一个数字矩阵。它包括1、4、8、24位非压缩图像,8位RLE(行程编码)图像。文件内容包含文件头、位图信息数据块和图像数据。选择BMP格式保存一幅灰度模式图像时,可选择以Windows格式保存。而且在选中4位或8位位图时,还可选压缩(RLE)项,在用RLE方式压缩保存后图像将毫无损失。这是用得
6、最广的图像格式之一。B)TIFF格式。处理1、4、8、24位非压缩图像,1、4、8、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括:文件头、参数指针表与参数域、参数数据表和图像数据四部分。是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描仪及在Windows、Macintosh平台上常用的版面设计软件都支持TIFF文件格式。但图像文件结构比较复杂,不压缩时文件比较大。C)JPEG格式。是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩色图像的压缩标准。它实际上定义了3种编码系统:a基于DCT有损编码基本系统,用于绝大多数压缩场合;b用于高压缩比、高精度
7、或渐进重建应用的扩展编码系统;c用于无失真应用场合的无损系统。JPEG没有规定文件格式、图像分辨率或所用的彩色空间模型,这使它适用于MATLAB。D)PCX格式。可处理1、4、8、16、24位等图像数据。文件内容包括文件头、图像数据、扩展调色板数据。E)XWD格式。1、8位Zpixmaps,Xybitmaps,1位XYPixmaps。F)TGA格式。处理1、4、8、16、24位非压缩图像和行程编码图像。文件包由5个固定长度字段和3个可变长度字段组成。G)HDF格式。有8位,24位光栅图像数据集。3.MATLAB图像文件类型:图像文件类型:根据数据矩阵和图像象素颜色匹配关系,MATLAB中图像可
8、分为:索引图像、灰度图像、二值图像和RGB图像。1)索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在0,1内。数据矩阵数据矩阵(图片)(图片)像素点对应双精度色图矩阵双精度色图矩阵(色彩)(色彩)2)灰度图像:数据矩阵中的元素值一般都在0,1或0,255之间,灰度图像根据这些数据利用线性插值来和色图中的颜色种类匹配。灰度图像读入matlab中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。注意:灰度图像一般看
9、起来是一副黑白图像,但是色彩明暗度较二值图像更为丰富。因为每一个像素点的取值在0,1或0,255之间。.像素点取值:0,1或0,255mnm*n个像素,如1024*7683)二值图像:数据矩阵中的元素值只是0或1。读入matlab也是一个二维矩阵。注意:二值图像读入matlab中也是一个二维的平面矩阵,但像素点取值只限于0,1。4)RGB图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。注意:美术教科书中称红、黄、蓝为三原色,讲的是绘画颜料的使用。一般电视光色等光色是红、绿、蓝。RGB图像就是采用红
10、、绿、蓝作为三原色的,其中R为红色,G为绿色,B为蓝色。上图是一个2048*1536大小的图像,其中这个三维矩阵的第一维就是上图中第一层代表红色数值,第二维为第二层代表绿色数值,第三维为第三层代表蓝色数值。也可以这样理解:将索引图像中的数据矩阵中每一个像素点直接加载上色图矩阵中对应的颜色值。图像在图像(x1,y1)点的RGB值是(r,g,b)n4.matlab中图形图像的读入中图形图像的读入n在matlab中利用函数imread将图像读成一个矩阵的形式。其主要格式如下:nA=imread(filename,fmt)nX,map=imread(filename,fmt)n=imread(file
11、name)n=imread(URL,)n=imread(,idx)(CUR,ICO,andTIFFonly)n=imread(,frames,idx)(GIFonly)n=imread(,ref)(HDFonly)n=imread(,BackgroundColor,BG)(PNGonly)nA,map,alpha=imread()(ICO,CUR,andPNGonly)n其中最基本的格式是:X,map=imread(filename,fmt)存储图像数据的矩阵名图像调色板图像文件名文件格式常用n一个例子:图像Imread读入Matlab中的矩阵A(一个三维矩阵)Matlab窗口Imread命令
12、读入的A是一个三维的数据为uint8位的矩阵命令窗口n对A(1536*2048*3,uint8)的解释如下图:通过左图的表示,这样这个三维矩阵A就可以表示成一个彩色矩阵,也就是一张数字图像可以在matlab中读成一个矩阵A值得注意的是数据类型,上面记录的数据是uint8型,关于数据类型,有如下内容:在图像(x1,y1)点的RGB值是(r,g,b)且数据为uint8位5.MATLAB中图像的存储运算中图像的存储运算将一幅图片读入到MATLAB中,其数值一般都采用double型(64位)存储和运算。但为了节省存储空间,MATLAB提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像
13、称为8位型像。函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样。对于灰度图像,uint8表示范围0,255,double型表示范围0,1。可见,double型和uint8型灰度图像不一样,二者转换格式为:I8=uint8(round(I64*255);I64=double(I8)/255;反之,imread根据文件中的图像种类做不同的处理。当文件中的图像为灰度图像时,imread把图像存入一个8位矩阵中,把色图矩阵转换为双精度矩阵,矩阵中每个元素值在0,1内;当为RGB图像时,imread把数据存入到一个8位RGB矩阵中。还有另一种格式是unit16
14、型,在这里就不做更多的介绍了,但是要注意的是,有时针对一幅图像进行相应处理时,需要对数据类型进行转换,这里就需要注意很多匹配的问题。n前面介绍了图像的读入,下面看看输出:n6.matlab中图形图像的输出中图形图像的输出n(1)以图像文件的形式输出,应用函数imwriten格式是:nimwrite(A,filename,fmt)nimwrite(X,map,filename,fmt)nimwrite(,filename)nimwrite(,Param1,Vall,Param2,Val2,)n备注:1)命令中各参数含义可以参照前面imread命令,也可在matlab命令窗口输入:helpimwr
15、ite,来获得提示信息。n2)imwrite获得的文件存放在matlab的work文件夹中。一个图片文件矩阵Aimwriten(2)以图像的形式输出,函数为image(imshow)nimage的格式是:nimage(C)nimage(x,y,C)nimage(,PropertyName,PropertyValue,)nimage(PropertyName,PropertyValue,)nhandle=image()n其中,x,y分别表示图像显示位置的左上角坐标,C表示所需显示的图像。函数imagesc与image函数类似,但是可以自动标度输入数据。n关于image中各参数的意义可以使用hel
16、pimage查询Matlab输出的图像矩阵AImage/imshown一个image的例子:得到图像输出窗口点击DataCursor按钮并将光标移动到图像的一个位置可以得到此处的数据信息,如右图所示:nimshow的格式是:nimshow(I,n)nimshow(I,lowhigh)nimshow(BW)nimshow(X,map)nimshow(RGB)nimshow(,display_option)nimshow(x,y,A,)nimshowfilenamenh=imshow()n关于imshow的参数说明可以参照image,以及在命令窗口可以得到相应的例子。imshow和image:图像
17、的显示是最为重要的,用imshow和image都可以显示图像,但是有一定的区别。用的不对,可能出错或得到一张空白图或者是彩色图显示成颗粒状、反相黑白图等等。image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小,而imshow只是显示图像。它们都可以用subplot来定位图像显示的位置。image显示imshow显示显示真彩色图像像素如果是uint8类型,要求数据范围为0-255,如是double型,则其数据范围为0-1。uint16数据类型与uint8类似,取值范围为0-65536。常用的几个图像处理命令介绍nimfinfo函数可以观察图像信息文件此处没有分
18、号得到图像信息Colorbar:Displaycolorbar(MATLABfunction)显示彩条Imagesc:Scaledataanddisplayasimage(MATLABfunction)缩放数据并显示图像Immovie:Makemoviefrommultiframeindexedimage由多帧图像制作图像Imtool:DisplayimageintheImageViewer在imagetool中显示图像Montage:Displaymultipleimageframesasrectangularmontage将多个图像帧显示为矩形蒙太奇Subimage:Displaymult
19、ipleimagesinsinglefigure在单个图形中显示多个图像(图像处理函数详见附表)特别注意一些转换函数:(1)数据转换函数:)数据转换函数:A=unit8(B)、B=double(A)或或B=A/255前面已经介绍。前面已经介绍。Im2double,im2unit8,im2unit16分别是将图像矩阵数值转换为分别是将图像矩阵数值转换为double型,型,unit8型,型,unit16型。型。(2)图像类型转换函数:)图像类型转换函数:索引图像灰度图像二值图像RGB图像Gray2ind Ind2gray Int2rgb Rgb2gray Rgb2ind 三层变一层三层变一层一层变
20、三层一层变三层(方法研究)(方法研究)Im2bw 涉及到阈值选择,即多少作为黑白图像的分界线,一个阈值选择函数:graythresh。一个转换函数例如:W=im2bw(W,graythresh(W)一个简单的图像叠加隐写n1.图像隐藏是指媒体信息的相互隐藏,常见的有数字水印和图像的信息伪装等。n2.把一幅图像中隐藏一个信息,并可以通过一种方式将图像信息解码出来。A(原始图像)B(需要隐藏的信息)C(加入信息的图像)要求:A与C尽量相近,没有差别n3.介绍的目的:体会matlab中关于imread和image的用法。n4.采用一种原始的图像叠加的简单思想处理:(1)隐写算法:n1)将原始图像A和
21、隐写信息B读入matlabn2)将隐写信息B扩充到与A有相同大小的点阵n3)将矩阵A和B中的数据转换成uint8型n4)对矩阵B的数据做如下处理:B(i,j,k)/100;ni,j分别是点阵的大小,k=1,2,3;n5)将矩阵A和B做叠加处理得到带有隐写信息的图像Cn(2)解码算法是隐写算法的逆过程xx叠加算法的具体图形表达5.算法可成立的支持理由:对于隐写信息B由于将象素点的RGB值减小100倍,再叠加到原始图像A中,这样基本看不出隐写信息;在解码中将处理后带有隐写信息的图像C减去A并将象素点扩大100倍可以得到隐写信息B。6.算法的实现结果:(1)隐写结果:+n(2)解码结果n7.算法中图
22、像叠加和图像相减语句可以采用编程实现,也可采用函数imadd和imsubtract。n8.这种简单算法的问题:n1)由于采用uint8型(0-255)所以当数据叠加超过255时只以255计算,这样可能在恢复隐写信息时造成信息失真,特别对于白色图像(255)相加。n2)由于在前面隐写时像素值缩小了100倍在uint8型下省去了小数点后的数,故而得到恢复图像的像素值都为0,100,200。所以有很大的局限性。n9.可以想到的解决方向:n1)采用double型来保持小数点后面的值。n2)传输处理后图像的同时传输一个记录数据的矩阵。n3)隐写算法(已经成为一个独立的研究方向)一个较为正规的数字水印程序
23、rgb2grayim2bw二维余弦变换(二维余弦变换(DCT2)在低频部分加载水印信息在低频部分加载水印信息公开图像公开图像灰度图像灰度图像水印图像水印图像二值图像二值图像含有水印图像含有水印图像利用二维余弦反变换利用二维余弦反变换(IDCT2)得到水印信息图像得到水印信息图像具体程序具体程序图像处理中一些注意问题当前路径存放变量默认路径改变路径各种图片和编写的M文件和程序放在默认路径n图像保存中的失真问题:图像保存中的失真问题:A=imread(山水照片.jpg);imshow(A);得到:大小为大小为2048*1536用此处保存得到图片再读用此处保存得到图片再读入和入和imshow得到得到
24、保存白边,大保存白边,大小为小为335*470解决方案:程序中直接采用解决方案:程序中直接采用imwrite写入磁盘,这样大写入磁盘,这样大小就不会改变。一般小就不会改变。一般bmp格格式较不易失真。式较不易失真。最常碰到的问题有:图像读入imread,应是上文提过的MATLAB支持的7种格式之一,显示图像用imshow(h)语句,h为图像句柄;输出图像若需要永久保存,可用imwrite(h,map,filename.bmp,bmp),写入存储器。注意在该语句前要设置调色板,即map=(gray(256)。要注意图像格式的转化。不同的图像格式对应不同的处理方式,如果处理与格式不符,将引起错误。
25、尽管MATLAB允许未定义使用数组,但在实际应用中这样经常出错,特别是遇到在double和uint8型之间的转换时。所以最好还是养成用前定义的习惯,避免出现不必要的错误。在做完一定量的运算后,一般要用Clear清除内存变量,以防影响后面的程序运行。一般默认路径在matlab安装文件下的work文件夹中,程序和资源都放在此,如果需要引用新的文件,应事先指明路径。应注意语句结尾“;”的使用,特别是图像处理中。应做好程序的注释工作。二.应用matlab解决三维血管重建中的图像处理问题n1.问题的来源及说明(涉及的是图像处理方面)n2.多幅图像的批量读入解决方案n3.重建方法一:最原始的,采用图像数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图像 处理 介绍
限制150内