《MATLAB的图像处理介绍课件.ppt》由会员分享,可在线阅读,更多相关《MATLAB的图像处理介绍课件.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于matlab中图像处理的简单介绍一.介绍应用matlab处理图像问题1.图像与数字图像简介2.图像的不同类型及在matlab中的显示3.常用的几个图像处理命令4.图像处理中一些注意问题图像的不同类型及在matlab中的显示n1.数字图像数字图像(按纪录方式分):(按纪录方式分):n(1)矢量图像:利用数学的矢量方式纪录图像内容。以线条和色块为主,容易放大、缩小或旋转,且不易失真,精确度高,可以绘制3D图像。但是不易做成色彩丰富的图像。n(2)位图图像:将图像中每一个像素点转换成一个数据。如果以8位记录,可以表现出256种颜色(),所以色彩丰富。通常有:16色,256色,增强16位和真彩色2
2、4位().但随着颜色数和分辨率的提高,存储空间大,且较易失真。用数码相机和扫描仪获得的图像都属于位图。3)象素:是图像在计算机显示中的度量单位,可以变化,可大可小。4)分辨率:是用于度量图像在显示器中清晰程度的一个参数,分辨率越高,图像越清晰。分辨率是与象素相关的,即单位长度上的象素数就是分辨率。由此可知,分辨率越高,象素的几何尺寸就越小。5)图像文件的大小:指一幅图像在计算机中保存时所占用的磁盘空间,其大小与所用的颜色模式有关。灰度图像中的每一个灰度象素只占用一个字节(8位),RGB图像中红、绿、蓝各占用一个字节。另外,图像文件的大小也直接与其分辨率有关,原因是当分辨率增加时,一幅图像所包含
3、的象素量急剧增加。6)句柄:就是对象的代号或标志,它能使计算机方便地找到所需要的对象并加以相应的操作。MATLAB中的句柄图形对象包括轴、文本、菜单、控制框、图像等。2.几种常见的几种常见的MATLAB 图像文件格式简介图像文件格式简介:A)BMP格式。即位图文件,整幅图可视为一个数字矩阵。它包括1、4、8、24位非压缩图像,8位RLE(行程编码)图像。文件内容包含文件头、位图信息数据块和图像数据。选择BMP格式保存一幅灰度模式图像时,可选择以Windows格式保存。而且在选中4位或8位位图时,还可选压缩(RLE)项,在用RLE方式压缩保存后图像将毫无损失。这是用得最广的图像格式之一。B)TI
4、FF格式。处理1、4、8、24位非压缩图像,1、4、8、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括:文件头、参数指针表与参数域、参数数据表和图像数据四部分。是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描仪及在Windows、Macintosh平台上常用的版面设计软件都支持TIFF文件格式。但图像文件结构比较复杂,不压缩时文件比较大。C)JPEG格式。是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩色图像的压缩标准。它实际上定义了3种编码系统:a基于DCT有损编码基本系统,用于绝大多数压缩场合;b用于高压缩比、高精度或渐进重建应用的扩展编码系统
5、;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中图像可分为:索引图像、灰度图像、二
6、值图像和RGB图像。1)索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在0,1内。数据矩阵数据矩阵(图片)(图片)像素点对应双精度色图矩阵双精度色图矩阵(色彩)(色彩)2)灰度图像:数据矩阵中的元素值一般都在0,1或0,255之间,灰度图像根据这些数据利用线性插值来和色图中的颜色种类匹配。灰度图像读入matlab中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。注意:灰度图像一般看起来是一副黑白图像,但是色彩
7、明暗度较二值图像更为丰富。因为每一个像素点的取值在0,1或0,255之间。.像素点取值:0,1或0,255mnm*n个像素,如1024*7683)二值图像:数据矩阵中的元素值只是0或1。读入matlab也是一个二维矩阵。注意:二值图像读入matlab中也是一个二维的平面矩阵,但像素点取值只限于0,1。4)RGB图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。注意:美术教科书中称红、黄、蓝为三原色,讲的是绘画颜料的使用。一般电视光色等光色是红、绿、蓝。RGB图像就是采用红、绿、蓝作为三原色的,其中R
8、为红色,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(filename)n=imread(
9、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命令读入的A是一个三维的数据为u
10、int8位的矩阵命令窗口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位无符号整数),以此方式存储的图像称为8位型像。函数image
11、能够直接显示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型,在这里就不做更多的介绍了
12、,但是要注意的是,有时针对一幅图像进行相应处理时,需要对数据类型进行转换,这里就需要注意很多匹配的问题。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命令窗口输入:helpimwrite,来获得提示信息。n2
13、)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中各参数的意义可以使用helpimage查询Matlab
14、输出的图像矩阵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:图像的显示是最为重要的,用ims
15、how和image都可以显示图像,但是有一定的区别。用的不对,可能出错或得到一张空白图或者是彩色图显示成颗粒状、反相黑白图等等。image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小,而imshow只是显示图像。它们都可以用subplot来定位图像显示的位置。image显示imshow显示显示真彩色图像像素如果是uint8类型,要求数据范围为0-255,如是double型,则其数据范围为0-1。uint16数据类型与uint8类似,取值范围为0-65536。常用的几个图像处理命令介绍nimfinfo函数可以观察图像信息文件此处没有分号得到图像信息Colorba
16、r:Displaycolorbar(MATLABfunction)显示彩条Imagesc:Scaledataanddisplayasimage(MATLABfunction)缩放数据并显示图像Immovie:Makemoviefrommultiframeindexedimage由多帧图像制作图像Imtool:DisplayimageintheImageViewer在imagetool中显示图像Montage:Displaymultipleimageframesasrectangularmontage将多个图像帧显示为矩形蒙太奇Subimage:Displaymultipleimagesinsi
17、nglefigure在单个图形中显示多个图像(图像处理函数详见附表)特别注意一些转换函数:(1)数据转换函数:)数据转换函数:A=unit8(B)、B=double(A)或或B=A/255前面已经介绍。前面已经介绍。Im2double,im2unit8,im2unit16分别是将图像矩阵数值转换为分别是将图像矩阵数值转换为double型,型,unit8型,型,unit16型。型。(2)图像类型转换函数:)图像类型转换函数:索引图像灰度图像二值图像RGB图像Gray2ind Ind2gray Int2rgb Rgb2gray Rgb2ind 三层变一层三层变一层一层变三层一层变三层(方法研究)(
18、方法研究)Im2bw 涉及到阈值选择,即多少作为黑白图像的分界线,一个阈值选择函数:graythresh。一个转换函数例如:W=im2bw(W,graythresh(W)图像处理中一些注意问题当前路径存放变量默认路径改变路径各种图片和编写的M文件和程序放在默认路径n图像保存中的失真问题:图像保存中的失真问题:A=imread(山水照片.jpg);imshow(A);得到:大小为大小为2048*1536用此处保存得到图片再读用此处保存得到图片再读入和入和imshow得到得到保存白边,大保存白边,大小为小为335*470解决方案:程序中直接采用解决方案:程序中直接采用imwrite写入磁盘,这样大
19、写入磁盘,这样大小就不会改变。一般小就不会改变。一般bmp格格式较不易失真。式较不易失真。最常碰到的问题有:图像读入imread,应是上文提过的MATLAB支持的7种格式之一,显示图像用imshow(h)语句,h为图像句柄;输出图像若需要永久保存,可用imwrite(h,map,filename.bmp,bmp),写入存储器。注意在该语句前要设置调色板,即map=(gray(256)。要注意图像格式的转化。不同的图像格式对应不同的处理方式,如果处理与格式不符,将引起错误。尽管MATLAB允许未定义使用数组,但在实际应用中这样经常出错,特别是遇到在double和uint8型之间的转换时。所以最好还是养成用前定义的习惯,避免出现不必要的错误。在做完一定量的运算后,一般要用Clear清除内存变量,以防影响后面的程序运行。一般默认路径在matlab安装文件下的work文件夹中,程序和资源都放在此,如果需要引用新的文件,应事先指明路径。应注意语句结尾“;”的使用,特别是图像处理中。应做好程序的注释工作。希望我们共同探讨和学习!希望我们共同探讨和学习!
限制150内