版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章MATLAB在图像处理中的应用8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结8.1.1读取图片
在MATLAB中常用四种图像类型,分别是RGB真彩色图像、索引图像、灰度图像和二值图像,它们各有各的优势,且可以相互转换。1.RGB真彩色图像在RGB真彩色图像中,R(Red)、G(Green)、B(Black)三个分量表示一个像素的颜色。在MATLAB中,RGB真彩色图像可以用双精度存储,亮度范围为[01],[000]表示黑色,[111]表示白色。此外,RGB真彩色图像还可以用无符号整型存储,一般常用8bit表示,亮度范围为[0255],[000]表示黑色,[255255255]表示白色。两者之间可以相互转换。例现在有一个大小为256×256×3以无符号整型存储的RBG图像I,其中R、G、B的值全为1,将其变成双精度型I1,然后再变回无符号型I2。代码如下:
I=ones(256,256,3);I1=double(I)/255;I2=uint8(round(I1*255));I(2,3)I1(2,3)I2(2,3)2.索引图像索引图像包括两部分,即图像数据矩阵和调色板。调色板是一个有3列和若干行的色彩映象矩阵,矩阵每行代表一种颜色,3列分别代表红、绿、蓝色强度的双精度数。MATLAB中调色板色彩强度范围为[01],其中0代表最暗,1代表最亮。例读取和显示索引图像,程序如下:[Xmap]=imread('spine.tif');figure;imshow(X)colormap(map)3.灰度图像灰度图像是图像处理中非常常用的一类图像,在MATLAB中,一般采用矩阵存储灰度图像,如果数据类型为double,则取值范围为[0,1],其中0代表黑色,1代表白色。灰度图像一般也采用imshow()函数进行显示。例在程序中建立256×256的灰度图像,并将其转换为8位无符号整型,然后显示图像。clearI=zeros(256,256);fori=1:256I(1:256,i)=i/255;%像素赋值endfigureimshow(I)4.二值图像在MATLAB中,对于二值图像,采用逻辑类型进行存储,每个像素只有两个灰度值,0和1,其中0代表黑色,1代表白色。一般可以使用logical()函数将双精度类型转换为逻辑型矩阵。例在程序中建立256×256的二值图像,其中上半部分是白色,下半部分是黑色,然后显示图像。clearI=zeros(256,256);I(1:128,:)=1;%像素赋值I(129:256,:)=0;%像素赋值figureimshow(I)在MATLAB中利用imread()函数读取图片,然后利用imshow()函数显示图像。该函数常用的调用格式为:(1)A=imread(filename,fmt):读取文件名filename而扩展名为fmt的图片,并保存在数组A中,注意如果图片没有在MATLAB可读取的路径内,filename应该为全路径+图片的名称。(2)[X,map]=imread(filename,fmt):读取文件名filename而扩展名为fmt的图片,并保存在数组X中,并将其图像调色板的索引保存到map中。(3)[...]=imread(filename):自动读取文件名filename的图片。(4)[...]=imread(URL,...):读取网址为URl的网络图片。例设在D盘中有一副图片,其名称为hbu.jpg,则利用imread()函数读取该图片。clearA=imread('D:hbu.jpg','jpg');size(A)imshow(A)例将上例中的图像转换为灰度图像进行显示。clearA=imread('D:hbu.jpg','jpg');I=rgb2gray(A);size(I)imshow(I)8.1.2显示图片
在8.1.1节中们已经讲述了最常见的图像显示函数imshow()函数,下面对其进行详细的解释。该函数常用的调用格式为:(1)imshow(I):显示矩阵I代表的图像,I可以是灰度图像也可是彩色图像。(2)imshow(I,map):显示矩阵I代表的图像,I为索引图像,调色板为map。(3)imshow(I,[low,high]):其中,low和high分别为数据数组的最小值和最大值,由于MATLAB自动对灰度图像进行标度以适合调色板的范围,因而可以使用自定义大小的调色板。(4)imshow(I,[]):low为I中最小的值,high为I中最大的值。例利用Maltab中子带的cameraman.tif图像进行图像显示。I=imread('cameraman.tif');subplot(1,2,1)imshow(I)subplot(1,2,2)imshow(I,[32128])8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结8.2.1直方图
图像的灰度直方图是图像灰度级的函数,它描述了图像中每个灰度级所包含的像素的个数(也就是说每个灰度级出现的的频率分布)。在Matlab中绘制直方图的函数是hist,其使用用方法为hist(y,x)。hist()函数的调用格式如下:(1)N=hist(Y):该调用格式将向量Y中的元素平均分配到十个容器中,并且这十个容器的大小一样。N表示每个容器中所包含的元素的个数是多少。对于Y为矩阵的情况,该调用格式将对矩阵进行逐列操作。(2)N=hist(Y,M):该调用格式将向量Y的元素平均分到M个容器中,且这M个容器的大小一致。N表示每个容器所包含的元素的个数是多少。对于Y为矩阵的情况,该调用格式也对矩阵进行逐列操作。(3)N=hist(Y,X):该调用格式中X是向量,该调用格式在划分容器的时候,容器的中心为向量X中的元素,从而执行该调用命令可获得Y在这些容器中的分布情况。例Y=[1:10],利用hist(Y)计算其直方图。MATLAB代码如下:Y=[1:10];hist(Y)h=findobj(gca,'Type','patch');set(h,'FaceColor',[10.760.05],'EdgeColor','w');8.2.2直方图均衡图像经过均衡化处理以后,图像的直方图的波峰和波谷都被拉直了,这样整个图像的直方图就变得比较平滑平直,即各灰度级拥有的频数大致相同,这样灰度级就具有均匀的概率分布,图像看起来就更清晰。在MATLAB中,使用histeq()函数进行直方图均衡化,其调用格式如下:(1)J=histeq(I,hgram):将原始图像I的直方图变成用户指定的向量hgram。hgram中的各元素的值域为[0,1];(2)J=histeq(I,n):指定直方图均衡后的灰度级数n,默认值为64;(3)[J,T]=histeq(I,...):返回从能将图像I的灰度直方图变换成图像J的直方图变换T。(4)newmap=histeq(X,map,hgram)、newmap=histeq(X,map)、[newmap,T]=histeq(X,...)这三个是针对索引图像调色板的直方图均衡化,用法和灰度图像的一样。例对MATLAB自带的图像tire进行直方图均衡化。MATLAB代码如下:I=imread('tire.tif');J=histeq(I);imshow(I)figureimshow(J)运行结果如下:(a)(b)其中(a)为原始图像,(b)为直方图均衡化以后的图像,可以看到图像的灰度更均匀了。再计算图(a)和(b)的直方图分布情况,代码如下:I=imread('tire.tif');J=histeq(I);hist(double(I(:)),256);figurehist(double(J(:)),256);结果如图:(c)(d)
其中(c)和(d)分别是原始图像和均衡化后的直方图,对比图(c)与(d)可知直方图均衡化实质上是减少图像的灰度级以换取对比度的加大。8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结1.线性变换在数字图像处理中,线性变换使曝光不充分图像中黑的更黑,白得更白,从而提高图像对比度,其公式如下:g(x,y)=(d-c)/(b-a)[f(x,y)-a]+c其中f(x,y)表示线性变换前的原始图像,而g(x,y)表示线性变换后的图像,a、b、c和d都表示线性变换的系数。2.分段线性变换在数字图像处理中,非线性变换往往可以有效的提高图像的局部对比度白,从而有效的增强图像的局部细节,其公式如下:g(x,y)=c/df(x,y)0<=f(x,y)<=ag(x,y)=(d-c)/(b-a)[f(x,y)-a]+ca<=f(x,y)<=bg(x,y)=(f-b)/(e-a)[f(x,y)-b]+db<=f(x,y)<=c其中f(x,y)表示分段线性变换前的原始图像,而g(x,y)表示分段线性变换后的图像,a、b、c、d、e和f都表示分段线性变换的系数。3.非线性变换在数字图像处理中,线性变换往往不能满足所有的图像增强,从而非线性变换被用于图像增强中,这里主要使用的对数变换和指数变换,其公式如下:g(x,y)=a+ln[f(x,y)+1]/b*lncg(x,y)=c+exp(f(x,y))其中f(x,y)表示线性变换前的原始图像,而g(x,y)表示非线性变换后的图像,a、b、c都表示非线性变换的系数。在MATLAB中imadjust函数用于进行图像的灰度变换,以调节灰度图像的亮度或彩色图像的颜色矩阵。其调用格式如下:(1)J=imadjust(I):将灰度图像I中像素的亮度值映射到图像J中,以致1%的图像数据在最低和最高强度间达到饱和。此函数的功能是增大图像J的对比度,便于后续的图像处理。具体用法同imadjust(I,stretchlim(I));(2)J=imadjust(I,[low_in;high_in],[low_out;high_out]):将灰度图像I中像素的亮度值映射到图像J中。也就是,将图像I中low_in到high_in间的亮度值映射到low_out到high_out间,并将low_in以下的值设定为下边界low_out而high_in以上的值设定为上边界high_out,最后得到图像J。[low_in;high_in]和[low_out;high_out]都可以取值为空矩阵,则默认值为[0,1];(3)J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma):将灰度图像I中像素的亮度值映射到图像J中。其中,通过gamma的值来确定I和J的关系的曲线形状。如果gamma的值越大,则输出图像J的像素值相应成比例地越小,图像越灰暗;如果省略参数gamma,则默认为图像J和I间为线性映射。(4)newmap=imadjust(map,[low_in;high_in],[low_out;high_out],gamma):调整索引色图像的调色板map。如果low_in,high_in,low_out,high_out和gamma都是标量,则将图像中的r,g和b分量同时做出以上映射。对于每一个颜色分量,都有唯一的映射与之相对应。当low_in和high_in,或者low_out和high_out,或者gamma,三者只要有其一是1*3向量时,调整后的颜色矩阵newmap与map的大小相同。(5)GB2=imadjust(RGB1,...):对彩色图像RGB1的三基色(红、绿和蓝)分别调整。当颜色矩阵变化时,每个调色板都有唯一的映射值与之对应。例对MATLAB自带的图像football进行灰度拉伸。RGB1=imread('football.jpg');RGB2=imadjust(RGB1,[.2.30;.6.71],[]);
imshow(RGB1),
figure
imshow(RGB2)运行结果:
原图结果图8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结8.4.1均值滤波均值滤波属于线性滤波的一种,主要是通过像素点和其周围领域像素点简单的线性运算实现滤波的。在MATLAB中实现图像的均值滤波主要通过使用imfilter函数和fspecial相结合的方式进行滤波。1.imfilter函数调用格式:(1)B=imfilter(A,H):利用滤波器系数为H的滤波器对A进行滤波。(2)g=imfilter(f,w,filtering_mode,boundary_options,size_options):其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。options具体参数选项描述filtering_mode‘corr’通过使用相关运算来完成滤波,该值为默认。
‘conv’通过使用卷积运算来完成滤波boundary_options‘X’输入图像的边界通过用值X(无引号)来填充扩展其默认值为0
‘replicate’图像大小通过复制外边界的值来扩展
‘symmetric’图像大小通过镜像反射其边界来扩展
‘circular’图像大小通过将图像看成是一个二维周期函数的一个周期来扩展size_options‘full’输出图像的大小与被扩展图像的大小相同
‘same’输出图像的大小与输入图像的大小相同。这可通过将滤波掩模的中心点的偏移限制到原图像中包含的点来实现,该值为默认值。2.fspecial函数用于建立预定义的滤波算子,其调用格式如下:(1)h=fspecial(type):利用type建立预定义的滤波算子;(2)h=fspecial(type,para):利用type和para建立预定义的滤波算子。其中type指定算子的类型,para指定相应的参数。type具体类型如下:选项描述‘average’为均值滤波,参数为hsize代表模板尺寸,默认值为[3,3]‘disk’为圆形区域均值滤波,参数为radius代表区域半径,默认值为5‘gaussian’为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[33],sigma为滤波器的标准值,单位为像素,默认值为0.5‘laplacian’为拉普拉斯算子,参数alpha用于控制算子形状,取值范围为[0,1],默认值为0.2‘log’为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为[33],sigma为滤波器的标准差,单位为像素,默认值为0.5‘motion’为运动模糊算子,有两个参数,表示摄像物体逆时针方向以theta角度运动了len个像素,len的默认值为9,theta的默认值为0‘prewitt’用于边缘增强,大小为[33],无参数‘sobel’用于边缘提取,无参数‘unsharp’为对比度增强滤波器。参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2例对MATLAB自带的图像football进行窗口为3*3的均值滤波。img=imread('football.jpg');%产生均值滤波算子H=fspecial('average',[33])%产生均值滤波算子imgAvg=imfilter(img,H);%查看原始图像figureimshow(img,[])%查看滤波后图像figureimshow(imgAvg,[])
原图
滤波后图像8.4.2中值滤波利用中值滤波,不但可以滤出掉那些孤立的噪声点,而且还可以很好地保持图像的细节特征与边缘特性,更不会使去噪后的图像产生明显的模糊现象。中值滤波的步骤为:(1)将滤波模板(即一定大小的滑动窗口)的中心与待处理图像中某个位置的像素点重合;(2)读取模板中各个不同位置的像素的灰度值;(3)读取后的灰度值按升序或降序顺序排列;(4)在已排序好的序列中,取其中间的数值即是模板现在所在位置的中心像素值。(5)重复步骤以上步骤,直到模板的中心位置遍历完待测图像的每个像素点。在MATLAB中中值滤波有固定的调用函数medfilt2,其调用格式为:(1)h=medfilt2(I):利用3*3的窗口对图像I进行中值滤波;(2)h=medfilt2(I,[MN]):利用M*N的窗口对图像I进行中值滤波。例对MATLAB自带的图像football进行中值检测,窗口大小为5*5。img=imread('football.jpg');I=rgb2gray(img);%加脉冲噪声I1=imnoise(I,'salt&pepper');%中值滤波imgMed=medfilt2(I1,[55]);%查看原始图像figureimshow(I,[])%查看噪声图像figureimshow(I1,[])%查看滤波后图像figureimshow(imgMed,[])原始图像噪声图像滤波后图像8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结
图像阈值分割是一种被广泛应用的分割技术,它利用图像中待提取目标与其背景在灰度特性上的差异,将图像看作是不同灰度级的两种区域(目标和背景)的组合,然后据此设计一个适当的阈值将图像中的每个像素点判别为目标或者背景,最后得到对应的二值图像。在MATLAB中,graythresh函数使用最大类间方差法找到图片的一个合适的阈值,然后im2bw函数进行图像的二值化。例对MATLAB自带的图像coins进行OSTU阈值分割和二值化。MATLAB代码如下:I=imread('coins.png');%OSTU阈值分割%求取分割阈值level=graythresh(I);%进行图像分割和二值化BW=im2bw(I,level);%查看原始图像figureimshow(I,[])%查看二值化图像figure,imshow(BW,[])
原始图像
二值化后图像8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结
数学形态学是以形态结构元素为基础对图像进行分析的数学工具。它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。数学形态学的应用可以简化图像数据,保持它们基本的形状特征,并除去不相干的结构。1.strel函数该函数能够生成膨胀腐蚀及开闭运算等操作的结构元素对象,其调用格式如下:(1)SE
=
strel(shape,parameters)
:创建由shape指定形状的结构元素。其中,参数parameters用来控制SE的大小。通常,shape的类型有'arbitrary'
、'pair'
、'diamond'
、'periodicline'、
'disk'
、'rectangle'、
'line'
、'square'、
'octagon’
等;(2)SE=strel('arbitrary',NHOOD):创建一个任意形状的结构元素。其中,NHOOD是只包含元素0和1的矩阵,可以用se=strel(NHOOD)简化来指定形状;(3)SE=strel('arbitrary',NHOOD,HEIGHT):HEIGHT是一个与NHOOD同大小的矩阵,包含于相关的NHOOD中非零元素的高度值;(4)SE=strel('ball',R,H,N):创建一个椭球形的结构元素。其中,R为平面X-Y内的半径,H为高度。当N大于0时,椭球是利用N不平坦的线状结构来进行逼近的。当N等于0时,它没有逼近;(5)SE=strel('diamond',R):创建一个平坦的菱形结构元素。其中,R是结构元素中从原点到菱形最远的距离;(6)SE=strel('disk',R,N):创建一个平坦的圆形结构元素,其中,R为半径。N必须是固定值0,4,6或8.当N大于0时,圆形结构元素被N个周期线性结构元素序列近似逼近;当N等于0时,没有逼近,结构元素包含所有的小于从原点到R的像素。(7)SE=strel('line',LEN,DEG):创建一个平坦的线性结构。其中,LEN为线的长度,DEG为角度;(8)SE=strel('octagon',R):创建一个平坦的八边形结构。其中,沿水平轴和垂直轴度量,R是从结构元素的原点到八边形的距离,且R必须是3的非付倍数;(9)SE=strel('pair',OFFSET):创建一个包含两个成员的平坦结构元素。其中,一个成员在原点,一个成员由向量OFFSET表示,且该向量必须是一个两元素的整数向量;(10)SE=strel('periodicline',P,V):创建一个包含有2*P+1个成员的平坦元素。其中,V是一个两元素向量,它包含有整数值得行和列的转移,一个元素在原点,另一个元素位于1*V,-1*V,2*V,-2*V,...,P*V,-P*V处;(11)SE=strel('rectangle',MN):创建一个平坦的矩阵结构。其中,由MN指定矩形的大小;(12)SE=strel('square',N):创建一个方形的结构元素。其中,N表示边长包含的像素数。例利用strel生成一个半径为5的圆盘结构。MATLAB代码如下:se=strel('disk',5,0)se=00000100000001111111000111111111001111111110011111111101111111111101111111110011111111100111111111000111111100000001000002.imdilate函数该函数能够实现二值图像的膨胀操作,其调用格式如下:(1)BW2=imdilate(BW1,SE):使用二值结构要素矩阵SE队图像数据矩阵BW1执行膨胀操作,输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8;(2)BW2=imdilate(BW1,SE,…,n):使用二值结构要素矩阵SE队图像数据矩阵BW1执行n次膨胀操作。例对8.5节中例题二值化后的图像进行膨胀操作。MATLAB代码如下:I=imread('coins.png');%OSTU阈值分割%求取分割阈值level=graythresh(I);%进行图像分割和二值化BW=im2bw(I,level);%生产形态学结构se=strel('rectangle',[35]);%结构元素
%形态学膨胀imgDil=imdilate(BW,se,'same');%dilate%查看原始图像figureimshow(I,[])%查看二值化图像figure,imshow(BW,[])%查看形态学膨胀图像figure,imshow(imgDil,[])二值化图像形态学膨胀图像3.imerode函数该函数能够实现二值图像的腐蚀操作,其调用格式如下:(1)BW2=imerode(BW1,SE):使用二值结构要素矩阵SE队图像数据矩阵BW1执行腐蚀操作。输入图像BW1的类型为double或unit8,输出图像BW2的类型为unit8;(2)BW2=imerode(BW1,SE,…,n):使用二值结构要素矩阵SE队图像数据矩阵BW1执行n次腐蚀操作。例对8.5节中例题二值化后的图像进行腐蚀操作。MATLAB代码如下:I=imread('coins.png');%OSTU阈值分割%求取分割阈值level=graythresh(I);%进行图像分割和二值化BW=im2bw(I,level);%生产形态学结构se=strel('rectangle',[35]);%结构元素%形态学腐蚀imgEro=imerode(BW,se,'same');%查看原始图像figureimshow(I,[])%查看二值化图像figure,imshow(BW,[])%查看形态学腐蚀图像figure,imshow(imgEro,[])二值化图像形态学腐蚀图像4.bwmorph函数该函数的功能是能实现二值图像形态学运算,格式如下:(1)BW2=bwmorph(BW1,operation):可对二值图像BW1采用指定的形态学运算;(2)BW2=bwmorph(BW1,operation,n):可对二值图像BW1采用指定的形态学运算n次。operation为表8.3所示的字符串之一。OperationDescription'bothat'是形态学上的“底帽”变换操作,返回的图像是原图减去形态学闭操作处理后的图像(闭操作:先膨胀再腐蚀)'bridge'连接断开的像素。也就是将0值像素置1如果他有两个非零的不相连(8邻域)的像素'clean'移除孤立的像素(被0包围的1)'close'执行形态学闭操作(先膨胀后腐蚀)'diag'利用对角线填充来消除背景中的8连通区域'dilate'利用结构ones(3)执行膨胀操作'erode'利用结构ones(3)执行腐蚀操作'fill'填充孤立的内部像素(被1包围的0)'hbreak'移除H连通的像素'majority'将某一像素置1如果该像素的3×3邻域中至少有5个像素为1;否则将该像素置0'open'执行形态学开操作(先腐蚀后膨胀)'remove'移除内部像素。该选项将一像素置0如果该像素的4连通邻域都为1,仅留下边缘像素'shrink'n=Inf时,将目标缩成一个点。没有孔洞的目标缩成一个点,有孔洞的目标缩成一个连通环'skel'n=Inf时,移除目标边界像素,但是不允许目标分隔开,保留下来的像素组合成图像的骨架'spur'移除刺激(孤立)像素'thicken'n=Inf时,通过在目标外部增加像素加厚目标直到这样做最终使先前未连接目标成为8连通域'thin'n=Inf时,减薄目标成线。没有孔洞的目标缩成最低限度的连通边;有孔洞的目标缩成连通环'tophat'执行形态学“顶帽”变换操作,返回的图像是原图减去形态学开操作处理之后的图像(开操作:先腐蚀再膨胀)例对8.5节中例题二值化后的图像进行tophat操作,MATLAB代码如下:I=imread('coins.png');%OSTU阈值分割%求取分割阈值level=graythresh(I);%进行图像分割和二值化BW=im2bw(I,level);%tophat变换imgTop=bwmorph(BW,'tophat');%查看原始图像figureimshow(I,[])%查看二值化图像figure,imshow(BW,[])%查看tophat变换图像figure,imshow(imgTop,[])二值化图像tophat变换图像5.imclose函数该函数功能是对灰度图像执行形态学闭运算,即使用同样的结构元素先对图像进行膨胀操作后进行腐蚀操作。调用格式为:IM2=imclose(IM,SE)例对8.5节中例题二值化后的图像进行形态学闭运算,MATLAB代码如下:I=imread('coins.png');%OSTU阈值分割%求取分割阈值level=graythresh(I);%进行图像分割和二值化BW=im2bw(I,level);%生产形态学结构se=strel('rectangle',[35]);%结构元素%形态学闭运算imgClo=imclose(BW,se);%查看原始图像figureimshow(I,[])%查看二值化图像figure,imshow(BW,[])%查看形态学闭运算结果figure,imshow(imgClo,[])二值化图像
形态学闭运算后图像6.imopen函数该函数功能是对灰度图像执行形态学开运算,即使用同样的结构元素先对图像进行腐蚀操作后进行膨胀操作。调用格式为:
IM2=imopen(IM,SE)例对8.5节中例题二值化后的图像进行形态学开运算,MATLAB代码如下:I=imread('coins.png');%OSTU阈值分割%求取分割阈值level=graythresh(I);%进行图像分割和二值化BW=im2bw(I,level);%生产形态学结构se=strel('rectangle',[35]);%结构元素%形态学开运算imgOpe=imopen(BW,se);%查看原始图像figureimshow(I,[])%查看二值化图像figure,imshow(BW,[])%查看形态学开运算结果figure,imshow(imgOpe,[])二值化图像
形态学开运算后图像8.1读取和显示图像8.2图像的直方图均衡8.3灰度拉伸8.4图像滤波8.5阈值分割与二值化8.6形态学算子8.7图像变换8.8本章小结1.快速傅里叶变换
在MATLAB图像处理工具箱中,对图像进行二维的傅里叶变换的函数为fft2(),其调用格式如下:(1)Y=fft2(X):对矩阵X进行快速傅里叶变换,返回变换后傅里叶系数Y。通常,X为二维数据(一般为灰度图像),Y与X的维数相同,且Y包含复数。(2)Y=fft2(X,m,n):对矩阵X进行快速傅里叶变换,m和n表示返回的傅里叶系数矩阵Y的大小,如果m和n超过了数据矩阵X的大小,则返回的Y矩阵在超出X的维数部分补零。通常,X为二维数据(一般为灰度图像)。
在MATLAB图像处理工具箱中,对图像进行二维的逆傅里叶变换的函数为ifft2(),其调用格式如下:(1)Y=ifft2(X):对矩阵X进行逆傅里叶变换,返回变换后二维矩阵Y。通常,X为二维数据,且包含复数,Y与X的维数相同。(2)Y=ifft2(X,m,n):对矩阵X进行逆快速傅里叶变换,m和n表示返回的二维矩阵Y的大小。通常,X为二维数据。
通常利用函数fftshift()将傅里叶变换后的图像频谱中心从矩阵的原点移动到矩阵的中心,从而有利于观察傅里叶变换的效果,其调用格式如下:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 组织再生策略
- 2025-2030智慧农业技术发展趋势供需分析及投资评估规划研究报告
- 脑脊液漏基因治疗研究
- 建设工程代建合同模板
- 2026年中医妇科学实践技能卷及答案(专升本版)
- 严重钝性创伤影像学指南2026
- 2026年自动化仓储对货物Tracking的影响
- 2026年酒店业的环境风险评估与管理
- 水质净化厂建设项目可行性研究报告
- 2026年故障预警系统的设计与实现
- (高清版)DZT 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼
- 有关锂离子电池安全的基础研究课件
- 人工智能与计算机视觉
- 口腔材料学课件
- 盐酸凯普拉生片-临床用药解读
- 中建综合支架专项施工方案
- 医院财务制度专家讲座
- 2023年北京市中国互联网投资基金管理有限公司招聘笔试题库含答案解析
- 中控ECS-700学习课件
- 2023年上海市杨浦区中考一模(暨上学期期末)语文试题(含答案解析)
- 甲状腺病变的CT诊断
评论
0/150
提交评论