《第2章Matlab.ppt》由会员分享,可在线阅读,更多相关《第2章Matlab.ppt(30页珍藏版)》请在优知文库上搜索。
1、第二章 Matlab图像处理介绍nMALTLAB概述nMATLAB使用中需要注意的问题nMATLAB图像处理工具箱nMATLAB图形接口(GUI)简介4.1 Matlab概述概述n1、MATLABn2、语言特点n3、Matlab软件构成n4、主要功能4.1.1什么是什么是Matlabn 美国新墨西哥大学Cleve.Moler博士,20世纪70年代后期,Linpack 和Eispic的接口程序,Linpack是解线性方程的Fortran程序库,Eispic是解特征值问题的Fortran程序库。n接口程序命名为MATLAB(即matrix和laboratory的前三个字母的组合,意思是“矩阵实验室
2、”)。4.1.2MATLAB的特点的特点n界面友好,编程效率高语法规则更简单,编程特点更贴近人的思维,问题的提出和解答只需要用数学方式表达和描述n功能强大集成了数值分析、矩阵计算、信号处理和图形显示等众多的功能特点n 开放性、易扩展性所有的程序都不需要使用低层代码来编写许多新的软件包都是使用者提供的目前随着应用领域的扩大和爱好者的增加,它的功能越来越强大4.1.3 Matlab系统的构成系统的构成n主包、SIMULINK以及应用程序构成n Matlab系统(主包)包括五个部分Matlab语言Matlab工作环境MATLAB图形处理系统Matlab数学函数库Matlab应用程序接口1、MATLA
3、B语言n一种高级矩阵语言n带有独特的数据结构、输入输出、流程控制语句和函数,并且是面向对象的高级语言。n在工程计算方面具有无可比拟的优异性能。它集计算、数据可视化和程序设计于一体能将问题和解决方案以用户熟悉的数学符号表示出来2、Matlab工作环境n命令窗口是MATLAB提供给用户的操作界面,在命令窗口中,用户可以实现MATLAB的各种功能。nM文件编辑器(M文件是MATLAB所特有的使用该语言编写的磁盘文件)是MATLAB为用户提供的用于编辑M文件的程序nM文件调试器用于调试M文件的程序。nMATLAB工作空间显示用户在MATLAB中通过命令行进行操作的变量集合的窗口。n在线帮助文档3、MA
4、TLAB图形处理系统n图形处理系统提供图形处理功能,用于工程计算结果的可视化。绘制二维图形绘制三维图形及交互式观看定制图形用户界面4、Matlab数学函数库n既有求和、正余弦计算等简单函数,也有“线性代数”中常见的各种矩阵运算、信号分析中的快速傅立叶变换等复杂函数。nMATLAB数学函数通过两种方式提供给用户:(1)内部函数nMATLAB内部数学函数是一些简单的函数,直接内置于MATLAB核心中,执行效率较高。(2)以M文件的形式提供的函数n这种形式便于MATLAB不断增强功能,能够运用于越来越多的领域。n执行效率相对低5、Matlab应用程序接口n(API)是一个让MATLAB语言同C、Fo
5、rtran等其它高级语言进行交互的函数库,通过动态连接来读写MATLAB文件。(1)从MATLAB中调用C和Fortran程序;(2)从MATLAB中输入和输出数据;(3)在MATLAB和其它应用程序间建立客户/服务器关系4.2 MATLAB使用中需注意的问题nMATLAB的数据类型nMATLAB的基本编程4.2.1 Matlab的数据类型的数据类型n可运算的数据只有两种字符型(uint8),即为无符号数双精度型n存储型只能存储数据,而不能参与数学运算int8、uint8、int16、uint16、int32、uint32等,。n在基本数据类型的基础上,可以构建单元数组和结构。1、矩阵的生成n
6、用于乘法运算的初始矩阵通常赋成“1”矩阵;ones(3,2)n用于加法运算的初始矩阵,通常赋成“0”矩阵。Zeros(2,5)0矩阵与数组(1)0矩阵(矩阵或数组的所有元素为0)的生成:A=zeros(n),生成一个nxn个元素均为0的行矢量A;A=zeros(m,n),生成一个m行n列的元素均为0的矩阵A,或用A=zeros(m n);A=zeros(d1,d2,d3,)返回一个维数为d1d2d3的所有元素为0的数组,或用A=zeros(d1 d2 d3 );A=zeros(size(B),生成一个全0的矩阵A,它的尺寸与另一个矩阵B一致。0数组与矩阵X=zeros(1,3)X=0 0 0X
7、=zeros(3,4)X=0 0 0 00 0 0 00 0 0 0“1”矩阵或数组(2)1矩阵(矩阵或数组的所有元素为1)的生成:A=ones(n),生成一个nxn个元素均为1的行矢量A;A=ones(m,n),生成一个m行n列的元素均为1的矩阵A,或用A=ones(m n);A=ones(d1,d2,d3,)返回一个维数为d1d2d3的所有元素为1的数组,或用A=ones(d1 d2 d3 );A=ones(size(B),生成一个全1的矩阵A,它的尺寸与另一个矩阵B一致。1矩阵与数组A=ones(3,3,2)A(:,:,1)=1 1 11 1 11 1 1A(:,:,2)=1 1 11
8、1 11 1 12.5.3.3 Matlab的图像处理功能的图像处理功能Image toolboxn1、支持多种类型的图像文件以及各种类型文件的互相转换n2、多种图像空间表示n3、多种数字图像文件n4、方便的数字图像输入/输出n5、提供图像的矩阵表示及正交变换n6、图像增强n7、滤波器设计n8、二值图像分析1、支持多种类型的图像文件及各种类型文件的转换、支持多种类型的图像文件及各种类型文件的转换支持四种基本图像类型:p索引图像:图像矩阵与颜色图数组索引图像:图像矩阵与颜色图数组,ColormapR G B p灰度图像灰度图像:double,值域,值域 0,1;uint8类型,值域类型,值域 0
9、,255 p二进制图像二进制图像:(0,1)pRGB图像图像:图像数组为:图像数组为mn3,m,n表示图像象素表示图像象素的行列数的行列数 p与时间有关的图像序列与时间有关的图像序列:帧:帧,mn3f,m,n表示表示图像象素的行列数,图像象素的行列数,f表示帧数表示帧数,cat()提供三种颜色空间的转换以及四种图像类型的转换 pHSV值与值与RGB颜色空间的相互转换:颜色空间的相互转换:hsv2rgb(),rgb2hsv()pNTSC值与值与RGB颜色空间相互转换:颜色空间相互转换:ntsc2rgb(),rgb2ntsc()p灰度图像与索引图像的相互转换:灰度图像与索引图像的相互转换:gray
10、2ind(),ind2gray()pRGB图像转换为灰度图像:图像转换为灰度图像:rgb2gray()pRGB图像与索引图像相互转换图像与索引图像相互转换:rgb2ind(),ind2rgb()p将图像转换为二进制图像将图像转换为二进制图像:im2bw()p从灰度图像产生索引图像:从灰度图像产生索引图像:grayslice()p判断图像类型函数判断图像类型函数:isbw(),isrgb(),isind(),isgray()p矩阵转换为灰度图像函数:矩阵转换为灰度图像函数:mat2gray()2、方便的数字图像输入、方便的数字图像输入/输出输出图像输入/输出函数为imread()、imwrite
11、():BMP、HDF、JPEG、PCX、TIFF、XWD等格式等格式Imread(c:myimagepic.jpg,);查看图像文件信息:imfinfo()mat文件:将内存中的图像用save命令以mat文件形式保存到磁盘中,随时可用load命令调用。3、方便的图像显示、方便的图像显示颜色条显示:colorbar()从轴上获取图像数据函数:getimage()显示图像:image()、subimage()、imshow()调整数据并显示成图像函数:imagesc()从多帧索引图像中制作电影:immovie()调整图像显示大小:truesize()显示图像为纹理表面:warp()二维图像放大或缩
12、小命令:zoom()4、图像的矩阵表示及正交变换、图像的矩阵表示及正交变换 图像的矩阵表示和向量表示:),()2,()1,(),2()2,2()1,2(),1()2,1()1,1(NMfMfMfNfffNfffFTMffff,.,21相关函数n图像象素值及其统计 图像像素值:impixel()、improfile()、imcontor()、imhist()一般统计特性:均值均值mean2(),标准差,标准差std2(),相关系数,相关系数corr2()n图像矩阵运算:秩秩、范数、范数、特征值、特征值、特征向量、特征多项式特征向量、特征多项式、逆矩阵或伪、逆矩阵或伪(广义)逆矩阵(广义)逆矩阵、
13、非线性运算、非线性运算 n图像的正交变换:Fourier(fft2,ifft2)、Hadamard、DCT(dct2,idct2)等等 5、图像增强、图像增强 n(1)增强图像的对比度,改善视觉效果的算法:imadjust()、brighten()、histeq()n(2)去除图像噪声的平滑滤波算法:imnoise()、medfilt2()、ordfilt2()、wiener2()n(3)增强图像边缘的锐化算法;n(4)提供了与图像处理有关的二维线性滤波器及其设计方法:conv2()、convmtx2()、convn()、filter()、fspecial()、freqspace()、freq
14、z2()、fsamp2()、ftrans2()、fwind1()、fwind2()6、数字图像操作与分析、数字图像操作与分析(1/3)(1)二进制图像操作二进制图像操作:p构造查找表:构造查找表:makelut()()p使用查找表进行邻域操作:使用查找表进行邻域操作:applylut()()p计算二进制图像中的物体区域:计算二进制图像中的物体区域:bwarea()p计算二进制图像的计算二进制图像的Euler数:数:bweuler()p二进制图像的背景区域填充:二进制图像的背景区域填充:bwfill()p标志二进制图像中的相连成分:标志二进制图像中的相连成分:bwlabel()p二进制图像形态运
15、算二进制图像形态运算:bwmorph()p二进制图像腐蚀:二进制图像腐蚀:erode()p二进制图像膨胀:二进制图像膨胀:dilate()p确定二进制图像中的物体二进制图像扩大:确定二进制图像中的物体二进制图像扩大:bwselect()6、数字图像操作与分析、数字图像操作与分析(2/3)(2)颜色图操作 p使颜色图变成更亮或更暗的图:brighten()p重新排列颜色图中的颜色:cmpermute()p 寻找符合图像的独特的颜色图的颜色:cmunique()p设置或获取颜色查找表:colormap()p由较少颜色的图像近似索引图像:imapprox()(3)图像邻域及块操作 p选择块处理的块大
16、小:bestblk()p对图像实施不同的块处理:blkproc()p重新安排矩阵列到图像块:col2im()p使用列方向函数执行邻域运算;colfilt()p重新安排图像块到矩阵列:im2col()p进行一般邻域运算:nfilter()6、数字图像操作与分析、数字图像操作与分析(3/3)(4)基于区域图像处理 p依据颜色选择要处理的区域roicolor()p在任意区域内平滑插值roifill()p对一特殊区域进行滤波roifilt2()p选择要处理的多边形区域roipoly()(5)图像分析 p检测灰度图形的边缘edge()p执行四叉树分解qtdecomp()p获取四叉树分解块值qtgetblk()p设置四叉树分解块值qtsetblk()(6)图像几何运算p图像裁减imcrop()p图像大小调整imresize()、imrotate()、interp2()课后实践:1。图像的读人,输出,子图像,亮度调节。