Matlab图像处理工具箱

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章Matlab图像处理工具箱2.1Matlab简介Matlab是MatrixLaboratory的缩写,是当今很流行的科学计算软件。信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用,在诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其他计算问题,,Matlab软件适时推出,为人们提供了一个方便的数值计算平台。Matlab软件主要由主包、Simulink和工具箱3部分组成。1.Matlab主包(1)MatlabMatlab语言是一种基于矩阵/数组的高级语言,它具有流程控制语句、函数、数据结构、输入输出,以及面向对象的程序设计特性。(2)Matlab工作环境Maltlab工作环境集成了许多工具和程序,用户用工作环境中提供的功能完成他们的工作。(3句柄图形是Matlab的图形系统,它包括一些高级命令,用于实现二维和三维数据可视化、图像处理、动画等功能;还有一些低级命令,用来定制图形的显示,以及建立Matlab应用程序的图形用户界面。Matlab主包(4)MatlabMatlab数学函数库是数学运算的一个巨大集合,该函数库既包含了各类简单函数,也包含了矩阵转置、特征值、贝塞尔函数、(5)Matlab应用程序接口(API)Matlab应用程序接口是一个Matlab语言向C和Fortran等其他高级语言进行交互的库,包括读写Matlab数据文件(MAT文件)。2.SimulinkSimulink是用于动态系统仿真的交互式系统。Simulink允许用户在屏幕上绘制框图模拟一个系统,并能够动态地控制该系统。Simulink采用鼠标驱动方式,能够处理线性、非线性、连续、离散、多变量以及多级系统。此外,Simulink还为用户提供了SimulinkExtensions(扩展)和Blocksets3(模块集)2个附加项。3.Matlab工具箱Matlab工具箱是Matlab用来解决各个领域特定问题的函数库,它是开放式的,可以应用,也可以根据Matlab提供的工具箱为用户提供了丰富而实用的资源,工具箱的内容非常广泛,涵盖了科学研究的很多门类。目前,已有涉及数学、控制、通信、信号处理、图像处理、经济、地理等多种学科的20多种Matlab2.2Matlab常用的基本命令1.常用矩阵的生成(1)全0A=zeros(n):生成n×n的全0A=zeros(m,n):生成m×n的全0A=zeros(a1,a2,a3,…):生成a1×a2×a3×…的全0A=zeros(size(B)):生成与矩阵B大小相同的全0矩阵。Matlab常用的基本命令(2)全1A=ones(n):生成n×n的全1A=ones(m,n):生成m×n的全1A=ones([m,n]):生成m×n的全1A=ones(a1,a2,a3,…):生成a1×a2×a3×…的全1矩A=onse(size(B)):生成与矩阵B大小相同的全1矩阵。Matlab常用的基本命令(3)A=eye(n):生成n×nA=eye(m,n):生成m×nA=eye([m,n]):生成m×nA=eye(size(B)):生成与矩阵B大小相同的单位矩阵。Matlab常用的基本命令(4)A=rand(n):生成n×nA=rand(m,n):生成m×nA=rand([m,n]):生成m×n的全1A=rand(a1,a2,a3,…):生成a1×a2×a3×…的随机矩阵。A=rand(size(B)):生成与矩阵B大小相同的随机矩阵。Matlab常用的基本命令(5)A=randn(n):生成n×nA=randn(m,n):生成m×nA=randn([m,n]):生成m×n的全1A=randn(a1,a2,a3,…):生成a1×a2×a3×…的随机矩A=randn(size(B)):生成与矩阵B大小相同的随机矩阵。Matlab常用的基本命令2.简单矩阵的生成在Matlab(1)对于较小的简单矩阵,从键盘上直接输入矩阵是最常用的数值①②③Matlab常用的基本命令(2)用Matlab生成的矩阵存储成二进制文件或包含数值数据的文本文件可以生成矩阵。文本文件中,数据必须排成一个数据表,数据之间用空格分隔,文件的每行包含矩阵的一行,并且每行的元素个数必须相等。(3)利用用户文件创建的M用户可以使用M文件生成自己的矩阵。M文件是一种包含Matlab代码的文本文件,这种文件的扩展名为.m,所包含的内容就是把在Matlab的命令行上输入的矩阵生成命令存入一个文件。Matlab常用的基本命令3.Matlab可以采用多种不同的方式生成向量。(1)利用冒号“:”冒号“:”是Matlab中常用算子之一,不仅可以作数组下标,对数组元素进行引用、增加和删除,还可以Matlab常用的基本命令冒号“:”x=j:k如果jk,则生成向量x=[j,j+1,j+2,…,k];如果jk,则生成空向量x=[];x=j:i:k如果i0且jk或i0且jk,则生成向量x=[j,j+i,j+2i,…,k];如果i0且jk或i0且jk,则生成空向量x=[];2.3图像处理工具箱简介Matlab是一种基于向量(数组)而不是标量的高级程序语言,因而Matlab从本质上就提供了对图像的支持。从图像的数字化过程可以知道,数字图像实际上就是一组有序离散的数据,使用Matlab可以对这些离散数据形成的矩阵进行一次性的处理。1.图像采集工具箱提供了大量的函数用于采集图像和视频信号。该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。Matlab的ImageProcessingToolbox支持多种图像数据格式,这些图像文件格式主要有JPEG、TIFF、HDF、HDF.EOS和DICOM。同时,Matlab中还可以导入/导出AVI格式的数据文件,支持其他工业标准的数据文件格式。2.Matlab的ImageProcessingToolbox提供了大量的用于图像处理的函数,利用这些函数,可以分析图像数据,获取图像细节信息,并且设计相应的滤波算子,滤除图像数据所包含的噪声。图像处理工具箱还提供了Radon变换(来重构图像,而离散余弦变换(JPEG图像压缩核心算法)可以作为实现新的压缩算法的核心。在图像处理工具箱中还包含了众多数学形态学函数,这些函数可以用于处理灰度图像或者二值图像,可以快速实现边缘检测、图像去噪、骨架提取和粒度测定等算法。此外还包含一些专用的数学形态学函数,例如填充处理、峰值检测、分水岭分割等,且所有的数学形态学函数都可以处理多维图像数据。3.图像处理图像处理工具箱提供了很多高层次的图像处理函数,这些函数包括排列、变换和锐化等操作。同样,利用这些函数能够完成裁减图像和尺寸变换等操作。4.Matlab本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换及材质贴图等。利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布情况。5.算法开发与发布Matlab允许用户自己开发算法,并且将其封装起来,不断扩展到工具箱函数中。此外,也可以在支持Matlab的平台上共享用户所开发的算法,并将算法同已有的C代码结合在一起,完成算法的发布工作。除此之外,Matlab还可以将用户开发的GUI、图像处理算法等应用程序发布为C或者C++源代码,进而编译生产COM组件或者Java接口,将Matlab开发的算法同其他开发工具结合起来。2.4Matlab中的图像类型及类型转换2.4.1图像和图像数据Matlab中的数字图像是由一个或多个矩阵表示的。这意味着Matlab强大的矩阵运算功能完全可以应用于图像,那些适用于矩阵运算的语法对Matlab中的数字图像同样适用。2.4.1图像和图像数据在缺省的情况下,Matlab将图像中的数据存储为双精度类型(double),即64bit浮点数。这种存储方法的优点在于,使用中不需要数据类型的转换,因为几乎所有的Matlab及其工具箱函数都可以使用double作为参数类型。然而对于图像存储来说,用64bit表示图像数据会导致巨大的存储量,所以Matlab还支持图像数据的另一种类型无符号整型(uint8),即图像矩阵中的每个数据占用1个字节。Matlab及工具箱中的大多数操作及函数(比如最基本的矩阵相加)都不支持uint8类型。uint8的优势仅在于节省存储空间,在涉及运算时将其转换成double型。2.4.2图像处理工具箱所支持的图像类型图像处理工具箱支持4真彩色图像(RGBimages索引色图像(indeximages灰度图像(intensityimages二值图像(binaryimages)此外,Matlab还支持由多帧图像组成的图像序列。1.真彩色图像真彩色图像用R、G、B3个分量表示1个像素的颜色,所以对1个尺寸为m×n的真彩色图像来说,其数据结构就是一个m×n×3的多维数组。如果要读取图像中(100,50)处的像素值,可以查看三元组(100,50,1∶3).真彩色图像可用双精度存储,此时亮度值的范围是[0,1]。比较符合习惯的存储方法是用无符号整型存储,亮度值的范围为[0,255]。图2.2真彩色图像的结构2.索引色图像Matlab中的索引色图像包含2个结构,一个是调色板;另外一个是图像数据矩阵。调色板是一个有3列和若干行的色彩映像矩阵,矩阵的每行都代表一种色彩,通过3个分别代表红、绿、蓝颜色强度的双精度数,形需要注意的是Matlab中的调色板的色彩强度是[0,1]中的浮点数,0代表最暗,1代表最亮。图2.3索引色图像的结构3.灰度图像存储灰度图像只需要一个数据矩阵,数据类型可以是double,值域为[0,1],也可以是uint8,值域[0,255]。4.二值图像与灰度图像相同,二值图像只需一个数据矩阵,每个像素只有2个灰度值。二值图像可以采用uint8或double类型存储,工具箱中以二值图像作为返回结果的函数都使用uint8类型。图2.5是一幅二值图像的结构图2.5二值图像的结构5.图像序列图像处理工具箱支持将多帧图像连接成图像序列。图像序列是一个四维的数组,图像帧的序号在图像的长、宽、颜色深度之后构成第四维。比如一个包含了5幅400×300真彩色图像的序列,其大小为400×300×5。要将分散的图像合并成图像序列可以使用Matlab的cat函数,前提是各图像的尺寸必须相同,如果是索引色图像,调色板也必须是一样的。图像序列比如要将A1、A2、A3、A4、A5五幅图像合并成一个图像序列A,MatlabA=cat(4,A1,A2,A3,A4,A5)也可以从图像序列中抽出1FRM3=MULTI(:、:、:、3)是将序列MULTI中的第3帧抽出来赋给矩阵FRM32.4.3Matlab图像类型转换工具箱中提供了许多图像类型转换的函数,从这些函数的名称就可以看出它们的功能。1.dither函数格式:X=dither(I1,map)bw=dither(I2)2.gray2ind格式:[X,map]=gray2ind(I,n)Matlab图像类型转换3.grayslice格式:X=grayslice(I,n)X=grayslice(I,v)4.imb2bw函数格式:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)Matlab图像类型转换5.ind2gray格式:I=Ind2gray(X,map)6.ind2rgb函数格式:RGB=ind2rgb(X,map)Matlab图像类型转换7.mat2gray函数格式:I=mat2gray(A,[aminamax])I=mat2gray(A)8.rgb2gray格式:I=rgb2gray(RGB)newmap=rgb2gray(map)9.rgb2ind格式:RGB=rgb2ind(X,map)2.4.4图像文件的读写和查询Matlab为用户提供了特殊的函数,用于从图像格式的文件中读写图像数据。其中,读取图形文

1 / 67
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功