Matlab图像处理工具箱.ppt
《Matlab图像处理工具箱.ppt》由会员分享,可在线阅读,更多相关《Matlab图像处理工具箱.ppt(67页珍藏版)》请在三一办公上搜索。
1、第2章 Matlab图像处理工具箱,2.1 Matlab简介,Matlab是Matrix Laboratory的缩写,是当今很流行的科学计算软件。信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用,在诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其他计算问题,Matlab软件适时推出,为人们提供了一个方便的数值计算平台。Matlab软件主要由主包、Simulink和工具箱3部分组成。,1.Matlab主包,(1)Matlab语言 Matlab语言是一种基于矩阵/数组的高级语言,它具有流程控制语句、函数、数据结构、输入输出,以及面向对象的程序设计特性。(
2、2)Matlab工作环境 Maltlab工作环境集成了许多工具和程序,用户用工作环境中提供的功能完成他们的工作。(3)句柄图形 句柄图形是Matlab的图形系统,它包括一些高级命令,用于实现二维和三维数据可视化、图像处理、动画等功能;还有一些低级命令,用来定制图形的显示,以及建立Matlab应用程序的图形用户界面。,Matlab主包,(4)Matlab数学函数库 Matlab数学函数库是数学运算的一个巨大集合,该函数库既包含了各类简单函数,也包含了矩阵转置、特征值、贝塞尔函数、快速傅里叶变换等复杂函数。(5)Matlab应用程序接口(API)Matlab应用程序接口是一个Matlab语言向C和
3、Fortran等其他高级语言进行交互的库,包括读写Matlab数据文件(MAT文件)。,2.Simulink,Simulink是用于动态系统仿真的交互式系统。Simulink允许用户在屏幕上绘制框图模拟一个系统,并能够动态地控制该系统。Simulink采用鼠标驱动方式,能够处理线性、非线性、连续、离散、多变量以及多级系统。此外,Simulink还为用户提供了Simulink Extensions(扩展)和Blocksets 3(模块集)2个附加项。,3.Matlab工具箱,Matlab 工具箱是Matlab用来解决各个领域特定问题的函数库,它是开放式的,可以应用,也可以根据需要进行扩展。Mat
4、lab提供的工具箱为用户提供了丰富而实用的资源,工具箱的内容非常广泛,涵盖了科学研究的很多门类。目前,已有涉及数学、控制、通信、信号处理、图像处理、经济、地理等多种学科的20多种Matlab工具箱投入应用。,2.2 Matlab常用的基本命令,1.常用矩阵的生成(1)全0矩阵 A=zeros(n):生成nn的全0矩阵。A=zeros(m,n):生成mn的全0矩阵。A=zeros(a1,a2,a3,):生成a1a2a3的全0 矩阵。A=zeros(size(B):生成与矩阵B大小相同的全0矩阵。,Matlab常用的基本命令,(2)全1矩阵 A=ones(n):生成nn的全1矩阵。A=ones(m
5、,n):生成mn的全1矩阵。A=ones(m,n):生成mn的全1矩阵。A=ones(a1,a2,a3,):生成a1a2a3的全1矩阵。A=onse(size(B):生成与矩阵B大小相同的全1矩阵。,Matlab常用的基本命令,(3)单位矩阵 A=eye(n):生成nn的单位矩阵。A=eye(m,n):生成mn的单位矩阵。A=eye(m,n):生成mn的单位矩阵。A=eye(size(B):生成与矩阵B大小相同的单位矩阵。,Matlab常用的基本命令,(4)均匀分布的随机矩阵 A=rand(n):生成nn的随机矩阵。A=rand(m,n):生成mn的随机矩阵。A=rand(m,n):生成mn的
6、全1矩阵。A=rand(a1,a2,a3,):生成a1a2a3的随机矩阵。A=rand(size(B):生成与矩阵B大小相同的随机矩阵。,Matlab常用的基本命令,(5)正态分布的随机矩阵 A=randn(n):生成nn的随机矩阵。A=randn(m,n):生成mn的随机矩阵。A=randn(m,n):生成mn的全1矩阵。A=randn(a1,a2,a3,):生成a1a2a3的随机矩阵。A=randn(size(B):生成与矩阵B大小相同的随机矩阵。,Matlab常用的基本命令,2.简单矩阵的生成 在Matlab中,可以采用多种不同的方式生成矩阵。(1)直接输入矩阵元素 对于较小的简单矩阵,
7、从键盘上直接输入矩阵是最常用的数值矩阵创建方法。需要遵循以下几个基本原则。矩阵每行的元素必须用空格或逗号分开;在矩阵中,采用分号或回车表明每行的结束;整个输入矩阵必须包含在方括号中。,Matlab常用的基本命令,(2)从外部数据文件调入矩阵元素 用Matlab生成的矩阵存储成二进制文件或包含数值数据的文本文件可以生成矩阵。文本文件中,数据必须排成一个数据表,数据之间用空格分隔,文件的每行包含矩阵的一行,并且每行的元素个数必须相等。(3)利用用户文件创建的M文件矩阵 用户可以使用M文件生成自己的矩阵。M文件是一种包含Matlab代码的文本文件,这种文件的扩展名为.m,所包含的内容就是把在Matl
8、ab的命令行上输入的矩阵生成命令存入一个文件。,Matlab常用的基本命令,3.向量的生成 Matlab可以采用多种不同的方式生成向量。(1)利用冒号“:”生成向量 冒号“:”是Matlab中常用算子之一,不仅可以作数组下标,对数组元素进行引用、增加和删除,还可以用来生成向量。,Matlab常用的基本命令,冒号“:”使用下列格式生成均匀等分向量:x=j:k 如果jk,则生成空向量x=;x=j:i:k 如果i0且jk,则生成向量x=j,j+i,j+2i,k;如果i0且jk或i0且jk,则生成空向量x=;,2.3 图像处理工具箱简介,Matlab是一种基于向量(数组)而不是标量的高级程序语言,因而
9、Matlab从本质上就提供了对图像的支持。从图像的数字化过程可以知道,数字图像实际上就是一组有序离散的数据,使用Matlab可以对这些离散数据形成的矩阵进行一次性的处理。,1.图像采集与导出,图像采集工具箱提供了大量的函数用于采集图像和视频信号。该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。Matlab的Image Processing Toolbox支持多种图像数据格式,这些图像文件格式主要有JPEG、TIFF、HDF、HDF.EOS和DICOM。同时,Matlab中还可以导入/导出AVI格式的数据文件,支持其他工业标准的数据文件格式。,2.图像分析与增强,Matlab的I
10、mage Processing Toolbox提供了大量的用于图像处理的函数,利用这些函数,可以分析图像数据,获取图像细节信息,并且设计相应的滤波算子,滤除图像数据所包含的噪声。图像处理工具箱还提供了Radon变换(来重构图像,而离散余弦变换(JPEG图像压缩核心算法)可以作为实现新的压缩算法的核心。在图像处理工具箱中还包含了众多数学形态学函数,这些函数可以用于处理灰度图像或者二值图像,可以快速实现边缘检测、图像去噪、骨架提取和粒度测定等算法。此外还包含一些专用的数学形态学函数,例如填充处理、峰值检测、分水岭分割等,且所有的数学形态学函数都可以处理多维图像数据。,3.图像处理,图像处理工具箱提
11、供了很多高层次的图像处理函数,这些函数包括排列、变换和锐化等操作。同样,利用这些函数能够完成裁减图像和尺寸变换等操作。,4.数据可视化,Matlab本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换及材质贴图等。利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布情况。,5.算法开发与发布,Matlab允许用户自己开发算法,并且将其封装起来,不断扩展到工具箱函数中。此外,也可以在支持Matlab的平台上共享用户所开发的算法,并将算法同已有的C代码结合在一起,完成算法的发布工作。除此之外,Matlab还可以将
12、用户开发的GUI、图像处理算法等应用程序发布为C或者C+源代码,进而编译生产COM组件或者Java接口,将Matlab开发的算法同其他开发工具结合起来。,2.4 Matlab中的图像类型及类型转换,2.4.1 图像和图像数据 Matlab中的数字图像是由一个或多个矩阵表示的。这意味着Matlab强大的矩阵运算功能完全可以应用于图像,那些适用于矩阵运算的语法对Matlab中的数字图像同样适用。,2.4.1 图像和图像数据,在缺省的情况下,Matlab将图像中的数据存储为双精度类型(double),即64bit浮点数。这种存储方法的优点在于,使用中不需要数据类型的转换,因为几乎所有的Matlab及
13、其工具箱函数都可以使用double作为参数类型。然而对于图像存储来说,用64bit表示图像数据会导致巨大的存储量,所以Matlab还支持图像数据的另一种类型无符号整型(uint8),即图像矩阵中的每个数据占用1个字节。Matlab及工具箱中的大多数操作及函数(比如最基本的矩阵相加)都不支持uint8类型。uint8的优势仅在于节省存储空间,在涉及运算时将其转换成double型。,2.4.2 图像处理工具箱所支持的图像类型,图像处理工具箱支持4种图像类型,它们是:真彩色图像(RGB images)索引色图像(index images)灰度图像(intensity images)二值图像(bina
14、ry images)此外,Matlab还支持由多帧图像组成的图像序列。,1.真彩色图像,真彩色图像用 R、G、B 3个分量表示1个像素的颜色,所以对1个尺寸为mn的真彩色图像来说,其数据结构就是一个mn3的多维数组。如果要读取图像中(100,50)处的像素值,可以查看三元组(100,50,13).真彩色图像可用双精度存储,此时亮度值的范围是0,1。比较符合习惯的存储方法是用无符号整型存储,亮度值的范围为0,255。,图2.2 真彩色图像的结构,2.索引色图像,Matlab中的索引色图像包含2个结构,一个是调色板;另外一个是图像数据矩阵。调色板是一个有3列和若干行的色彩映像矩阵,矩阵的每行都代表
15、一种色彩,通过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.图像序列,图像处理工具箱支持将
16、多帧图像连接成图像序列。图像序列是一个四维的数组,图像帧的序号在图像的长、宽、颜色深度之后构成第四维。比如一个包含了5幅400300真彩色图像的序列,其大小为4003005。要将分散的图像合并成图像序列可以使用Matlab的cat函数,前提是各图像的尺寸必须相同,如果是索引色图像,调色板也必须是一样的。,图像序列,比如要将A1、A2、A3、A4、A5五幅图像合并成一个图像序列A,Matlab语句为 A=cat(4,A1,A2,A3,A4,A5)也可以从图像序列中抽出1帧,比如语句 FRM3=MULTI(:、:、:、3)是将序列MULTI中的第3帧抽出来赋给矩阵FRM3。,2.4.3 Matla
17、b图像类型转换,工具箱中提供了许多图像类型转换的函数,从这些函数的名称就可以看出它们的功能。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=im2b
18、w(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,amin amax)I=mat2gray(A)8.rgb2gray函数 功能:将一幅真彩色图像转换成灰度图像。格式:I=rgb2gray(RGB)newmap=rgb2gray(m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 图像 处理 工具箱
链接地址:https://www.31ppt.com/p-5299149.html