实验四图像增强_第1页
实验四图像增强_第2页
实验四图像增强_第3页
实验四图像增强_第4页
实验四图像增强_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

实验四图像增强实验类型验证性实验。实验目的掌握MATLAB7.0中数字图像的空间域滤波办法;掌握MATLAB7.0中数字图像的频率域滤波办法;掌握MATLAB7.0中灰度图像的同态增晰办法。实验内容图像的多个灰度拉伸办法的实现;图像的直方图修正;图像的多个平滑与锐化解决;图像的低通与高通解决;图像的同态增晰。实验原理图像的多个灰度拉伸办法的实现图像的灰度拉伸办法有线性拉伸、对数拉伸和指数拉伸等。(1)线性拉伸线性拉伸或称为线性灰度变换的普通形式如图描述0c0cdMgabMf0cdMgabMf图.线性灰度负相变换普通形式图.线性灰度拉伸普通形式图.线性灰度负相变换普通形式图.线性灰度拉伸普通形式其对应的公式为:线性灰度拉伸普通公式 线性灰度负相变换的普通公式 例4_1:对一幅图像进行线性灰度拉伸。 参考程序以下: %图像中增强暗区域信息f=imread('cameraman.tif');[m,n]=size(f);imhist(f);f=double(f);Mg=255;Mf=255;a=30;%input('inputa');%能够根据直方图交互输入各参数值c=240;%input('inputc');b=210;%input('inputb');d=250;%input('inputd');fori=1:mforj=1:niff(i,j)<ag(i,j)=c/a*f(i,j);elseiff(i,j)<bg(i,j)=(d-c)/(b-a)*(f(i,j)-a)+c;elseg(i,j)=(Mg-d)/(Mf-b)*(f(i,j)-b)+d;endendendfigure,subplot(1,2,1),imshow(uint8(f));title('原图像');subplot(1,2,2),imshow(g,[]);title('增强后图像');运行成果如图4_1:图4_1图像的线性灰度拉伸图4_1图像的线性灰度拉伸例4_2:图像的线性灰度负相变换。参考程序以下:%实现a,b,c,d都为零的状况,公式简化为%linear_enhanceclc,closeall,clearallf=imread('rice.png');[m,n]=size(f);f=double(f);Mg=255;Mf=255;fori=1:mforj=1:ng(i,j)=Mg-Mg/Mf*f(i,j);endendfigure,subplot(1,2,1),imshow(uint8(f)),title('原图像');subplot(1,2,2);imshow(uint8(g));title('负相图像');运行成果如图4_2:图4_2图像的线性灰度负相变换图4_2图像的线性灰度负相变换(2)对数拉伸 将对数函数作为图像的映射函数,能够实现图像灰度的非线性变换,对数变换的普通形式为图4_3对数灰度变换的关系图(a=5,b=1,c=1.05) 其中,a、b、c是便于调节曲线的位置和形状而引入的参数,它能够使低灰度范畴的f得以扩展而高灰度范畴的f得到压缩,以使图像分布均匀,与人的视觉特性相匹配。对数灰度图4_3对数灰度变换的关系图(a=5,b=1,c=1.05)例4_3:对一幅图像进行对数灰度变换。参考程序以下:f=double(imread('cameraman.tif'));a=5;b=1;c=1.023;[m,n]=size(f);fori=1:mforj=1:ng(i,j)=+log(f(i,j)+1)/b/log(c);endendfigure,subplot(2,2,1),imshow(uint8(f)),title('原图像');subplot(2,2,2),imhist(uint8(f)),title('原图像直方图');subplot(2,2,3),imshow(uint8(g)),title('对数变换后图像');subplot(2,2,4),imhist(uint8(g));title('变换后图像的直方图')运行成果如图4_4:图4_4图像的对数拉伸变换图4_4图像的对数拉伸变换(3)指数拉伸 指数灰度变换也是非线性变换的一种,其普通形式为 其中,a、b、c是便于调节曲线的位置和形状而引入的参数,它的效果与对数变换相反,使图像的高灰度范畴得到扩展。指数灰度变换的关系如图4_5:图图4_5指数灰度变换的关系图(a=50,b=1.3,c=0.1)例4_4:对一幅图像进行指数灰度变换。参考代码以下:f=double(imread('cell.tif'));a=0;b=1.3;c=0.15;[m,n]=size(f);fori=1:mforj=1:ng(i,j)=b.^(c*(f(i,j)-a))-1;endendfigure,subplot(2,2,1),imshow(uint8(f)),title('原图像');subplot(2,2,2),imhist(uint8(f)),title('原图像直方图');subplot(2,2,3),imshow(uint8(g)),title('对数变换后图像');subplot(2,2,4),imhist(uint8(g));title('变换后图像的直方图')运行成果如图4_6:图4_6图像的指数灰度变换图4_6图像的指数灰度变换与灰度拉伸有关的函数imadjust()。调用格式:J=imadjust(I,[Low_in,High_in],[Low_out,High_out],gamma)I是输入图像矩阵,J是通过灰度变换后的图像矩阵,Low_in和High_in参数分别用来指定输入图像需要映射的灰度范畴,Low_out和High_out参数分别指定输出图像的灰度范畴,灰度范畴取值都是在0~1区间。Gamma是一种可选参数,用于指定图像I与J之间的映射关系:gamma=1时表达线性映射;gamma<1时表达弱映射;gamma>1时表达强映射;gamma默认值为1。例4_5:应用imadjust函数对图像进行灰度变换。参考程序以下:f=imread('cell.tif');f=double(f)/255;g=imadjust(f,[70/255,150/255],[0,1]);figure,subplot(2,2,1),imshow(f,[]),title('原图像');subplot(2,2,2),imhist(f),title('原图像直方图');subplot(2,2,3),imshow(g,[]),title('变换后图像');subplot(2,2,4),imhist(g);title('变换后图像的直方图')运行成果如图4_7:图4_7运用imadjust函数进行图像灰度变换图4_7运用imadjust函数进行图像灰度变换图像的直方图修正灰度直方图是表达一幅图像灰度分别状况的统计图表,在一定程度上反映了图像的特点。直方图修正涉及直方图的均衡化和规定化解决。直方图均衡化是通过对原图像进行某种灰度映射变换,使其直方图变为均匀分布的一种灰度非线性变换办法,直方图均衡化以累积分布函数作为变换函数。直方图规定化能够突出感爱好的灰度范畴,即修正直方图使其含有规定的形式,是对直方图均衡化的一种有效扩展。与直方图有关的函数有imhist(),histeq()imhist的调用格式为:imhist(I,n)I为输入图像,n为指定的灰度级数目,默认为256,此语句功效为绘制图像I的直方图,其灰度级合并为数目n。[COUNTS,X]=imhist(I,n);此语句功效为返回直方图统计的数据COUNTS和对应的灰度级向量X,不绘制直方图。运用语句stem(X,COUNTS)能够绘制图像的直方图。COUNTS/sum(COUNTS)即为灰度概率向量。例如:I=imread('rice.png');[COUNTS,X]=imhist(I);figure,subplot(2,1,1),imhist(I);title('imhist显示的直方图');subplot(2,1,2),stem(X,COUNTS),title('X,COUNTS显示的直方图');运行成果如图4_8:图4_8图像的直方图图像图4_8图像的直方图图像histeq函数既能够实现图像的均衡化解决,也能够实现图像的规定化解决histeq均衡化解决的调用格式:J=histeq(I,n);其中,I为原图像矩阵,n表达输出图像的灰度级数目,是一种可选参数,默认值为64,该语句功效是自动完毕图像的直方图均衡化,J是均衡化后的图像。例4_6:对一幅图像调用函数imhist进行直方图均衡化解决。参考程序以下:f=imread('cell.tif');g=histeq(f);figure,subplot(2,2,1),imshow(f),title('原图像');subplot(2,2,2),imhist(f),title('原图像直方图');subplot(2,2,3),imshow(g),title('均衡化后图像');subplot(2,2,4),imhist(g);title('均衡化后图像的直方图')运行成果如图4_9:图4_9图像直方图均衡化解决图4_9图像直方图均衡化解决histeq规定化解决的调用格式:J=histeq(I,hgram);其中,I为原图像矩阵,hgram为指定的直方图向量,其长度代表直方图的柱数。例4_7:应用imhist函数对图像进行规定化解决。参考程序以下:f=imread('concordorthophoto.png');h=0:255;h=1-h/255;g=histeq(f,h);figure,subplot(2,3,1),imshow(f),title('原图像');subplot(2,3,2),imhist(f),title('原图像直方图');subplot(2,3,3),stem(h),title('目的直方图');subplot(2,3,4),imshow(g);title('规定化后的图像')subplot(2,3,5),imhist(g),title('规定化后的图像直方图');运行成果如图4_10:图4_10图像的直方图规定化解决图4_10图像的直方图规定化解决图像的多个平滑与锐化解决图像的平滑与锐化解决都是在空间域对图像进行解决,能够统称为空域滤波。空域滤波是在图像空间中借助模板对图像进行邻域操作,输出图像每一种象素的取值都是根据模板对输入图像像素值进行计算得到的。根据功效能够将空域滤波分为平滑滤波器和锐化滤波器。(1)噪声生成函数imnoise()imnoise()函数调用格式:J=imnoise(I,‘TYPE’,PARAMETERS)I是输入图像,J是对I添加噪声后的输出图像,imnoise函数的参数可选项及其功效如表4_1:表4_1MATLAB中函数imnoise提供的图像噪声类型:表4_1MATLAB中函数imnoise提供的图像噪声类型:TYPEPARAMETERS阐明Gaussianm,v均值为m,方差为v的高斯噪声Localvarv均值为0,方差为v的高斯白噪声Possion无泊松噪声Salt&Pepper无椒盐噪声Specklev均值为0,方差为v的均匀分布随机噪声例4_8:对图像添加多个不同的噪声。参考程序以下:I=imread('rice.png');I1=imnoise(I,'gaussian',0.1,0.1);I2=imnoise(I,'localvar',0.1+zeros(size(I)));I3=imnoise(I,'poisson');I4=imnoise(I,'salt&pepper');I5=imnoise(I,'speckle',0.1);figuresubplot(2,3,1),imshow(I),title('原图像');subplot(2,3,2),imshow(I1),title('高斯噪声污染图像');subplot(2,3,3),imshow(I2),title('高斯白噪声污染图像');subplot(2,3,4),imshow(I3),title('泊松噪声污染图像');subplot(2,3,5),imshow(I4),title('椒盐噪声污染图像');subplot(2,3,6),imshow(I5),title('随机噪声污染图像');运行成果如图4_11:图4_11添加不同噪声的图像图4_11添加不同噪声的图像(2)与滤波器有关的函数fspecial函数能够生成空域解决的预定义模板,其调用格式为:h=fspecial(TYPE);h=fspecial(TYPE,PARAMETERS);h是返回的滤波器模板,参数的可选项及函数功效阐明如表4_2:表4_2表4_2fspecial函数提供的滤波器模板:TYPEPARAMETERS阐明AverageHsize均值滤波器,如果邻域为方阵,hsize指定邻域的函数和列数Sobel无近似计算垂直梯度光滑效应的水平边沿强调算子LaplacianAlpha系数由alpha(0.0~1.0)决定的二维拉普拉斯算子Prewitt无近似计算垂直梯度的水平边沿强调算子MotionLen,theta按照角度theta移动len个像素的运动滤波器例如:h=fspecial('laplacian',0.0)得到:h=0101-41010基于卷积的图像滤波函数filter2(),该函数用指定的滤波器模板对图像进行运算,其调用格式为:J=filter2(h,I,shape);h为指定的滤波器模板,I为输入图像,参数shape能够省略,是指定滤波的计算范畴,可选’full’,’same’,’valid’。图像滤波函数imfilter(),运用卷积滤波或有关性滤波解决图像,其调用格式为:J=imfilter(I,h);J=imfilter(I,h,OPTION1,OPTION2,OPTION3);其中I、h与filter2相似,三个参数中,一种是边界填充方式,可选项由’symmertric’,’replicate’(默认),’circular’;一种是输出尺寸选项,与filter2中的shape选项相似;另一种是滤波选项,可选’corr’(默认)使用有关性进行滤波,’conv’使用卷积办法滤波。中值滤波函数medfilt2(),其滤波原理是把邻域中的图像的像素按灰度进行排序,然后选择该组的中间值作为输出像素,其调用格式为:J=medfilt2(I,[m,n]);其中,I为输入图像,J是中值滤波后的输出图像,[m,n]指定滤波器的模板大小,默认为3×3。(2)平滑滤波平滑滤波的目的在于含糊图像(提取图像中的较大对象而消除较小对象或将对象间的小间断连接起来)或消除图像噪声。平滑滤波重要有邻域平均法(涉及加权邻域平均法,阈值邻域均值法)、邻域中值法、多图像平均法。例4_9:图像的平滑滤波。参考程序以下:%均值与中值滤波I=imread('rice.png');h=fspecial('average',5);J1=filter2(h,I,'valid');J2=imfilter(I,h,'full');figure,subplot(2,2,1),imshow(I);title('原图像');subplot(2,2,2),imshow(uint8(J1));title('filter2均值滤波效果');subplot(2,2,3),imshow(J2);title('imfilter均值滤波效果')subplot(2,2,4),imshow(J3);title('中值滤波效果') %多图像平均法I4=zeros(size(I));I8=I4;I16=I8;fori=1:4J=double(imnoise(I,'gaussian',0.02));I4=I4+J;endI4=I4/4.0;fori=1:4J=double(imnoise(I,'gaussian',0.02));I8=I8+J;endI8=I8/4;I8=(I4+I8)/2;fori=1:8J=double(imnoise(I,'gaussian',0.02));I16=I16+J;endI16=I16/8;I16=(I16+I8)/2;figure,subplot(2,2,1),imshow(I);title('原图像');subplot(2,2,2),imshow(uint8(I4));title('4幅图像平均滤波效果');subplot(2,2,3),imshow(I8,[]);title('8幅图像平均滤波效果')subplot(2,2,4),imshow(I16,[]);title('16幅图像平均滤波效果')运行成果分别如图4_12:(a)图像的均值滤波与中值滤波(a)图像的均值滤波与中值滤波(b)多图像平均法去噪(b)多图像平均法去噪图4_12图像的平滑滤波(均值滤波、中值滤波、多图像平均去噪)(2)锐化滤波锐化滤波能够突出图像的细节。具体实现时,是将原图像加上边沿提取后的图像,得到边沿清晰的图像,边沿提前办法这里重要介绍运用模板算子进行滤波的状况。惯用的锐化滤波模板有拉普拉斯算子、索贝尔算子和prewitt算子,同样通过fspecial函数生成锐化滤波模板,再调用filter2或imfilter函数进行滤波,有关边沿检测的其它办法将在第七章介绍。例4_10:对于一幅图像用不同的算子进行边沿增强。I=imread('rice.png');I=I(1:100,1:100);I=double(I);h=fspecial('laplacian');I1=I+filter2(h,I);h=fspecial('sobel');I2=I+filter2(h,I);h=fspecial('prewitt');I3=I+filter2(h,I);h=fspecial('average');I4=2*I-filter2(h,I);I5=2*I-medfilt2(I);figure,subplot(2,3,1),imshow(uint8(I));title('原图像');subplot(2,3,2),imshow(uint8(I1));title('laplacian边沿增强效果');subplot(2,3,3),imshow(I2,[]);title('sobel边沿增强效果')subplot(2,3,4),imshow(I3,[]);title('prewitt边沿增强效果')subplot(2,3,5),imshow(I4,[]);title('原图像-均值滤波图像')subplot(2,3,6),imshow(I5,[]);title('原图像-中值滤波图像') 运行成果如图4_13:图4_13图像的办法增强效果图图4_13图像的办法增强效果图图像的多个低通与高通滤波低通和高通滤波是在图像的频率域进行解决的增强办法,即首先将图像变换到频率域,再进行解决,然后再将成果图像变换回空间域。(1)低通滤波普通图像的边沿和噪声都对应于频率域中的高频部分,因此低通滤波就是能够让低频信息畅通无阻而同时虑掉高频分量,从而实现平滑图像、去除噪声。惯用的低通滤波器有抱负低通滤波器、巴特沃斯低通滤波器,指数低通滤波器等。其传递函数的形式分别以下:抱负低通滤波器

巴特沃斯低通滤波器指数低通滤波器其中,,表达点(u,v)到原点的距离,D0表达截止频率到原点的距离。例4_11:对一幅图像分别进行抱负低通滤波、巴特沃斯低通滤波和指数低通滤波,对比解决成果。参考程序以下:f=imread('rice.png');f=double(f);F=fftshift(fft2(f));%对图像进行傅立叶变换并将频域中心偏移到中点d0=20;%截止频率[m,n]=size(f);%抱负低通滤波h=0;foru=1:mforv=1:nifsqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))<=d0h=1;elseh=0;endFH(u,v)=F(u,v)*h;endendfh=ifft2(FH);%巴特沃斯低通滤波nb=1;foru=1:mforv=1:nhb=1/(1+(sqrt(2)-1)*(sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))/d0)^(2*nb));FHB(u,v)=F(u,v)*hb;endendfhb=ifft2(FHB);%指数低通滤波ne=1;foru=1:mforv=1:nhe=exp(-((sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))/d0)^ne/sqrt(2)));FHE(u,v)=F(u,v)*he;endendfhe=ifft2(FHE);figure,subplot(2,4,1),imshow(uint8(f));title('原图像');subplot(2,4,2),imshow(uint8(abs(fh)),[]);title('抱负低通滤波');;subplot(2,4,3),imshow(abs(fhb),[]);title('巴特沃斯低通滤波')subplot(2,4,4),imshow(abs(fhe),[]);title('指数低通滤波')subplot(2,4,5),imshow(log(abs(F)),[]);title('原图像频谱图')subplot(2,4,6),imshow(log(abs(FH)),[]);title('抱负低通滤波频谱图');subplot(2,4,7),imshow(log(abs(FHB)),[]);title('巴特沃斯低通滤波频谱图')subplot(2,4,8),imshow(log(abs(FHE)),[]);title('指数低通滤波频谱图')程序运行成果如图4_14:图4_14图像的低通滤波图4_14图像的低通滤波(2)高通滤波与低通滤波相反,高通滤波就是能够让高频信息畅通无阻而同时虑掉低频分量,从而使图像的边沿或线条更清晰。惯用的高通滤波器有抱负高通滤波器、巴特沃斯高通滤波器,指数高通滤波器等。其传递函数的形式分别以下:抱负高通滤波器

巴特沃斯高通滤波器指数高通滤波器其中,与D0与低通滤波公式中相似。例4_12:对一幅图像分别进行抱负高通滤波、巴特沃斯高通滤波和指数高通滤波,并对滤波成果进行对比。参考程序以下:f=imread('rice.png');f=double(f);F=fftshift(fft2(f));%对图像进行傅立叶变换并将频域中心偏移到中点d0=10;%截止频率[m,n]=size(f);%抱负高通滤波h=0;foru=1:mforv=1:nifsqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))<=d0h=0;elseh=1;endFH(u,v)=F(u,v)*h;endendfh=ifft2(FH);%巴特沃斯高通滤波nb=1;foru=1:mforv=1:nhb=1/(1+(sqrt(2)-1)*(d0/sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2)))^(2*nb));FHB(u,v)=F(u,v)*hb;endendfhb=ifft2(FHB);%指数高通滤波ne=1;foru=1:mforv=1:nhe=exp(-((d0/sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2)))^ne/sqrt(2)));FHE(u,v)=F(u,v)*he;endendfhe=ifft2(FHE);figure,subplot(2,4,1),imshow(uint8(f));title('原图像');subplot(2,4,2),imshow(uint8(abs(fh)),[]);title('抱负高通滤波');;subplot(2,4,3),imshow(abs(fhb),[]);title('巴特沃斯高通滤波')subplot(2,4,4),imshow(abs(fhe),[]);title('指数高通滤波')subplot(2,4,5),imshow(log(abs(F)),[]);title('原图像频谱图')subplot(2,4,6),imshow(log(abs(FH)),[]);title('抱负高通滤波频谱图');subplot(2,4,7),imshow(log(abs(FHB)),[]);title('巴特沃斯高通滤波频谱图')subplot(2,4,8),imshow(log(abs(FHE)),[]);title('指数高通滤波频谱图')运行成果如图4_15:图4_15图像的高通滤波图4_15图像的高通滤波同态增晰同态增晰是一种在频域中将图像动态范畴进行压缩并将图像对比度进行增强的办法。一幅图像能够用它的照明分量及反射分量来表达,即根据这个模型,图像的同态增晰解决过程如图所示lnlnFFTFFT-1exp中间的频域滤波器选择高通滤波器,普通可选巴特沃斯滤波器或指数滤波器。例4_13:对一幅图像进行同态增晰,选择巴特沃斯高通滤波器。参考程序以下:f=imread('rice.png');fl=log(double(f)+1);%取对数FL=fft2(fl);%变换到频率域FL=fftshift(FL);%中心偏移%巴特沃斯高通滤波[m,n]=size(f);d0=5;rh=0.8

温馨提示

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

评论

0/150

提交评论