数字图像处理第六次作业.docx

上传人:b****1 文档编号:13477619 上传时间:2023-06-14 格式:DOCX 页数:18 大小:435.32KB
下载 相关 举报
数字图像处理第六次作业.docx_第1页
第1页 / 共18页
数字图像处理第六次作业.docx_第2页
第2页 / 共18页
数字图像处理第六次作业.docx_第3页
第3页 / 共18页
数字图像处理第六次作业.docx_第4页
第4页 / 共18页
数字图像处理第六次作业.docx_第5页
第5页 / 共18页
数字图像处理第六次作业.docx_第6页
第6页 / 共18页
数字图像处理第六次作业.docx_第7页
第7页 / 共18页
数字图像处理第六次作业.docx_第8页
第8页 / 共18页
数字图像处理第六次作业.docx_第9页
第9页 / 共18页
数字图像处理第六次作业.docx_第10页
第10页 / 共18页
数字图像处理第六次作业.docx_第11页
第11页 / 共18页
数字图像处理第六次作业.docx_第12页
第12页 / 共18页
数字图像处理第六次作业.docx_第13页
第13页 / 共18页
数字图像处理第六次作业.docx_第14页
第14页 / 共18页
数字图像处理第六次作业.docx_第15页
第15页 / 共18页
数字图像处理第六次作业.docx_第16页
第16页 / 共18页
数字图像处理第六次作业.docx_第17页
第17页 / 共18页
数字图像处理第六次作业.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理第六次作业.docx

《数字图像处理第六次作业.docx》由会员分享,可在线阅读,更多相关《数字图像处理第六次作业.docx(18页珍藏版)》请在冰点文库上搜索。

数字图像处理第六次作业.docx

数字图像处理第六次作业

数字图像处理第六次作业

摘要

本次报告主要记录第六次作业中的各项任务完成情况。

本次作业以Matlab2013为平台,结合matlab函数编程实现对所给图像文件的相关处理:

1.在测试图像上产生高斯噪声lena图-需能指定均值和方差;并用滤波器(自选)恢复图像:

2.实现下边要求:

(a)实现模糊滤波器如方程Eq.(5.6-11);(b)模糊lena图像:

45度方向,1=1:

(c)在模糊的lena图像中增加高斯噪声,均值;0,方差=10pixels以产生退化图像;(d)分别利用方程Eq.(5.8-6)和(5.9-4),恢复图像。

以上任务完成后均得到了预期的结果。

1.在测试图像上产生高斯噪声lena图-需能指定均值和方差:

并用滤波器(自选)恢复图像:

(1)实验原理与方法

图像复原处理是建立在图像退化的数学模型基础上的,这个退化数学模型能够反映图像退化的原因。

图像的退化过程可以理解为施加于原图像上的运算和噪声两者联合作用的结果,图像退化模型如图1所示,可以表示为:

g(x,y)=H[f(x,y)]+n(x,y)=f(x,y)*h(x,y)+n(x,y)

图1图像退化模型

高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。

一个高斯随机变量z的PDF可表示为:

P(Z)=/

,2猿2(?

其中Z代表灰度,U是Z的均值,是Z的标准差。

高斯噪声的灰度值多集中在均值附近。

本文采用5X5模板的中值滤波器和高斯滤波器(。

=1.5)

作业四中已经介绍过,中值滤波器是使用一个像素邻域中灰度级的中值来替代该像素值,即,f(x,y)=median!

高斯滤波是一种根据高斯函数的形状来选择模板权(SJ用5孙

值的线性平滑滤波方法,具体操作是:

用一个模板(或称卷积)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

利用matlab中imnoise函数加入高斯噪声:

g=imnoise(f,type,parameters)

调用格式:

g=imnoise(I,type)

g=imnoise(I,type,parameters)

参数Type对应的噪声类型如下:

'gaussian'高斯白噪声

'localvar'0均值白噪声

poisson,泊松噪声'salt&pepper1盐椒噪声

'speckle'乘性噪声

滤波程序同作业四

(2)处理结果

 

原始图像lena.bmp

加入gaussian噪声后的lena.bmp(u=0.5fs2=0.01)

 

原始图像lena.bmp

力口入gaussian噪声后的lena.bmp(u=O,s2=0.01)

原始图像lena.bmp

加入gaussian噪声后的lena.bmp(ii=0.5,s2=0.1)

 

lena力口入gaussianO^声后(u=0.5,s2=0.01).bmp

原始图像lena.bmp

中值滤波(5x5)

高斯滤波5x5

 

 

(3)结果分析

通过imnoise函数产生了被均值和方差可选的高斯噪声污染的图像。

当高斯噪声均值不变为0时,随着方差增加,图像噪声越严重:

当高斯噪声方差不变时,均值会影响到整个图像的灰度值,使整个图像变亮。

与理论上均值和方差对图像的影响一致。

分别使用高斯滤波器和中值滤波器对加噪图像进行恢复。

两种方法在一定程度上都可以降低噪声。

高斯滤波器降低噪声的同时保存的图像细行更丰富,亮度比原噪声图像和中值滤波后图像暗更接近原始图像,中值滤波后图像亮度基本与原噪声图像相同。

2.实现下边要求:

(a)实现模糊滤波器如方程Eq.(5.6-11).

(b)模糊模na图像:

45度方向,T=l;

(c)在模糊的lena图像中增加高斯噪声,均值二0,方差二10pixels以产生退化图像:

(d)分别利用方程Eq.(5.8-6)和(5.9-4),恢复图像:

H(u9v)=——-——sin[网ua+vb)]产"力)(5.6-11)

7i(ua+vb)

利用上式模糊lena图像:

45度方向,T=L即使a=b=0.1,T=l,对原始用像的模像矩阵做傅里叶变换并移至图像中心得到频域矩阵F,使H与F相乘后反傅里叶变换到空域得到变换后图像。

维纳滤波综合了退化函数和噪声统计特性两个方面进行复原处理,其目标是寻找一个滤

波器,使得复原后图像f(x,y)与原始图像,x,y)的均方误差最小:

E^_f(xfy)-f(x,y^=

min

因此维纳滤波器又称为最小均方误差滤波器,在频率中用下式表达:

F(uy)=[

1

H(uy)\H(u9v)|2+Sn(ufv)/Sf(w,v)

其中G(u,v)是退化图像的傅里叶变换,H(u,v)是退化函数°SQjXpV(〃⑼2为噪

声功率谱,Sf(uy)=\F(uy^为未退化图像的功率谱.

式5.8-6为

人1\H(u9v)\2

F(u9v)=[--―——\]G(uy)H(u,v)\H(uy)[+K

属于维纳滤波

式5.9-4为

八H(Uv)

F(U9V)=[-}一一7]G(uy)

\H(u9v)[+y\P(u9v)[

其中,丫是一个参数,必须对它进行调整以满足k-而『=忖『的条件,属于约束最小二层方滤波

利用以上两式恢复图像的流程与对模糊原始图像的流程相似:

对原始图像的图像矩阵做傅里叶变换并移至图像中心得到频域矩阵F,通过H得到户,使户与F相乘后反傅里叶变换到空域得到变换后图像。

在实现5.9-4时借助matlab工具包以得到更好的效果。

用fspecial和imnoise函数得到45度方向,T=1的模糊lena图像,并在此图像上实现维纳滤波和约束最小二乘方滤波。

1)imfilter

功能:

对任意类型数组或多维图像进行滤波。

用法:

B=imfilter(A,H)

B=imfilter(A,H,optionl,option2,...)

或写做g=imfilter(f,w,filtering_mode,boundary_options,size_options)其中,f为输入图像,W为滤波掩模,g为滤波后图像。

filtering_mode用于指定在波波过程中是使用“相关”还是“卷积”。

boundary.options用于处理边界充零问题,边界的大小由滤波器的大小确定。

2)fspecial

功能:

fspecial函数用于建立预定义的滤波算子。

用法:

h=fspecial(type)h=fspecial(type,para)其中type指定算子的类型,para指定相应的参数。

(2)处理结果

lena.bm限始图像

运动模楣化lena.bmp

 

 

运动模糊化lena.bmp模糊lena.bmp加入高斯噪声(u=0,s2=0.01)

lena运动模糊+高斯噪声

维纳滤波的结果(K=0.06)

 

lena运动模柳+高斯噪声

约束最小二乘滤波的结果

 

 

(3)结果分析

1.按照书上公式编写的模糊函数图像是斜向下45度运动模糊,matlab函数是斜向上45度运动模糊的,公式的程序得到图像棱角比较分明边界比较明显。

2.使用自己编写的函数进行维纳滤波,难点在于寻找令信噪比最大的K值,报告中显示了K=0.06时的滤波结果,从结果看,视觉上的效果并不是很理想,噪声依然很大,要想达到更好的效果可能需要寻找更加合适的K值或者直接使用matlab的deconvreg函数实现。

3.最后采用MATL.UB提供的deconvreg函数进行约束最小二乘方滤波。

从滤波后的结果看,约束最小二乘方滤波得到了比维纳滤波更好的结果,噪声基本消除,图像变得模糊但是平滑。

附录:

参考文献:

[1]RafaelC.Gonzalez.,etal.数字图像处理(第三版),电子工业出版社,2011.

[2]周品.MATLAB数字图像处理北京,清华大学出版社,2012

源代码:

1.imgl.m[产生高斯噪声并用高斯滤波器和中值滤波器滤波]

I=imreadClena.bmp');

figured);

subplot(1,2,1)

imshow(I);

title('原始图像lena.bmp*);

inwrite(I,'原始图像lena.bmp*);

I2=imnoise(I,,gaussian,0.5,0.01);

subplot(1,2,2)

imshow(I2);

title(,加入gaussian噪声后的lena.bmp(u=0.5,s*2=0.01)J;

imwrite(I2,'加入gaussian噪声后的lena.bmp(u=0.5,s*2=0.01).bmp*);

figure

(2);

subplot⑵2,1)

imshow(I);

title('原始图像luna.bmp');

subplot(2,2,2)

imshow(I2);

title('lena加入gaussian噪声后的(u=0.5,s*2=0.01).bmp');

n=5;

a=ones(n,n);

p=size(I2);

xl二double(12);

x2=xl;

fori=l:

p(l)-n+l

forj=l:

p

(2)-n+l

c=xl(i:

i+(n-1),j:

j+(n-l));

e=c(l,:

);

foru=2:

ne=[e,c(u,:

)];

end

mm=median(e);

x2(i+(n-l)/2,j+(n-l)/2)=mm;

end

end

I3=uint8(x2);

subplot(2,2,3)

imshow(I3);

title('中值派波(5x5)();

imwrite(I3,'中值滤波(5x5).bmp*);

[12,map]二imreadCI川入gaussian噪声后的lena.bmp(u=0.5,s*2=0.01).bmp,);

k=1.5;

Img=double(I2);

n=5;

nl=floor((n+l)/2);fori=l:

n

forj=l:

n

b(i,j)=exp(-((i-nl)^2+(j-nl)*2)/(4*k))/(4*pi*k);end

end

Imgl=conv2(Img,b,'same');

d=uint8(Imgl);

subplot(2,2,4);

imshow(d,map);

title('高斯滤波5x5')

2.img2.m[运动模糊+高斯噪声、维纳滤波、约束最小二乘滤波]

I=imread(*lena.bmp');

figured);

subplot(1,2,1)

imshow(I);

title(?

lena.bmp原始图像');

inwrite(I,'lena原始图像.bmp');

f=double(I);

F=fft2(f);

F=fftshift(F);

[M,N]=size(F);

a=0.1;

b=0.1;

T=l;

foru=l:

M

forv=l:

N

H(u,v)=(T/(pi*(u*a+v*b)))*sin(pi*(u*a+v*b))*exp(-sqrt(-1)*pi*(u*a+v*b));G(u,v)=H(u,v)*F(u,v);

end

end

G=ifftshift(G);

g=ifft2(G);

g=256.*g./max(max(g));

g=uint8(real(g));

subplot(1,2,2);

imshow(g);

title。

运动模糊化lena.bmp');

imwrite(g,'lena运动模糊的结果.bmp,);

figure

(2)

subplot(1,2,1);

imshow(g);

title。

运动模糊化lena.bmp');

imwrite(g,'lena运动模糊的结果.bmp');

I2=imnoise(g,'gaussian,0,0,01);

subplot(1,2,2)

imshow(I2);

title(,模糊lena.b【np加入高斯噪声(u=0,s*2=0.01)');

imwrite(12,'模糊lena.bmp/jl入高斯噪声(u=0,s*2=0.01).bmp,);

figure(3)

I=imread(*lena.bmp');

h=fspecial('motion',50,45);

Il=imfilter(I,h,'circular','conv');

I2=imnoise(Il,'gaussian,,0,0.01);

subplot(1,2,1)

imshow(I2);

title('lena运动模糊+高斯噪声');

imwrite(12,'lena运动模糊+高斯噪声.bmp');

gl=double(I2);

Gl=fft2(gl);

Gl=fftshift(Gl);

[M,N]=size(Gl);

a=0.1;

b=0.1;

T=l;

K=0.06;

foru=l:

M

forv=l:

N

Hl(u,v)=(T/(pi*(u*a+v*b)))*sin(pi*(u*a+v*b))*exp(-sqrt(-l)*pi*(u*a+v*b));F(u,v)=l/Hl(u,v)*(abs(Hl(u,v)))*2/((abs(Hl(u,v)))*2+K)*G1(u,v);

end

end

F=ifftshift⑻;

f=ifft2(F);

f=256.*f./max(max(f));

f=uint8(real(f));

subplot(1,2,2)

imshow(f);

titleC维纳滤波的结果(K=0.06),);

imwrite(f,'维纳滋波的结果(K=0.06).bmp');

I二imreadClena.bmp');

h=fspecialCmotion',50,45);

Il=imfilter(I,h,'circular*,'conv');

I2=imnoise(Il,'gaussian*,0,0.01);

figure(4);

subplot(1,2,1)

imshow(I2);

title。

lena运动模糊+高斯噪声');

imwrite(I2,*len&m丁-高.斯噪声.bmp');

V=0.0001;

NoisePower=V*prod(size(I));

[g,LAGRA]=deconvreg(11,h,NoisePower);

subplot(1,2,2)

imshow(g);

titleC约束最小二乘/波的姑果');

imwrite(g,"约束最小二乘滤波的结果.bmp');

(注:

可编辑下载,若有不当之处,请指正,谢谢!

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

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2