北京微信公众号网站建设,交互式网页设计,桂林百度网站建设,做dj音叉网站平台一、实验目的
#xff08;1#xff09;了解图像复原的目的及意义#xff0c;加深对图像复原理论的认识。
#xff08;2#xff09;掌握维纳滤波复原基本原理。
#xff08;3#xff09;掌握约束最小二乘方复原方法。
#xff08;4#xff09;掌握盲解卷积复原方法…一、实验目的
1了解图像复原的目的及意义加深对图像复原理论的认识。
2掌握维纳滤波复原基本原理。
3掌握约束最小二乘方复原方法。
4掌握盲解卷积复原方法
二、实验内容 1维纳滤波复原。 2约束最小二乘方复原 3盲解卷积复原
三、实验代码及结果、分析
1维纳滤波复原
代码
Iimread(E:\大三课件\大三下\数字图像处理\实验\实验5\lena.jpg);
Irgb2gray(I);
noise5*randn(size(I));
noise noise - min(min(noise));
J double(I) noise;
R1wiener2(J,[10 10]); %未知噪声
R2wiener2(J,[10 10],noise); %已知噪声分布
figure
subplot(2,2,1),imshow(uint8(I));title(原始图像);
subplot(2,2,2),imshow(uint8(J));title(退化图像);
subplot(2,2,3),imshow(uint8(R1));title(盲复原);
subplot(2,2,4),imshow(uint8(R2));title(非盲复原);
结果分析
维纳滤波又叫最小均方差滤波它的目标是找到一个原图像f的估计图像f使得它们之间的均方误差最小。 e^2 E(f-f^2)randa()函数是产生随机噪声nosize应该是一个矩阵min(min(noise))表示先取每列中的最小值再取最小值中的最小值关于维纳滤波函数有wiener2和deconvwnr分别适用于灰度图像和彩色图像R1为未知噪声的分布R2为已知噪声分布2约束最小二乘方复原方法
代码
Iimread(E:\大三课件\大三下\数字图像处理\实验\实验5\lena.jpg);
Irgb2gray(I);I im2double(I);[hei,wid,~] size(I);
PSF fspecial(motion, 21, 11);%摄像物体逆时针方向以11角度运动了21个像素
blurred imfilter(I, PSF, conv, circular);%运动模糊图像
% 逆滤波结果
If fft2(blurred);Pf psf2otf(PSF,[hei,wid]);deblurred ifft2(If./Pf);
% 运动模糊高斯噪声
noise_mean 0;noise_var 0.00001;
blurred_noisy imnoise(blurred, gaussian,noise_mean, noise_var);
% 约束最小二乘法
p [0 -1 0;-1 4 -1;0 -1 0];P psf2otf(p,[hei,wid]);
gama 0.002;%γ设置成0.001左右会有比较好的效果If fft2(blurred_noisy);numerator conj(Pf);
denominator Pf.^2 gama*(P.^2);
deblurred2 ifft2( numerator.*If./ denominator );
subplot(2,3,1),imshow(I);title(原始图像);
subplot(2,3,2), imshow(blurred); title(运动模糊图像);
subplot(2,3,3), imshow(deblurred); title(运动模糊复原)
subplot(2,3,4), imshow(blurred_noisy),title(运动模糊噪声图像)
subplot(2,3,5), imshow(deblurred2),title(无约束最小二乘法复原);
subplot(2,3,6); imshow(deconvreg(blurred_noisy, PSF,0)); title(deconvreg函数复原);%自带的去模糊deconvreg函数
结果分析
1、fspecial(type, len,theta)函数用于预定于滤波算子typemotion为运动算子theta参数表示逆时针方向的角度len表示运动了len个像素
2、约束最小二乘方滤波效果比自带的去模糊deconvreg函数好
3、约束最小二乘方滤波对高噪声和中等噪声产生结果要好于维纳滤波对于低噪声两种滤波产生结果基本相等 3盲解卷积复原方
代码
Icheckerboard(8);
PSFfspecial(gaussian,7,10);
V.0001;
BlurredNoisyimnoise(imfilter(I,PSF),gaussian,0,V);
WTzeros(size(I));
WT(5:end-4,5:end-4)1;
INITPSFones(size(PSF));
FUNinline(PSFP1,PSF,P1);
[J P]deconvblind(BlurredNoisy,INITPSF,20,10*sqrt(V),WT,FUN,0);
subplot(131);imshow(I);title(原图像);
subplot(132);imshow(BlurredNoisy);title(运动模糊噪声图像);
subplot(133);imshow(J);title(盲去卷积);
结果分析
盲解卷积复原是指在没有图像退化先验知识、对退化系统了解不足的条件下通过观察退化图像的多个图像以某种方式抽出退化信息进行图像复原函数imnoise 是表示添加噪声污染一幅图像叫做噪声污染图像函数,gimnoisef,localvar,V)将均值为0局部方差为V的高斯噪声添加到图像f上其中V是与f大小相同的一个数组它包含了每一个点的理想方差值Inline()函数定义一个内置函数本质上说跟function干的是一样的事只不过它可以直接内嵌在命令行里不用另外单独定义function