第02章 matlab图像处理介绍_第1页
第02章 matlab图像处理介绍_第2页
第02章 matlab图像处理介绍_第3页
第02章 matlab图像处理介绍_第4页
第02章 matlab图像处理介绍_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章MATLAB图像处理介绍第2章MATLAB图像处理工具箱本章教学安排2学时讲解内容:Matlab简介。Matlab中常用的基本命令。图像处理工具箱介绍Matlab处理的图像类型和文件格式。Matlab图像的基本操作。2.1Matlab简介

MATLAB名字是MatrixLaboratory的意思。由美国的MathWorks公司出品,它的基本数据单位是矩阵。它的指令表达式与数学,工程中常用的形式十分相似,故用它来解决问题比用C,Fortran等语言完成相同的事情简捷的多。在大学,数学,工程学,科学的介绍性课程和高级性课程中,MATLAB是标准的教学工具。在工厂,MATLAB是高生产率研究发展和分析的可选择的工具。MATLAB是一种直观性的语言和专业运算的环境。它已成为工程计算机方面世界上公认的标准。它被用于各种各样的应用领域,包括信号和图像处理,控制系统,设计,地球与生命科学,金融与经济,还有仪器测试。MATLAB的主要特点包括:①快速准确的数字运算;②图形可视化并用于分析数据;③交互式语言和编程环境;④图形用户界面设计的工具;⑤可结合一些外部应用程序,包括C、C++、Fortran、Java、COM部分和Excel;⑥支持来自文件和外部设备的输入数据,且支持用低标准的文件的输入输出(加上附加的产品对入数据库和附加硬件的访问(存取)产生附加的产品);⑦把MATLAB的应用转到带有编译器的C和C++。由于直接内嵌了大量的优化数学程序,MATLAB使工程师和科学家能够专注于自己实质性的工作,避免了耗时的寻找﹑开发﹑调试以及维护代码的工作。2.2Matlab中常用的基本命令。(1)矩阵生成①一般矩阵的生成对于一般的矩阵MATLAB的生成方法有多种。最简单的方法是从键盘直接输入矩阵元素。直接输入矩阵元素时应注意:各元素之间用空格或逗号隔开,用分号或回车结束矩阵行,用中括号把矩阵所有元素括起来。例1-1在工作空间产生一个3×3矩阵A可用MATLAB语言描述如下:

A=[123;456;789]

或A=[123456789]

运行结果: A=123 456789②特殊矩阵的生成对于特殊的矩阵可直接调用MATLAB的函数生成。用函数zeros生成全0矩阵:格式B=zeros(m,n)生成m×n的全0阵。用函数ones生成全1矩阵:格式B=ones(m,n)生成m×n的全1阵。用函数eye生成单位阵:格式B=eye(m,n)生成m×n的单位矩阵,其中对角线元素全为1,其他元素为0。用函数rand生成随机矩阵:格式B=rand(m,n)生成m×n的随机矩阵。③矩阵中的元素值和线性代数一样,我们可采取下标来表述矩阵元素,同时也可以利用下标对矩阵元素进行修改。例如对例1-1中的矩阵A,如果输入A(4)则显示:ans=2若输入A(1,2),结果仍为:ans=2可见矩阵是按列存储的。若输入A(1,2)=6,显示结果为:A=163456789若要选取A的第二行,可以输入A(2,:),则显示ans=456(2)矩阵的运算矩阵的运算有基本运算和函数运算两种类型。基本运算包括矩阵的加、减、乘、除、乘方、求转置、求逆等,其主要特点是通过MATLAB提供的基本运算符+、-、*、/(\)、^等即可完成。例1-2矩阵的基本运算。 A=[1,2,3;4,5,6]B=[6,5,4;3,2,1]C=A+B%计算两个矩阵的和D=B'%计算矩阵B的转置E=A*D%做矩阵乘法,必须要满足矩阵乘法的基本要求%E应该是2阶方阵F=det(E)%求E的行列式值G=E^(-1)%求E的逆

问题:设有矩阵A和B,试问A*B和A.*B的区别?(3)基本语句1)循环语句MATLAB的循环语句包括for循环和while循环两种类型。①for循环语法格式:for循环变量=起始值:步长:终止值循环体end②while循环语法格式:while表达式循环体end其执行方式为:若表达式为真(运算值非0),则执行循环体;若表达式为假(运算结果为0),则退出循环体,执行end后的语句。2)条件转移语句条件转移语句有if和switch两种。①if语句;MATLAB中if语句的用法与其他高级语言相类似,其基本语法格式有以下几种:格式一:if逻辑表达式执行语句end格式二:if逻辑表达式执行语句1 else执行语句2end格式三:if逻辑表达式1执行语句1elseif逻辑表达式2执行语句2end

②switch语句switch语句的用法与其他高级语言相类似,其基本语法格式为:switch表达式(标量或字符串)case值1语句1case值2语句2…otherwise语句nend(4)MATLAB函数①函数及其调用方法

函数定义行:MATLAB语言在M文件的第一行用关键字“function”把M文件定义为一个函数,并指定它的名字(必须和文件名相同),同时也定义了函数的输入和输出参数。例如:求最大值函数“max”的定义可描述为function[Y,I]=max(x)函数体其中,“max”为函数名,输入参数为“x”,输出参数为“Y”和“I”。②函数调用函数调用的过程实际上就是参数传递的过程。例如,在一个脚本文件里调用函数“max”可采用如下方式:n=1:20;a=sin(2*pi*n/20);[Y,I]=max(a);该调用过程把变量“a”传给了函数中的输入参数“x”,然后把函数运算的返回值传给输出参数“Y”和“I”。其中,Y是a序列的最大值,I是最大值Y对应的坐标值。

注意:1.自己编写函数时,所用的函数名应和保存的m文件文件名相同。2.分清矩阵相乘和点乘的区别。3.注意文件命名。必须以字母开头。有的同学喜欢以数字或中文开头,这是错误的!2.3.1常用图像格式 图像格式是指图像文件的存储格式。MATLAB中常用的图像格式有:bmp,cur,gif,hdf,ico,jpg或jpeg,pcx,png,tif或tiff等。2.3Matlab处理的图像类型和文件格式。2.3.2MATLAB图像类型 MATLAB支持五种图像类型,即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。

二值图像:数据存储类型,Logical,元素值为0或1的矩阵;

索引图像:把像素值直接作为RGB调色板下标的图像。一幅索引图像包含一个数据矩阵X和一个调色板矩阵map,数据矩阵为double或uint8或uint16;调色板矩阵总是一个m*3(m表示颜色数目)的double型矩阵且矩阵元素的值域为[0,1]。Map矩阵的每一行指定一个颜色的R,G,B颜色分量。RGB图像:double型或uint8型或uint16型,又称真彩色图像,在MATLAB中存储为m*n*3的数据矩阵,它表示图像中每个像素的红,绿,蓝3个颜色分量的数值。多帧图像阵列:由多帧图像组成,每一帧图像可以为前4种图像中的一种,但组成一个多帧图像阵列的图像必须为同一种。2.4图像处理工具箱简介MATLAB图像处理工具箱的函数,按具体功能可以分为以下几类:图像显示几何操作图像注册邻域和块操作线性滤波和滤波器的设计。图像变换,形态学分析图像分析与图像增强。图像恢复颜色映射和颜色空间转换Matlab中图像处理相关工具箱主要有:ImageAcquisitiontoolboxImageProcessingToolboxSignalProcessingToolboxWaveletToolboxStatisticsToolboxMatlabCompiler读者也可以根据需要编写自己的函数以满足特定的需要,也可以将图像处理工具箱和其他工具箱结合起来使用。可通过“help函数名”来查看各函数的使用方法。2.5.1图像文件信息查询 在MATLAB中,可以使用imfinfo函数来获取图像处理工具箱支持的任何格式图像文件的信息。 该函数语法格式如下: info=imfinfo(filename,fmt)

info=imfinfo(filename) info=imfinfo(URL,...)例1-1图像文件信息查询

info=imfinfo('cameraman.tif')2.5Matlab图像的基本操作2.5.2图像文件的读取

MATLAB通过函数imread完成图像的读取,该函数语法格式如下:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[...]=imread(filename)[...]=imread(URL,...)[...]=imread(...,idx)

(CUR,GIF,ICO,andTIFFonly)[...]=imread(...,'frames',idx)(GIFonly)[...]=imread(...,ref)

(HDFonly)[...]=imread(...,'BackgroundColor',BG)(PNGonly)[A,map,alpha]=imread(...)(ICO,CUR,andPNGonly)例1-2数字图像的打开 I=imread('cameraman.tif')2.5.3图像文件的写入 MATLAB函数imwrite来存储图像文件,该函数的语法格式如下: imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(...,filename)

imwrite(...,Param1,Val1,Param2,Val2...)例1-3图像文件写入

I=imread('cameraman.tif');imwrite(I,'E:\test1.tif') 执行程序后,可以看到在路径E:\下写入的图像文件“test1.tif”2.5.4图像的显示 MATLAB包含两个显示图像的函数image和imagesc;另外MATLAB图像工具箱中也包含两个显示图像的函数imview和imshow。1.MATLAB图像显示函数image函数image函数的语法格式如下: image(C)

image(x,y,C)

image(x,y,C,'PropertyName',PropertyValue,...)

image('PropertyName',PropertyValue,...)

handle=image(...)例1-4image函数的应用I=imread('cameraman.tif');figure(1);image(100,100,I);%设置图像左上角坐标为(100,100)colormap(gray(256));imagesc函数

imagesc函数具有对显示的数据进行自动缩放的功能。函数语法如下: imagesc(C)

imagesc(x,y,C)

imagesc(...,clims)

imagesc('PropertyName',PropertyValue,.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论