数字图像处理综合作业2.docx

上传人:b****5 文档编号:8341190 上传时间:2023-01-30 格式:DOCX 页数:34 大小:3.49MB
下载 相关 举报
数字图像处理综合作业2.docx_第1页
第1页 / 共34页
数字图像处理综合作业2.docx_第2页
第2页 / 共34页
数字图像处理综合作业2.docx_第3页
第3页 / 共34页
数字图像处理综合作业2.docx_第4页
第4页 / 共34页
数字图像处理综合作业2.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

数字图像处理综合作业2.docx

《数字图像处理综合作业2.docx》由会员分享,可在线阅读,更多相关《数字图像处理综合作业2.docx(34页珍藏版)》请在冰豆网上搜索。

数字图像处理综合作业2.docx

数字图像处理综合作业2

综合作业二

(春季学期)

一.对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=8

1.2.1(b)N=64

1.2.1(c)n=256

分析:

由上面三组图像可知,当分割等级越大,所呈现的效果越好。

(2)自编程序(源程序:

color2.m)

将图像X1按灰度分为11份

R=0:

256间隔为256/10

G=0到256再到0间隔为256/5

B=256:

0间隔为256/10

1.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)不同的颜色映射法也有不同的效果,根据图像选择合适的颜色映射法。

 

二.对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.2

 

X2的处理结果如下图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=10d0=12

d0=14d0=16

d0=18d0=20

2.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图像的增强。

三.边缘提取与增强

图像的边缘部分对应图像上灰度变化剧烈的区域。

图像的边缘提取有多种方法,可以采用一阶微分算子,如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算子提取边缘后的图像与原图进行叠加,复合后的图像轮廓更加清晰,很多原来模糊的细节可被肉眼直接观察,比如复合后的图像中指甲也清晰可见。

但是手腕关节处的骨骼由于过多的细节提取被掩盖。

不过总体效果比较理想,图像的对比度明显增强。

作业合作说明

我们三个(厉宏兰,徐节速,李倩)都来自XX天光所,但是之前从未接触过MATLAB编程以与图像处理的相关内容,所以此次作业我们选择了一起合作探讨,相互学习。

徐节速同学主要做了直方图增强以与边缘函数提取复合,李倩同学主要做了图像的伪彩色增强,厉宏兰同学主要做了图像滤波去噪工作。

最后一起讨论了处理结果,利用了各自的最优算法对图像进行了最后的综合处理。

 

附录:

1.1.1

(1)

f=imread('C:

\Users\Administrator\Desktop\X1.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:

\Users\Administrator\Desktop\X1.tif');

f1=imadjust(f,[0,1],[1,0]);

subplot(1,2,1);imshow(f)

title('原始图像')

subplot(1,2,2);imshow(f1)

title('负片')

1.1.2

f=imread('C:

\Users\Administrator\Desktop\X1.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:

\Users\lenovo\Desktop\综合作业2_V3\X光图像\X1.tif');

X=grayslice(I,64);

figure;imshow(X);title('索引图像');

figure;imshow(X,jet(64));title('matlab自带程序处理图像');

1.2.1

(2)

I=imread('C:

\Users\lenovo\Desktop\综合作业2_V3\X光图像\X1.tif');

figure;imshow(I);title('原始图像');

[m,n]=size(I);

Imax=max(max(I));

Imin=min(min(I));

a=(Imax-Imin)/10;

fori=1:

m

forj=1:

n

ifImin<=I(i,j)&&I(i,j)<=(Imin+a)

R(i,j)=0;

G(i,j)=0;

B(i,j)=256;

elseif(Imin+a)

R(i,j)=25;

G(i,j)=50;

B(i,j)=225;

elseif(Imin+2*a)

R(i,j)=50;

G(i,j)=100;

B(i,j)=200;

elseif(Imin+3*a)

R(i,j)=75;

G(i,j)=150;

B(i,j)=175;

elseif(Imin+4*a)

R(i,j)=100;

G(i,j)=200;

B(i,j)=150;

elseif(Imin+5*a)

R(i,j)=125;

G(i,j)=256;

B(i,j)=125;

elseif(Imin+6*a)

R(i,j)=150;

G(i,j)=200;

B(i,j)=100;

elseif(Imin+7*a)

R(i,j)=175;

G(i,j)=150;

B(i,j)=75;

elseif(Imin+8*a)

R(i,j)=200;

G(i,j)=100;

B(i,j)=50;

elseif(Imin+9*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

end

end

fori=1:

m

forj=1:

n

x1(i,j,1)=R(i,j);

x1(i,j,2)=G(i,j);

x1(i,j,3)=B(i,j);

end

end

x1=x1/256;

figure;

imshow(x1);title('密度分割法');

1.2.2

I=imread('C:

\Users\lenovo\Desktop\综合作业2_V3\X光图像\X1.tif');

figure;imshow(I);title('原始图像');

I=double(I);

[m,n]=size(I);

L=256;

fori=1:

m

forj=1:

n

ifI(i,j)

R(i,j)=0;

G(i,j)=4*I(i,j);

B(i,j)=L;

elseifI(i,j)<=L/2

R(i,j)=0;

G(i,j)=L;

B(i,j)=-4*I(i,j)+2*L;

elseifI(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

end

end

fori=1:

m

forj=1:

n

x1(i,j,1)=R(i,j);

x1(i,j,2)=G(i,j);

x1(i,j,3)=B(i,j);

end

end

x1=x1/256;

figure;

imshow(x1);title('多波段合成为彩色显示');

2.1.1

I1=imread('D:

\MATLAB图像处理程序\X光图像\X2.tif');

I2=rgb2gray(I1);

figure;imshow(I2);

title('X2灰图像')%显示原始图像

G=fspecial('gaussian',[1212],1);%这里的gaussian滤波窗口可选任意尺寸和标准差

A=fspecial('average',12);%这里的average滤波窗口可选任意尺寸

f1=filter2(G,I2);%使用G矩阵中的gaussian滤波器对图像滤波

f2=filter2(A,I2);%使用A矩阵中的average滤波器对图像滤波

f3=medfilt2(I2,[1212]);%使用中值滤波器对图像滤波

f4=wiener2(I2,[1212]);%使用自适应滤波器对图像滤波

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);

fori=1:

M;

forj=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.2

I1=imread('D:

\MATLAB图像处理程序\X光图像\X2.tif');

I2=rgb2gray(I1);

figure;imshow(I2);

title('X2灰图像')%显示原始图像

filtered1=medfilt2(I2,[33]);%使用3*3滤波窗口

figure;imshow(filtered1);

title('3x3窗的中值滤波图像')

filtered2=medfilt2(I2,[77]);%使用7*7滤波窗口

figure;imshow(filtered2);

title('7x7窗的中值滤波图像')

filtered2=medfilt2(I2,[1111]);%使用11*11滤波窗口

figure;imshow(filtered2);

title('11x11窗的中值滤波图像')

filtered2=medfilt2(I2,[1313]);%使用13*13滤波窗口

figure;imshow(filtered2);

title('13x13窗的中值滤波图像')

2.1.3

I1=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);

fori=1:

M;

forj=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.2

clear;clc;

I=imread('C:

\Users\Administrator\Desktop\x2.tif');

I=rgb2gray(I);

figure;

subplot(1,2,1),imshow(I);

title('原图');

subplot(1,2,2),imhist(I);

title('原图直方图')

filtered2=medfilt2(I,[1313]);%使用13*13滤波窗口

figure;

subplot(221),imshow(filtered2);

title('13x13窗的中值滤波去噪后的图像')

subplot(2,2,2),imhist(filtered2);

title('去噪后图像直方图')

subplot(2,2,3),f1=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1