数字图像处理-综合作业2.docx_第1页
数字图像处理-综合作业2.docx_第2页
数字图像处理-综合作业2.docx_第3页
数字图像处理-综合作业2.docx_第4页
数字图像处理-综合作业2.docx_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

综合作业二( 春季学期 ) 一对X1照片图像增强91.1 直方图增强91.1.1 直方图拉伸增加对比度91.1.2直方图均衡101.2 伪彩色增强111.2.1等密度分割法111.2.2多波段合成伪彩色显示13二 对x2照片图像增强152.1 滤波152.1.1各种滤波器152.1.2 中值滤波17 2.1.3 二阶butterworth滤波192.2 直方图增强20三 边缘提取及增强223.1 对x1边缘提取及复合223.1.1 对x1边缘提取223.1.2 对x1边缘复合233.2对x2边缘提取及复合243.2.1 直接对原图x2边缘提取243.2.2 去噪后边缘提取253.2.3 对x2边缘复合26一对X1照片图像增强1.1 直方图增强1.1.1 直方图拉伸增加对比度 为了增强图像,观察x1,我们考虑增加图像的对比度,看是否能使图像更清晰。具体的编程思路是,读入x1图像,运用matlab自带的imadjust函数,对比所得结果,具体程序见附录1.1.1(a),实验结果见图1.1.1(1)。1.1.1(a)结论:由图1.1.1(a)对比发现,左右两边基本没有区别,基本没有图像增强效果。我们考虑到运用imadjust函数可以得到原图的负片,即将原灰度图白色的地方变成黑色,黑色的地方变成白色,这种效果可能使X1图像自身对比更鲜明,起到图像增强的作用,具体程序见附录1.1.1(2),实验结果见图1.1.1(b)。1.1.1(b) 结论:由图1.1.1(b)的对比发现,从人眼的视觉角度来看,右图比起左图,在感官上比较舒适,似乎有点图像增强的意思,但总体上,效果还不是很好。1.1.2直方图均衡 在第三章的作业习题里,我们已经接触过直方图均衡,它是一种利用图像直方图对对比度进行调整的方法,也是图像增强常用的方法之一。 我们的编程思路是运用matlab中自带的一些函数对原图进行处理,具体程序见附录1.1.2,实验结果见图1.1.2。1.1.2 结论:由图1.1.2的对比,我们可以发现直方图均衡化后的图像整体变亮,图片中部分位置变得清晰一些,部分位置灰度值过高,图像有些发白,没有得到好的图像增强效果,甚至发白部位阻碍医生观察骨骼细节。 原因是因为这种方法对处理的数据不加选择,当原图的直方图有高峰时,经处理后对比度会不自然的过分增强。1.2 伪彩色增强1.2.1等密度分割法对图像中各像元亮度值进行统计,确定其最小值和最大值,确定分割的等级N,计算出分割的间隔再对输入图像的每一个像元进行亮度转换,为像元新值赋色。(1)matlab自带函数grayslice(I,n)(源程序:color1.m)将灰度图X1均匀量化为n个等级,然后利用jet映射将其转化为伪彩色图像x。程序见附录1.2.1(1)1.2.1(a) N=81.2.1(b) N=64 1.2.1(c) n=256分析:由上面三组图像可知,当分割等级越大,所呈现的效果越好。(2)自编程序 (源程序:color2.m)将图像X1按灰度分为11份R=0:256 间隔为256/10G=0到256 再到0 间隔为256/5B=256:0 间隔为256/101.2.1(d)分析:从上面各图的分析我们知道n越大,效果越好。但对比利用grayslice(I,n)函数n=8时的效果,自编程序n=11时的效果没有很好,可能是颜色映射不恰当,导致效果不好。1.2.2多波段合成伪彩色显示 (源程序:color.m)对同一幅图像在不同波长获得多幅图像,可采用多种变换方式,最后合成R、G、B图像进而形成为彩色图像显示。在这里使用分段线性映射法。实验结果见1.2.2.程序见附录1.2.2.1.2.2分析:对比利用密度分割法产生的效果,多波段合成伪彩色显示法的效果不是很好,反而将图像变得更加模糊。结论:通过对图像进行伪彩色处理,主要得出以下两点。(1)对图像进行伪彩色处理时,不同的伪彩色处理方法有不同的效果,要选择合适的处理方法。(2)不同的颜色映射法也有不同的效果,根据图像选择合适的颜色映射法。2 对x2照片图像增强2.1 滤波 首先我们先分别观察一下X2的在MATLAB中的原始图像和频谱分布情况。因为我们观察到X2是彩色图,所以我们需要利用rgb2gray函数将它转换成灰度图再进行处理。X2的原始图像和频谱分布图如下图2.1所示:2.1 我们观察到X2的灰度图存在较严重的椒盐噪声,其频谱图也存在一个十字叉的亮线,但是围绕中间亮点又有一个矩型噪声。综上,X2存在明显的噪声近似于椒盐噪声,所以我们先采用“广撒网,捞大鱼”的方法进行筛选,尝试使用不同类型的滤波器对X2进行滤波处理,分析对比哪种滤波器的滤波效果最好,然后再选择滤波效果最好的滤波器进行各种参数设置,使其滤波效果最好。2.1.1各种滤波器在这里我们使用了高斯低通滤波器,均值滤波器,中值滤波器,自适应滤波器,二维统计顺序滤波器,二阶Butterworth滤波器分别对X2图像进行滤波。程序见附录2.1.1各种滤波结果如下图2.1.1所示: 高斯低通滤波 均值滤波 中值滤波 自适应滤波 二维统计顺序滤波 二阶butterworth滤波 2.1.1结论:对比分析后我们发现,中值滤波对于去除噪声效果最好,第二好的是二阶butterworth滤波,而自适应滤波去除效果则较差。所以接下来我们针对中值滤波器和二阶butterworth滤波器进行详细的参数设置,通过多次试验使其达到最好的效果。2.1.2 中值滤波因为观察X2的原始图像和频谱分布图,我们发现X2存在很明显的椒盐噪声,所以我们可以预见到使用中值滤波对X2进行处理后会有明显的改善。基本思路是先读入待处理图像,因为我们到观察X2是彩色图,所以我们需要利用rgb2gray函数先将它转换成灰度图,再利用中值滤波器对其进行平滑滤波,分别使用3*3窗口,5*5窗口,7*7窗口,11*11窗口进行处理,分析比较处理结果。程序见附录2.1.2X2的处理结果如下图2.1.2所示: 3*3窗口中值滤波 7*7窗口中值滤波 11*11窗口中值滤波 13*13窗口中值滤波2.1.2结论:正如预想的那样,中值滤波对X2会产生明显的效果。中值滤波对于去除椒盐噪声效果明显,是因为椒盐噪声只在画面上的部分点随机出现,而中值滤波根据数据排序,将未被污染的点代替噪声点的值的概率较大,所以抑制效果好。但是当我们选择的窗口较小时噪声依然比较严重,当我们把窗口加到11*11时只存在少数噪声,当我们把窗口加到13*13时,噪声基本消除,虽然一些细节也模糊了,但是效果最好。2.1.3 二阶butterworth滤波基本步骤与中值滤波相似,这里不再赘述。但是,我们认为二阶butterworth滤波应该达不到中值滤波的效果。另外,二阶butterworth滤波需要修改与原点的距离d0,来实现最优效果,下图2.1.3分别展示了在d0=10,12,14,16,18,20时的情况。程序见附录2.1.3 d0=10 d0=12 d0=14 d0=16 d0=18 d0=202.1.3 结论:显而易见,无论我们怎么修改参数d0,其结果始终没有中值滤波好。同时,我们发现就X2图像而言,当d0=14左右时,二阶butterworth滤波器的效果是最好的。因此,为了达到对X2图像最好的处理效果,我们选择了中值滤波器进行滤波处理。2.2 直方图增强由于在之前1.1的(1)中,我们发现通过直方图拉伸来增加对比度的方法几乎没有任何作用,所以对X2不再重复。因为x2明显存在噪声,所以我们对2.1中去噪后的图进行直方图均衡化处理,具体程序见附录2.2,实验结果见图2.2。2.2 结论:观察并对比图2.2,我们发现,中值滤波去噪后的图像再做均衡化处理,泛白情况非常严重,严重损害了图像质量,所以直方图均衡的方法不能用于x2图像的增强。3 边缘提取及增强 图像的边缘部分对应图像上灰度变化剧烈的区域。图像的边缘提取有多种方法,可以采用一阶微分算子,如sobel算子,Roberts算子,Prewitt算子,Canny算子。也可以采用二阶微分算子,如Laplacian算子。各种算子都有对应的优缺点,Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,但Sobel算子对边缘定位不是很准确,图像的边缘不止一个像素。Roberts算子检测方法对具有陡峭的低噪声的图像处理效果较好,但是利用roberts算子提取边缘的结果是边缘比较粗,因此边缘的定位不是很准确。Prewitt算子检测方法对灰度渐变和噪声较多的图像处理效果较好。但边缘较宽,而且间断点多。Laplacian算子法对噪声比较敏感,所以很少用该算子检测边缘,而是用来判断边缘像素视为与图像的明区还是暗区。Canny方法不容易受噪声干扰,能够检测到真正的弱边缘。优点在于,使用两种不同的阈值分别检测强边缘和弱边缘,并且当弱边缘和强边缘相连时,才将弱边缘包含在输出图像,它是目前边缘检测最常用的算法,效果也是最理想的。3.1 对x1边缘提取及复合 3.1.1 对x1边缘提取根据上述对边缘提取的分析,我们编写了各个边缘提取的程序,希望找到一个最好的边缘提取函数,进而得到最好的图像增强效果。X1的具体程序见附录3.1.1,实验结果见图3.1.1。 3.1.1观察对比图3.1.1,可以很明显地发现Canny方法提取的边缘效果最好,这个结果符合我们之前的分析,所以接下来的复合边缘,我们都采取Canny方法。3.1.2 对x1边缘复合 因为对x1做直方图均衡化后,部分图像由于对比度过高而泛白,不但没有增强图像,还损害了图像的部分细节,所以复合时不再考虑叠加均衡化后的图,所以我们的思路是将canny边缘提取图叠加在原图上,进行边缘复合。具体程序见附录3.1.2,实验结果见图3.1.2。3.1.2 结论:观察并分析3.1.2,利用canny算子提取边缘后的图像与原图进行叠加,复合后的图像轮廓更加清晰,对比度明显增强,达到了图像增强的效果。但是提取的边缘过多,很多细节被模糊了,总体效果不是很理想,这是我们需要解决的问题,但是目前还没找到更好的办法。3.2对x2边缘提取及复合 3.2.1 直接对原图x2边缘提取 因为x2是彩色图,所以要对其进行灰度转化,其他操作思路同x1。x2的具体程序见附录3.2.1,实验结果见图3.2.1。3.2.1 结论:观察对比图3.2.1,同图3.1.1一样,也可以很明显地发现Canny方法提取的边缘效果最好,所以接下来的复合边缘,我们也就只采取Canny方法进行图像增强。此外,我们还发现,在提取边缘的同时,我们把噪声也当边缘提取了。这是因为原图X2有明显的噪声存在,我们在提取边缘时,是提取图像上灰度变化剧烈的区域,自然就会把噪声也提取出来,这是我们不希望看到的,所以在提取边缘之前需要对输入图像X2进行消除噪声的处理。3.2.2 去噪后边缘提取具体的思路是:前面我们已经对x2滤波进行去噪处理,发现13*13的中值滤波器具有最好的效果,而且canny算子具有最好的边缘提取效果。所以我们将采用该尺寸的中值滤波器,对滤波后所得的图,进行canny边缘提取。具体程序见附录3.2.2,实验结果见图3.2.2。3.2.2观察对比图3.2.2,很明显,去噪后得到的边缘图就是我们所需要的。3.2.3 对x2边缘复合因为直方图均衡不仅不能增强x2,反而由于对比度过高,损害了图像细节,所以复合时,不再考虑叠加直方均衡图。在前面,我们成功的得到了中值滤波去噪后的图和去噪后的边缘提取图,接下来我们的思路是将这两幅图叠加,来增强图像。具体程序见附录3.2.3,实验结果见图3.2.3。3.2.3 结论:观察对比图3.2.3,利用canny算子提取边缘后的图像与原图进行叠加,复合后的图像轮廓更加清晰,很多原来模糊的细节可被肉眼直接观察,比如复合后的图像中指甲也清晰可见。但是手腕关节处的骨骼由于过多的细节提取被掩盖。不过总体效果比较理想,图像的对比度明显增强。作业合作说明 我们三个(厉宏兰,徐节速,李倩)都来自南京天光所,但是之前从未接触过MATLAB编程以及图像处理的相关内容,所以此次作业我们选择了一起合作探讨,相互学习。徐节速同学主要做了直方图增强以及边缘函数提取复合,李倩同学主要做了图像的伪彩色增强,厉宏兰同学主要做了图像滤波去噪工作。最后一起讨论了处理结果,利用了各自的最优算法对图像进行了最后的综合处理。附录:1.1.1(1)f=imread(C:UsersAdministratorDesktopX1.tif);f1=imadjust(f,stretchlim(f),);subplot(1,2,1) ;imshow(f)title(原始图像)subplot(1,2,2);imshow(f1)title(增加对比度后图像)1.1.1(2)f=imread(C:UsersAdministratorDesktopX1.tif);f1=imadjust(f,0,1,1,0);subplot(1,2,1) ;imshow(f)title(原始图像)subplot(1,2,2);imshow(f1)title(负片)1.1.2f=imread(C:UsersAdministratorDesktopX1.tif);subplot(2,2,1),imshow(f);title(原图像);subplot(2,2,2),imhist(f);title(原图像直方图)subplot(2,2,3),f1=histeq(f); imshow(f1);title(均衡化后图像)subplot(2,2,4),imhist(f1);title(均衡化后图像直方图)1.2.1(1)I = imread(C:UserslenovoDesktop综合作业2_V3X光图像X1.tif);X=grayslice(I,64);figure;imshow(X);title(索引图像); figure;imshow(X,jet(64);title(matlab自带程序处理图像);1.2.1 (2)I = imread(C:UserslenovoDesktop综合作业2_V3X光图像X1.tif);figure;imshow(I);title(原始图像); m,n=size(I);Imax=max(max(I);Imin=min(min(I);a=(Imax-Imin)/10;for i=1:m for j=1:n if Imin=I(i,j)&I(i,j)=(Imin+a) R(i,j)=0; G(i,j)=0; B(i,j)=256; else if (Imin+a)I(i,j)&I(i,j)=(Imin+2*a) R(i,j)=25; G(i,j)=50; B(i,j)=225; else if (Imin+2*a)I(i,j)&I(i,j)=(Imin+3*a) R(i,j)=50; G(i,j)=100; B(i,j)=200; else if (Imin+3*a)I(i,j)&I(i,j)=(Imin+4*a) R(i,j)=75; G(i,j)=150; B(i,j)=175; else if (Imin+4*a)I(i,j)&I(i,j)=(Imin+5*a) R(i,j)=100; G(i,j)=200; B(i,j)=150; else if (Imin+5*a)I(i,j)&I(i,j)=(Imin+6*a) R(i,j)=125; G(i,j)=256; B(i,j)=125; else if (Imin+6*a)I(i,j)&I(i,j)=(Imin+7*a) R(i,j)=150; G(i,j)=200; B(i,j)=100; else if (Imin+7*a)I(i,j)&I(i,j)=(Imin+8*a) R(i,j)=175; G(i,j)=150; B(i,j)=75; else if (Imin+8*a)I(i,j)&I(i,j)=(Imin+9*a) R(i,j)=200; G(i,j)=100; B(i,j)=50; else if (Imin+9*a)I(i,j)&I(i,j)=(Imin+10*a) R(i,j)=225; G(i,j)=50; B(i,j)=25; else R(i,j)=256; G(i,j)=0; B(i,j)=0; end end end end end end end end end end endendfor i=1:m for j=1:n x1(i,j,1)=R(i,j); x1(i,j,2)=G(i,j); x1(i,j,3)=B(i,j); endendx1=x1/256;figure;imshow(x1);title(密度分割法); 1.2.2I=imread(C:UserslenovoDesktop综合作业2_V3X光图像X1.tif); figure;imshow(I);title(原始图像); I=double(I);m,n=size(I);L=256;for i=1:m for j=1:n if I(i,j)L/4 R(i,j)=0; G(i,j)=4*I(i,j); B(i,j)=L; else if I(i,j)=L/2 R(i,j)=0; G(i,j)=L; B(i,j)=-4*I(i,j)+2*L; else if I(i,j)=3*L/4 R(i,j)=4*I(i,j)-2*L; G(i,j)=L; B(i,j)=0; else R(i,j)=L; G(i,j)=-4*I(i,j)+4*L; B(i,j)=0; end end end endendfor i=1:m for j=1:n x1(i,j,1)=R(i,j); x1(i,j,2)=G(i,j); x1(i,j,3)=B(i,j); endendx1=x1/256;figure;imshow(x1);title(多波段合成为彩色显示); 2.1.1I1=imread(D:MATLAB图像处理程序X光图像X2.tif);I2=rgb2gray(I1);figure;imshow(I2);title(X2灰图像)%显示原始图像G=fspecial(gaussian,12 12,1); %这里的gaussian滤波窗口可选任意尺寸和标准差A=fspecial(average,12); %这里的average滤波窗口可选任意尺寸f1=filter2(G,I2);%使用G矩阵中的gaussian滤波器对图像滤波f2=filter2(A,I2);%使用A矩阵中的average滤波器对图像滤波f3=medfilt2(I2,12 12);%使用中值滤波器对图像滤波f4=wiener2(I2,12 12);%使用自适应滤波器对图像滤波f5=ordfilt2(I2,5,ones(12,12);% 使用二维统计顺序过滤figure;imshow(f1,);title(高斯低通滤波器处理结果);figure;imshow(f2,);title(均值滤波器处理结果);figure;imshow(f3,);title(中值滤波器处理结果);figure;imshow(f4,);title(自适应滤波器处理结果);figure;imshow(f5,);title(二维统计顺序滤波处理结果);J=double(I2); f=fft2(J); g=fftshift(f); M,N=size(f); n=2;d0=16; n1=floor(M/2);n2=floor(N/2); for i=1:M; for j=1:N; d=sqrt(i-n1)2+(j-n2)2); h=1/(1+0.414*(d/d0)(2*n); g(i,j)=h*g(i,j); end end g=ifftshift(g); f6=uint8(real(ifft2(g);figure;imshow(f6) title(二阶Butterworth滤波图像)2.1.2I1=imread(D:MATLAB图像处理程序X光图像X2.tif);I2=rgb2gray(I1);figure;imshow(I2);title(X2灰图像)%显示原始图像 filtered1=medfilt2(I2,3 3);%使用3*3滤波窗口 figure;imshow(filtered1); title(3x3窗的中值滤波图像) filtered2=medfilt2(I2,7 7);%使用7*7滤波窗口 figure;imshow(filtered2); title(7x7窗的中值滤波图像) filtered2=medfilt2(I2,11 11);%使用11*11滤波窗口 figure;imshow(filtered2); title(11x11窗的中值滤波图像) filtered2=medfilt2(I2,13 13);%使用13*13滤波窗口 figure;imshow(filtered2); title(13x13窗的中值滤波图像)2.1.3I1=imread(D:MATLAB图像处理程序X光图像X2.tif);I2=rgb2gray(I1); J=double(I2); f=fft2(J); g=fftshift(f); M,N=size(f); n=2;d0=16;%这里的d0可任意修改 n1=floor(M/2);n2=floor(N/2); for i=1:M; for j=1:N; d=sqrt(i-n1)2+(j-n2)2); h=1/(1+0.414*(d/d0)(2*n); g(i,j)=h*g(i,j); end end g=ifftshift(g); g=uint8(real(ifft2(g);figure;imshow(g) title(二阶Butterworth滤波图像)2.2clear;clc;I=imread( C:UsersAdministratorDesktopx2.tif);I=rgb2gray(I);figure;subplot(1,2,1),imshow(I);title(原图); subplot(1,2,2),imhist(I);title(原图直方图)filtered2=medfilt2(I,13 13);%使用13*13滤波窗口 figure; subplot(221),imshow(filtered2); title(13x13窗的中值滤波去噪后的图像) subplot(2,2,2),imhist(filtered2);title(去噪后图像直方图)subplot(2,2,3),f1=histeq(filtered2); imshow(f1);title(去噪图像均衡化后图像)subplot(2,2,4),imhist(f1);title(去噪图像均衡化后图像直方图)3.1.1clear;clc;I=imread( C:UsersAdministratorDesktopX1.tif);subplot(321),imshow(I,);title(原始图像);% sobelsobelBW=edge(I,sobel);subplot(322),imshow(sobelBW);title(Sobel Edge);% robertsrobertsBW=edge(I,roberts);subplot(323),imshow(robertsBW);title(Roberts Edge);% prewittprewittBW=edge(I,prewitt);subplot(324),imshow(prewittBW);title(Prewitt Edge);%lowlogBW=edge(I,log);subplot(325),imshow(logBW);title(Laplasian of Gaussian Edge);%cannycannyBW=edge(I,canny);subplot(326),imshow(cannyBW);title(Canny Edge);3.1.2clear;clc;I=imread( C:UsersAdministratorDesktopX1.tif);subplot(2,2,1), imshow(I); title(原图);% cannyBW1=edge(I,canny);subplot(2,2,2), imshow(BW1); title(原图canny边缘提取);% canny augmentedcannyBW1=im2uint8(BW1)+I;subplot(2,2,3),imshow(cannyBW1);title(原图与canny边缘提取图复合);3.2.1clear;clc;I=imread( C:UsersAdministratorDesktopx2.tif);I=rgb2gray(I);subplot(321),imshow(I,);title(原始图像);% sobelsobelBW=edge(I,sobel);subplot(322),imshow(sobelBW);title(Sobel Edge);% robertsrobertsBW=edge(I,roberts);subplot(323),imshow(robertsBW);title(Roberts Edge);%

温馨提示

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

评论

0/150

提交评论