数字图像处理实验5图像复原
一、實驗目的
(1)了解圖像復原的目的及意義,加深對圖像復原理論的認識。
(2)掌握維納濾波復原基本原理。
(3)掌握約束最小二乘方復原方法。
(4)掌握盲解卷積復原方法
二、實驗內容
?(1)維納濾波復原。
?(2)約束最小二乘方復原
?(3)盲解卷積復原
三、實驗代碼及結果、分析
(1)維納濾波復原
- 代碼:
I=imread('E:\大三課件\大三下\數字圖像處理\實驗\實驗5\lena.jpg');
I=rgb2gray(I);
noise=5*randn(size(I)); ?????
noise = noise - min(min(noise));
J ?= double(I) +noise;
R1=wiener2(J,[10 10]); ???%未知噪聲
R2=wiener2(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('非盲復原');
- 結果:
- 分析:
?
(2)約束最小二乘方復原方法
- 代碼:
I=imread('E:\大三課件\大三下\數字圖像處理\實驗\實驗5\lena.jpg');
I=rgb2gray(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)函數,用于預定于濾波算子,type=motion為運動算子,theta參數表示逆時針方向的角度,len表示運動了len個像素
2、約束最小二乘方濾波效果比自帶的去模糊deconvreg函數好
3、約束最小二乘方濾波對高噪聲和中等噪聲產生結果要好于維納濾波,對于低噪聲兩種濾波產生結果基本相等
?
(3)盲解卷積復原方
- 代碼:
I=checkerboard(8);
PSF=fspecial('gaussian',7,10);
V=.0001;
BlurredNoisy=imnoise(imfilter(I,PSF),'gaussian',0,V);
WT=zeros(size(I));
WT(5:end-4,5:end-4)=1;
INITPSF=ones(size(PSF));
FUN=inline('PSF+P1','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('盲去卷積');
- 結果:
- 分析:
總結
以上是生活随笔為你收集整理的数字图像处理实验5图像复原的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免otp动态密码登录堡垒机
- 下一篇: 通过SVD求解单应矩阵