您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 第6章 MATLAB图像处理-1.
1第6章Matlab图像处理第6章MATLAB图像处理2第6章Matlab图像处理MATLAB的特点是语法结构简单,数值计算高效,图形功能完备,特别受到以完成数据处理与图形图像生成为主要目的的科研人员的青睐。随着MATLAB在各个工程领域应用的日益广泛,专家学者们相继推出了一系列的工具箱,来处理相应领域的具体问题。3第6章Matlab图像处理•Communications•ControlSystem•CurveFitting•DataAcquisition•Database•FilterDesign•Financial•FuzzyLogic•ImageProcessing•InstrumentControl•LMIControl•Mapping•ModelPredictiveControl•Mu-AnalysisandSynthesis•NeuralNetwork•Optimization•PartialDifferentialEquation•RobustControl•SignalProcessing•Spline•Statistics•SymbolicMath•SystemIdentification•VirtualReality•WaveletMatlabToolboxes4第6章Matlab图像处理•Communications•ControlSystem•CurveFitting•DataAcquisition•Database•FilterDesign•Financial•FuzzyLogic•ImageProcessing•InstrumentControl•LMIControl•Mapping•ModelPredictiveControl—通信—控制系统—曲线拟合—数据采集—数据库—滤波器设计—金融—模糊逻辑—图像处理—仪器控制—线性矩阵不等(式)控制—映射—模型预测控制MatlabToolboxes5第6章Matlab图像处理—神经网络—最优化—偏微分方程—鲁棒控制—信号处理—样条(曲线拟合分析)—统计学—符号数学—系统识别—虚拟现实—小波(分析)MatlabToolboxes•NeuralNetwork•Optimization•PartialDifferentialEquation•RobustControl•SignalProcessing•Spline•Statistics•SymbolicMath•SystemIdentification•VirtualReality•Wavelet7第6章Matlab图像处理MATLAB图像处理:1.图像类型及转换2.图像读写与显示3.图像的几何操作8第6章Matlab图像处理一、MATLAB中图像类型在MATLAB中,图像是按像素存储的,即矩阵的每个元素代表一个像素。一幅300行200列的灰度图像,在MATLAB中存储为300×200大小的矩阵。一幅RGB图像,需要三维矩阵表示,每一维代表一种颜色,这样一幅300行200列的RGB图像就需要用300×200×3的矩阵表示。3002003002009第6章Matlab图像处理一、Matlab图像类型图像数据矩阵的数据类型:双精度(double)型,即64位的浮点数。一个数据占用8个字节。数据存储量巨大。无符号整型(uint8),一个数据占用一个字节。节省存储空间。由于MATLAB及工具箱中的大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,在运算时通常要将图像转换成double型。10第6章Matlab图像处理一、Matlab图像类型MATLAB图像处理工具箱支持4种图像类型:1.MATLAB支持的图像类型图像类型是指图像在MATLAB数据文件中的存储方式。(1)真彩色图像(2)索引色图像(3)灰度图像(4)二值图像另外,MATLAB还可以处理由多帧图像组成的图像序列.11第6章Matlab图像处理真彩色图像又称RGB图像,它是利用R,G,B3个分量来表示一个像素的颜色,R,G,B分别代表红、绿、蓝3种不同的颜色,通过三基色可以合成出任意颜色。所以对一个尺寸为m×n的彩色图像来说,在Matlab中则存储为一个m×n×3的三维数组。真彩色图像可用双精度型来存储,亮度值范围[0,1]。一像素值为(0,0,0)代表黑色,(1,1,1)代表白色,(1,0,0)代表红色,这一点与Windows编程规则不同〔(255,0,0)代表红色〕。真彩色图像也可以用无符号整型来存储,如果用无符号整型存储RGB图像,则亮度值的范围为[0,255]。(1)真彩色图像12第6章Matlab图像处理redgreenblue双精型真彩色图像13第6章Matlab图像处理redgreenblue调色板数据矩阵12345678索引色图像存储的是颜色的序号而不是颜色本身。不同的序号对应为不同的颜色。(2)索引色图像索引图像包含两个结构:调色板、图像数据矩阵。14第6章Matlab图像处理RGBIndexedcolorimagePalette15第6章Matlab图像处理灰度图像就是只有亮度信息,而没有颜色信息的图像。存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置的像素的灰度值。(3)灰度图像16第6章Matlab图像处理灰度图像17第6章Matlab图像处理二值图像就是黑白二值图像。二值图像只需一个数据矩阵来存储,每个像素只取0或者1。(4)二值图像18第6章Matlab图像处理有些情况下,需要一系列按照时间或者序号排列起来的一组图像,例如核磁共振图像片(MRI)或者电影文件。图像处理工具箱中定义了函数可以将多帧图像连接成图像序列。图像序列是一个四维的数组,图像的长、宽、颜色深度构成图像的前三维,图像帧的序号构成第四维。比如一个包含了4幅500×400真彩色图像的序列,图像的大小则为500×400×3×4。再如:(5)序列图像19第6章Matlab图像处理在有些图像操作中,需要对图像的类型进行转换。比如要对一幅索引色图像滤波,首先应该将其转换成真彩色图像或者灰度图像,这时Matlab将会对图像的灰度进行滤波,这是通常意义上的滤波。如果不将索引色图像进行转换,Matlab则对图像调色板的序号进行滤波,这是没有任何意义的。2.图像类型转换(1)im2bwim2bw函数通过设置亮度阈值将真彩色、索引色、灰度图像转换成二值图像。语法格式为:BW=im2bw(I,level)%灰度图像I→二值图像BW=im2bw(X,map,level)%索引色图像→二值图像BW=irn2bw(RGB,level)%真彩色图像I→二值图像参数level是归一化的阈值,取值范围[0,1]。输入图像可以是double或uint8类型,输出图像为uint8类型。20第6章Matlab图像处理下例将一幅索引色图像转换成灰度图像,结果如图所示:loadtrees%读入trees索引色图像I=ind2gray(X,map);%将索引色图像转换为灰度图像imshow(X,map)%显示原索引色图像figure,imshow(I)%另绘窗口,显示灰度图像索引图像灰度图像(2)ind2grayind2gray函数可以将索引色图像转换成灰度图像,语法格式为:I=ind2gray(X,map)将具有调色板map的索引色图像I转换成灰度图像I,它去掉了图像的色度和饱和度,仅保留了图像的亮度信息。21第6章Matlab图像处理(3)ind2rgb将索引色图像转换成真彩色图像,其语法格式为:RGB=ind2rgb(X,map)将具有调色板map的索引色图像X转换成真彩色图像RGB。实际实现时,就是产生一个三维数组,然后将索引色图像对应的调色板的颜色值赋予三维数组。输入图像X可以是double或unint8类型,输出图像RGB为double类型.(4)mat2graymat2gray函数用于将一个数据矩阵转换成一幅灰度图像,其语法格式为:I=mat2gray(A,[aminamax])按指定的取值区间[aminamax]将数据矩阵A转换为灰度图像I,amin对应灰度0(最暗),amax对应1(最亮)。I=mat2gray(A)如果不指定区间[aminamax],MATLAB则自动将A阵中的最小元设为amin,最上元设为amax。22第6章Matlab图像处理(5)gray2indgray2ind函数可以将灰度图像转换成索引色图像,语法格式为:[X,map]=gray2ind(I,n)该函数按指定的灰度级数n和调色板map,将灰度图像I转换成索引色图像X,n的默认值为64.(6)grayslicegrayslice函数通过设定阈值将灰度图像转换成索引色图像,语法格式为:X=grayslice(I,n)%将灰度图像I均匀量化为n个等级,然后转换为伪彩色图像X。23第6章Matlab图像处理例:将一幅灰度图像转换成索引色图像。I=imread('ngc4024m.tif');X=grayslice(I,16);%设定灰度级为16,将灰度图像转化为索引色图像。imshow(I)figure,imshow(X,hot(16))%用hot(16)产生调色板来显示索引色图像。24第6章Matlab图像处理(8)rgb2grayrgb2gray函数用于将一幅真彩色图像转换成灰度图像,语法格式为:I=rgb2gray(RGB)(9)rgb2indrgb2ind函数用于将真彩色图像转换成索引色图像,其语法格式为:RGB=rgb2ind(X,map)该命令将具有调色板map的索引色图像X转换成真彩色图像X。输入的图像X可以是double或uint8类型,输出图像RGB为double类型。25第6章Matlab图像处理dither函数通过抖动算法转换图像类型①X=dither(RGB,map)%将RGB按指定的调色板map转换成索引色图像X如:Index_J=dither(I,hot(16))②BW=dither(I)%将灰度图像I抖动成二值图像BW(10)dither26第6章Matlab图像处理MATLAB中利用函数imread来实现图像文件的读取操作,1.图像文件的读写其语法格式为:A=imread(‘filename’,‘fmt’)如:I=imread('sunset.jpg');[X,map]=imread(‘filename’,‘fmt’)二、图像的读写与显示(1)imreadMATLAB支持的图像文件格式有*.cur、*.bmp、*.hdf、*.ico、*.jpg、*.pcx、*.png、和*.tif。用于图像文件I/O的工具箱函数是imread、imfinfo和imwrite,其中参数fmt指定了图像的格式,可选的值为cur、bmp、hdf.ico、jpg、pcx、png和tif,图像格式也可以和文件名写在一起,即filename.fmt,默认的文件目录为当前MATLAB的工作日录。27第6章Matlab图像处理二、图像的读写与显示imwrite函数用于输出图像,其语法格式为:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)(2)imwriteimfinfo函数用于读取图像文件的有关信息,其语法格式为:info=imfinfo(filename,fmt)info=imfinfo(filename)imfinfo函数返回一个结构info,它反映了该图像的各方面信息.如:imfinfo('rice.tif')(3)imfinfo28第6章Matlab图像处理FilenameAstringcontainingthenameofthefileFileModDateAstringcontainingthemodificationdateofthefileFileSizeAnintegerindicatingthesizeofthefileinbytesFormatAstringcontainingthefileformat,
本文标题:第6章 MATLAB图像处理-1.
链接地址:https://www.777doc.com/doc-3637107 .html