37 丁园图像退化与复原的系统设计和边缘检测.docx
《37 丁园图像退化与复原的系统设计和边缘检测.docx》由会员分享,可在线阅读,更多相关《37 丁园图像退化与复原的系统设计和边缘检测.docx(21页珍藏版)》请在冰豆网上搜索。
![37 丁园图像退化与复原的系统设计和边缘检测.docx](https://file1.bdocx.com/fileroot1/2022-10/24/579bf82f-3df2-4636-b985-a104a22a932d/579bf82f-3df2-4636-b985-a104a22a932d1.gif)
37丁园图像退化与复原的系统设计和边缘检测
课程设计报告
课程名称:
图形图像处理
学期:
2018-2018学年第2学期
学时学分:
32学分2学时
专业班级:
信科1101班
学 号:
110320017
姓 名:
丁园
指导老师:
陈荣元
提交日期:
2018年6月21日
目录
一、数字图像退化与复原系统设计···································2
1、实验内容···························································2
2、实验原理···························································2
3、具体实验过程及结果············································5
二、边缘检测······························································12
1、实验内容···························································12
2、实验原理···························································12
3、具体实验过程及结果············································13
三、实验总结与体会·····················································18
参考文献····································································19
一、数字图像退化与复原系统设计
1、实验内容
<1)设计图形用户界面,能对图像文件<2)数字图像的统计信息功能:
包括图像的行数和列数,附加信息,直方图的统计及绘制等;
<3)图像退化与复原
a.能对图像加入各种噪声,生成退化图像;
b.给定图像,能估计噪声参数和噪声类型;
c.并通过几种滤波算法<维纳滤波,最小二乘方滤波)实现去噪并显示结果。
比较去噪效果。
2、实验原理
<1)图像的退化
数字图像在获取过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、成像过程的相对运动、环境随机噪声等原因,图像会产生一定程度的退化。
<2)图像的复原
图像复原是利用图像退化现象的某种先验知识,建立退化现象的数学模型,再根据模型进行反向的推演运算,以恢复原来的景物图像。
因而图像复原可以理解为图像降质过程的反向过程。
<3)估计噪声参数和噪声类型
噪声的类型可以通过设备来确定,也可以从图像信息中提取,从图像中提取一个平滑的子图像,画出直方图,分辨噪声类型。
通过传感器的合成像设备技术参数来估计噪声参数。
<4)图像降质的数学模型
图像复原处理的关键问题在于建立退化模型。
输入图像f(x,y>经过某个退化系统后输出的是一幅退化的图像。
为了讨论方便,把噪声引起的退化即噪声对图像的影响一般作为加性噪声考虑。
原始图像f(x,y>经过一个退化算子或退化系统H(x,y>的作用,再和噪声n(x,y>进行叠加,形成退化后的图像g(x,y>。
图1表示退化过程的输入和输出关系,其中H(x,y>概括了退化系统的物理过程,就是要寻找的退化数学模型。
图1图像的退化模型
数字图像的图像恢复问题可以看作是:
根据退化图像g(x,y>和退化算子H(x,y>的形式,沿着反向过程去求解原始图像f(x,y>。
图像退化的过程可以用数学表达式写成如下形式:
g(x,y>=H[f(x,y>]+n(x,y>(1>
在这里,n(x,y>是一种统计性质的信息。
在实际应用中,往往假设噪声是白噪声,即它的频谱密度为常熟,并且与图像不相关。
在对退化系统进行了线性系统和空间不变系统的近似之后,连续函数的退化模型在空域中可以写成:
g(x,y>=f(x,y>*h(x,y>+n(x,y>(2>
在频域中可以写成:
G(u,v>=F(u,v>H(u,v>+N(u,v>(3>
其中,G(u,v>、F(u,v>、N(u,v>分别是退化图像g(x,y>、原图像f(x,y>、噪声信号n(x,y>的傅立叶变换;H(u,v>是系统的点冲击响应函数h(x,y>的傅立叶变换,称为系统在频率域上的传递函数。
可见,图像复原实际上就是已知g(x,y>求f(x,y>的问题或已知G(u,v>求F(u,v>的问题,它们的不同之处在于一个是空域,一个是频域。
<5)维纳滤波
维纳滤波是最小二乘类约束复原的一种。
在最小二乘类约束复原中,要设法寻找一个最有估计,使得形式为的函数最小化。
求这类问题的最小化,常采用拉格朗日乘子算法。
也就是说,要寻找一个,使得准则函数
(10>
为最小。
求解得到
(11>
式中,。
如果用图像f和噪声的相关矩阵Rf和Rn表示Q,就可以得到维纳滤波复原方法。
具体维纳滤波复原方法的原理请参考相关图书。
<6)比较维纳滤波与最小二乘方滤波的去噪效果
当图像只存在噪声复原是,需要用不同的空间滤波,不同的滤波对不同的噪声去除有不同的效果,需要比较各均值滤波和统计滤波来来分析其适用场景,找到各种噪声去除的最好滤波器。
不同的滤波其都是通过噪声与像素的融合来去除噪声,由于融合的方法不同,其去噪结果也不同,在图片上显示的内容也不一样,可以比较去噪后的图片,来确定不同滤波器的好坏。
3、具体实验过程及结果
<3)加入噪声,生成退化图像;
a.加入噪声生成退化图像
I=imread('lena.jpg'>。
%读取Lena.jsp图像
imshow(I>。
%显示
如图1:
图1
加入高斯模糊噪声生成退化或降质图像并显示,如图2:
图2
b.估计给定图像的噪声类型和参数
实现代码:
clc
clear
I=imread('C:
\tu\camana.jpg'>。
[m,n]=size(I>。
K1=imnoise(I,'gaussian',0.02>。
subplot(2,3,1>,imshow(K1>。
K2=imnoise(I,'salt&pepper',0.02>。
subplot(2,3,2>,imshow(K2>。
K3=imnoise(I,'speckle',0.02>。
subplot(2,3,3>,imshow(K3>。
GP=zeros(1,256>。
K1=double(K1>。
fori=1:
254
GP1(i>=0。
GP2(i>=0。
GP3(i>=0。
foru=1:
m
forv=1:
n
ifK1(u,v>==i。
GP1(i>=GP1(i>+1。
end
ifK2(u,v>==i。
GP2(i>=GP2(i>+1。
end
ifK3(u,v>==i。
GP3(i>=GP3(i>+1。
end
end
end
GP1(i>=GP1(i>/(m*n>。
GP2(i>=GP2(i>/(m*n>。
GP3(i>=GP3(i>/(m*n>。
end
subplot(2,3,4>。
bar(GP1>
title('高斯'>
subplot(2,3,5>
bar(GP2>。
title('椒盐'>。
subplot(2,3,6>
bar(GP3>。
title('均匀'>
figure(3>
fori=1:
254
GP11(i>=0。
GP22(i>=0。
GP33(i>=0。
foru=1:
150
forv=1:
40
ifK1(u,v>==i。
GP11(i>=GP11(i>+1。
end
ifK2(u,v>==i。
GP22(i>=GP22(i>+1。
end
ifK3(u,v>==i。
GP33(i>=GP33(i>+1。
end
end
end
GP11(i>=GP11(i>/(m*n>。
GP22(i>=GP22(i>/(m*n>。
GP33(i>=GP33(i>/(m*n>。
end
subplot(1,3,1>。
bar(GP11>
title('高斯参数的估计'>
subplot(1,3,2>
bar(GP22>。
title('椒盐参数的估计'>。
subplot(1,3,3>
bar(GP33>。
title('均匀参数的估计'>
clc
clear
f=imread('C:
\tu\camana.jpg'>。
[m,n]=size(f>。
fori=1:
m
forj=1:
n
F(i,j>=(-1>^(i+j>*f(i,j>。
end
end
F=fftshift(fft2(F>>。
R=real(F>。
I=imag(F>。
G=zeros(m,n>。
foru=1:
m
forv=1:
n
G(u,v>=(R(u,v>^2+I(u,v>^2>^(1/2>。
end
end
figure(2>。
G=mat2gray(G>。
实验结果<图3、图4):
图3
图4
结果分析:
数字图像中,噪声主要来源于图像的获取和传输过程,不同噪声所对应的直方图不同,可以从直方图判断图像砸噪声的种类,噪声参数的估计需要选取图像的一个垂直条带,画出其直方图,可以确定其参数。
c.分别采用维纳滤波和约束最小二乘方滤波实现去噪并比较
实现代码:
I=imread('C:
\tu\rice1.tif'>。
figure。
subplot(2,2,1>。
imshow(I>。
title('原图像'>。
[m,n]=size(I>。
F=fftshift(fft2(I>>。
k=0.0025。
%取不同的值0.00025
foru=1:
m
forv=1:
n
H(u,v>=exp((-k>*(((u-m/2>^2+(v-n/2>^2>^(5/6>>>。
end
end
G=F.*H。
I0=real(ifft2(fftshift(G>>>。
I1=imnoise(uint8(I0>,'gaussian',0,0.001>
subplot(2,2,2>。
imshow(uint8(I1>>。
title('模糊退化且添加高斯噪声的图像'>。
F0=fftshift(fft2(I1>>。
F1=F0./H。
I2=ifft2(fftshift(F1>>。
subplot(2,2,3>。
imshow(uint8(I2>>。
title('全逆滤波复原图'>。
K=0.1。
foru=1:
m
forv=1:
n
H(u,v>=exp(-k*(((u-m/2>^2+(v-n/2>^2>^(5/6>>>。
H0(u,v>=(abs(H(u,v>>>^2。
H1(u,v>=H0(u,v>/(H(u,v>*(H0(u,v>+K>>。
end
end
F2=H1.*F0。
I3=ifft2(fftshift(F2>>。
subplot(2,2,4>。
imshow(uint8(I3>>。
title('维纳滤波复原图'>。
p=[0-10。
-14-1。
0-10]。
fori=1:
m
forj=1:
n
if(i<=3&&j<=3>
g(i,j>=p(i,j>。
else
g(i,j>=0。
end
end
end
P=ff