數字圖像處理之傅里葉變換
by方陽
版權聲明:本文為博主原創文章,轉載請指明轉載地址
http://www.cnblogs.com/fydeblog/p/7070055.html
1. 前言
這篇博客主要介紹常見的噪聲及其概率密度函數,並用MATLAB復原函數對退化圖像進行復原處理。這里復原是指在圖像已經有噪聲污染的情況下復原,與直接用傅里葉正反變換不一樣!
2. 原理說明
(1) 常見噪聲:椒鹽噪聲和高斯噪聲
椒鹽噪聲是指兩種噪聲,一種是鹽噪聲,另一種是胡椒噪聲。鹽=白色,椒=黑色。前者是高灰度噪聲,后者屬於低灰度噪聲。一般兩種噪聲同時出現,呈現在圖像上就是黑白雜點。概率函數兩極分化;
高斯噪聲是指它的概率密度函數服從高斯分布(即正態分布)的一類噪聲;
(2)圖像復原是用去卷積函數實現的,用原圖像卷積點擴散函數(點擴散函數即是一種運動模糊的算子),然后加入高斯噪聲。然后用去卷積來恢復圖像,有兩種,一種不加入噪聲估計,一種加入噪聲估計,得到不同的恢復效果;
3. 實現內容
(1) 構造一個矩形方塊圖像,對其分別加入高斯和椒鹽噪聲,顯示原始圖像和噪聲圖像,及每個圖片相對應的直方圖。
(2) 任意選擇一幅圖像,對其使用運動模糊處理,再在模糊圖像中加入高斯噪聲,使用逆濾波和winner濾波對其進行去退化處理,比較效果,顯示原始圖像和復原圖像。
4. 程序實現及實驗結果
(1)噪聲對圖像直方圖的影響
f(1000,1000)=0; f=mat2gray(f); [Y,X]=meshgrid(1:1000,1:1000); f(1:500,1:500)=1; f(500:1000,500:1000)=1; I=f; I1=imnoise(I,'salt & pepper',0.02); I2=imnoise(I,'gaussian',0,0.01); figure; subplot(2,3,1); imshow(I); title('原圖'); subplot(2,3,2); imshow(I1); title('椒鹽噪聲后的圖像'); subplot(2,3,3); imshow(I2); title('高斯噪聲后的圖像'); subplot(2,3,4); imhist(I); title('原圖直方圖'); subplot(2,3,5); imhist(I1); title('椒鹽噪聲圖像的直方圖'); subplot(2,3,6); imhist(I2); title('高斯噪聲圖像的直方圖');
運行結果:
(2)逆濾波與winner濾波
I_1=imread('cameraman.tif'); PSF=fspecial('motion',21,11); I3=imfilter(I_1,PSF,'conv','circular'); I3=imnoise(I3,'gaussian',0,0.0001); I4=deconvwnr(I3,PSF); I_1=im2double(I_1); estimated_nsr=0.0001/var(I_1(:)); I5=deconvwnr(I3,PSF,estimated_nsr); figure; subplot(2,2,1); imshow(I_1); title('原圖'); subplot(2,2,2); imshow(I3); title('模糊+噪聲'); subplot(2,2,3); imshow(I4); title('逆濾波'); subplot(2,2,4); imshow(I5); title('winner濾波');
運行結果:
五. 結果分析
(1)從圖1可以看出,原圖(黑白圖)直接是兩極分化,加入椒鹽噪聲后直方圖沒有變化,因為椒鹽噪聲也是兩極分化,加入高斯噪聲可以看出直方圖有高斯形狀;
(2)從圖2可以看出,用逆濾波出來的圖像很不理想,用winner濾波出來的圖像還行,看出圖像恢復,信噪比是不可忽略的因素啊!