圖像去模糊(逆濾波)

引言

圖像模糊是一種拍攝常見的現象,我曾在圖像去模糊(維納濾波) 介紹過。這裏不再詳述,只給出物理模型,這裏我們仍在頻率域表示

G(u,v)=H(u,v)F(u,v)+N(u,v)(1)

其中提到最簡單的復原方法是直接做逆濾波(Inverse filter)。
F^(u,v)=G(u,v)H(u,v)(2)

該除法是陣列操作,即按位除。
在含有噪聲情況下,將(1)式兩端除以H(u,v)
F^(u,v)=F(u,v)+N(u,v)H(u,v)(3)

這裏N(u,v) 未知,式子表明,即使知道退化函數也不能準備復原圖像。還有當退化函數H(u,v) 是零或者非常小的值,則N(u,v)H(u,v) 很容易支配整個式子。
下面我將用代碼說明一下逆濾波,這裏我採用直接編碼形式。對了,前面我提到過,當噪聲信息比NSR等於0時,此時維娜濾波等同於逆濾波。因此可以直接使用matlab自帶deconvwnr函數,將第三個參數NSR設置成0即可,省事的同學可以試一下。

代碼

close all;
clear all;
clc;
% Display the original image.
I = im2double(imread('lena.jpg'));
[hei,wid,~] = size(I);
subplot(2,3,1),imshow(I);
title('Original Image (courtesy of MIT)');


% Simulate a motion blur.
LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
subplot(2,3,2), imshow(blurred); title('Blurred Image');

% Inverse filter
If = fft2(blurred);
Pf = fft2(PSF,hei,wid);
deblurred = ifft2(If./Pf);
subplot(2,3,3), imshow(deblurred); title('Restore Image')

% Simulate additive noise.
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                        noise_mean, noise_var);
subplot(2,3,4), imshow(blurred_noisy)
title('Simulate Blur and Noise')

% Try restoration assuming no noise.
If = fft2(blurred_noisy);
deblurred2 = ifft2(If./Pf);
subplot(2,3,5), imshow(deblurred2)
title('Restoration of Blurred Assuming No Noise');

% Try restoration with noise is known.
noisy = blurred_noisy - blurred;
Nf = fft2(noisy);
deblurred2 = ifft2(If./Pf - Nf./Pf);
subplot(2,3,6), imshow(deblurred2)
title('Restoration of Blurred with Noise Is Known')

這裏使用了經典的lena圖是灰度圖像,分別對圖像進行運動模糊,逆濾波,運動模糊+高斯噪聲,假定噪聲未知直接逆濾波,噪聲已知逆濾波。

效果

result

說明

逆濾波對噪聲非常敏感,除非我們知道噪聲的分佈情況(事實上,這也很難知道),逆濾波幾乎不可用,可以從二排中間看出,恢復圖像效果極差。但若知道噪聲分佈,也是可以完全復原信息的。可以從二排最後一張圖可以看出。寫作本文的目的也僅是在數學角度上對圖像模糊現象進行分析,後續會介紹更加有效的圖像復原方法,敬請關注。

相關閱讀及參考文獻

圖像去模糊(維納濾波) http://blog.csdn.net/bluecol/article/details/46242355
圖像去模糊(約束最小二乘濾波) http://blog.csdn.net/bluecol/article/details/47359421
數字圖像處理(第三版) 岡薩雷斯著 chapter 5,圖像復原與重建

轉載請保留以下信息

作者 日期 聯繫方式
風吹夏天 2015年8月8日 [email protected]
發佈了50 篇原創文章 · 獲贊 76 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章