学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:实验一、数字图像的退化与复原一、实验目的1.掌握数字图像的存取与显示方法。
2.理解数字图像运动模糊、高斯模糊以及其他噪声引起模糊(图像降质现象)的物理本质。
3.掌握matlab的开发环境。
4.掌握降质图像的逆滤波复原和维纳滤波复原方法。
二、实验原理此实验是对数字图像处理课程的一个高级操作。
在深入理解与掌握数字图像退化的基础理论上,利用逆滤波与维纳滤波方法对数字图像进行复原。
1.图像的退化数字图像在获取过程中,由于光学系统的像差、光学成像衍射、成像系统的非线性畸变、成像过程的相对运动、环境随机噪声等原因,图像会产生一定程度的退化。
2.图像的复原图像复原是利用图像退化现象的某种先验知识,建立退化现象的数学模型,再根据模型进行反向的推演运算,以恢复原来的景物图像。
因而图像复原可以理解为图像降质过程的反向过程。
3.图像降质的数学模型图像复原处理的关键问题在于建立退化模型。
输入图像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)学院:信电学院 班级:电信102 姓名:徐景广 学号:2010081261课程:应用软件综合实验 实验日期:2014年 1 月 3 日 成绩:在这里,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)的问题,它们的不同之处在于一个是空域,一个是频域。
4. 逆滤波逆滤波是非约束复原的一种。
非约束复原是指在已知退化图像g 的情况下,根据对退化系统H 和n 的一些了解和假设,估计出原始图像fˆ,使得某种事先确定的误差准则为最小。
由于g=Hf+n (4)我们可得:n=g-Hf (5)逆滤波法是指在对n 没有先验知识的情况下,可以依据这样的最有准则,即寻找一个f ˆ,使得H fˆ在最小二乘方误差的意义下最接近g ,即要使n 的模或范数(norm )最小: )ˆ()ˆ(ˆ22f Hg fH g fH g n n nT T --=-== (6) 上式的极小值为:2ˆ)ˆ(f H g fL -= (7) 如果我们在求最小值的过程中,不做任何约束,由极值条件可以解出fˆ为: g H g H H H fT T 11)(ˆ--== (8) 对上式进行傅立叶变换得:),(),(),(v u H v u G v u F =(9)可见,如果知道g(x,y)和h(x,y),也就知道了G(u,v)和H(u,v).根据上式,即可得出F(u,v),学院:信电学院 班级:电信102 姓名:徐景广 学号:2010081261课程:应用软件综合实验 实验日期:2014年 1 月 3 日 成绩:再经过反傅立叶变换就能求出f(x,y)。
逆滤波是最早应用于数字图像复原的一种方法,并用此方法处理过由漫游者、探索者等卫星探索发射得到的图像。
5. 维纳滤波维纳滤波是最小二乘类约束复原的一种。
在最小二乘类约束复原中,要设法寻找一个最有估计fˆ,使得形式为22ˆn f Q =的函数最小化。
求这类问题的最小化,常采用拉格朗日乘子算法。
也就是说,要寻找一个fˆ,使得准则函数 )ˆ(ˆ)ˆ(222n fH g f Q fJ --+=α (10)为最小。
求解fˆ得到 g H Q Q H H fT T T 1)(ˆ-+=γ (11) 式中,αγ/1=。
如果用图像f 和噪声的相关矩阵R f 和R n 表示Q ,就可以得到维纳滤波复原方法。
具体维纳滤波复原方法的原理请参考相关图书。
三、实验仪器和设备PC 机1台,原始Lena 图像文件,matlab 编程软件四、实验内容及步骤1.安装Matlab6.x 软件实验平台 (如系统已安装Matlab 6.软件 ,直接进第二步)。
2. 读取Lena 图像并显示。
3. 设计运动滤波器、设计高斯模糊噪声滤波器。
4. 生成退化或降质图像并显示。
5. 修改相关滤波器参数,观察图像退化或降质程度。
6. 设计逆滤波器,并对降质图像进行复原,比较复原图像与原始图像。
7. 设计维纳滤波器,并对降质图像进行复原,比较复原图像与原始图像。
8. 计算退化图像、不同方法复原后图像的信噪比。
以下为实验步骤,包括部分代码以及解释:学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:如图1和图2,分别为matlab读取的彩色原图以及灰化处理的图片。
为了对比明显,我们将其分别显示。
其代码如下:I = imread('lufei.jpg');imshow(I); title('Original Image');B = rgb2gray(I);imshow(B);title('Gray')图1 彩色原图图2 灰化后的图片学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:图3和图4为设计运动滤波器并对图2进行运动模糊处理后的图片,可以看出,参数不同的运动滤波器处理后的效果明显不同,其相关代码如下:H1 = fspecial('motion',20,45);MotionBlur = imfilter(B,H1,'replicate');imshow(MotionBlur);title('Motion Blurred Image');H2 = fspecial('motion',40,80);blurred = imfilter(B,H2,'replicate');imshow(blurred); title('Motion 2 Image');图3 运动模糊图1学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:图4 运动模糊图2图5为设计维纳滤波器,并对降质图像进行复原,代码如下:C = deconvwnr(MotionBlur,H1);imshow(C);title('Deconvwnr image');学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:图5 维纳滤波器还原的图片图6和图7为对图2进行高斯模糊后的图片,代码如下:D1 = imnoise(B,'gaussian',0,0.01);imshow(D1); title('Gaussian image');D2 = imnoise(B,'gaussian',0.1,0.05);imshow(D2); title('Gaussian 2 image');学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:图6 高斯噪声处理图1图7 高斯噪声处理图2学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:图8为对高斯模糊后的图片进行还原处理,代码如下:E=fspecial('gaussian');F=imfilter(D1,E);subplot(3,3,8);imshow(F);title(' Fuyuan Image');图8 高斯噪声还原图片学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:图9为综合实验结果:图9 综合实验结果计算退化图像、不同方法复原后图像的信噪比。
其代码如下:[M,N]=size(B);MY_B=double(B);MY_C=double(C);ga=sum(sum(MY_B.^2));gab=sum(sum((MY_B-MY_C).^2));SNR=10*log(ga/gab);%信噪比P=sqrt(sum((MY_B-MY_C).^2));Q=sqrt(sum(MY_B.^2));v=P/Q;%相对误差my_cc=corrcoef(MY_B,MY_C);%相对系数saveas(gcf,['D:MATLAB6p1work','1.jpg']);我们得出,信噪比SNR=45.027 相对误差V=0.095637 相对系数my-cc=0.9679学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:五、实验总结通过这次实验,我能够基本掌握数字图像的存取与显示方法,理解数字图像运动模糊、高斯模糊以及其他噪声引起模糊(图像降质现象)的物理本质,掌握matlab的开发环境,掌握降质图像的逆滤波复原和维纳滤波复原方法。
锻炼了我耐心操作的品性,帮助我养成一丝不苟的习惯。
同时,感谢高诺老师的耐心指导以及同学们的相互帮助。
学院:信电学院班级:电信102 姓名:徐景广学号:2010081261 课程:应用软件综合实验实验日期:2014年1 月3 日成绩:附录(程序代码)I = imread('lufei.jpg');subplot(3,3,1); imshow(I); title('Original Image');B = rgb2gray(I);subplot(3,3,2);imshow(B);title('Gray')H1 = fspecial('motion',20,45);MotionBlur = imfilter(B,H1,'replicate');subplot(3,3,3);imshow(MotionBlur);title('Motion Blurred Image');H2 = fspecial('motion',40,80);blurred = imfilter(B,H2,'replicate');subplot(3,3,4);imshow(blurred); title('Motion 2 Image');C = deconvwnr(MotionBlur,H1);subplot(3,3,5);imshow(C);title('Deconvwnr image');D1 = imnoise(B,'gaussian',0,0.01);subplot(3,3,6);imshow(D1); title('Gaussian image');D2 = imnoise(B,'gaussian',0.1,0.05);subplot(3,3,7);imshow(D2); title('Gaussian 2 image');E=fspecial('gaussian');F=imfilter(D1,E);subplot(3,3,8);imshow(F);title(' Fuyuan Image');[M,N]=size(B);MY_B=double(B);MY_C=double(C);ga=sum(sum(MY_B.^2));gab=sum(sum((MY_B-MY_C).^2));SNR=10*log(ga/gab);P=sqrt(sum((MY_B-MY_C).^2));Q=sqrt(sum(MY_B.^2));v=P/Q;my_cc=corrcoef(MY_B,MY_C);saveas(gcf,['D:MATLAB6p1work','1.jpg']);。