1. 程式人生 > >影象增強之空間域濾波

影象增強之空間域濾波

1、為什麼進行影象增強

影象增強是指增強影象中某些特徵,同時削弱或去除某些不需要的資訊,即為了某種應用而去改善影象的質量,消除噪聲,顯現那些被模糊了的細節或簡單的突出一副影象中感興趣的特徵。所以影象增強並不是增強影象的原始資訊,而是隻針對某一特徵以提高某種資訊的辨別能力,影象增強需要根據需求採用特定的方法,當增強一些資訊時另外一些資訊必定被損失,不存在一種通用的方法,必須根據需求決定保留哪些資訊丟棄哪些資訊。

影象增強技術基本上可以分為兩類:空間域增強、頻域增強。

2、空間域濾波理論

2.1定義

空間域濾波就是在影象平面上對畫素進行操作。

空間域濾波大體分為兩類:平滑、銳化。

平滑濾波:模糊處理,用於減小噪聲,實際上是低通濾波,典型的濾波器是高斯濾波。

銳化濾波:提取邊緣突出邊緣及細節、彌補平滑濾波造成的邊緣模糊。實際上是高通濾波。

空間域處理可由下式表示:

g(x,y)=T[f(x,y)]

式中,f(x,y)是輸入影象,g(x,y)是處理後的影象,T是在點(x,y)的鄰域上定義的關於f的一種運算元,運算元可應用於單幅影象或影象集合。

2.2空間域濾波和鄰域處理

1)空間濾波器由一個鄰域(通常是一個較小的矩形)和對該鄰域所包圍影象畫素執行的預定義操作組成。對預定義的點(x,y)為中心的領域內的畫素進行計算。

2)濾波產生一個新畫素,新畫素的座標等於鄰域中心的座標(x,y),畫素的值是濾波操作的結果。即用計算後的新畫素值作為點(x,y)的值。

3)迴圈步驟1和2,濾波器的中心遍歷影象中的每個畫素後,就生成了濾波後的影象。

4)如果在影象畫素上執行的是線性操作,則該濾波器稱為線性空間濾波器,否則,稱為非線性空間濾波器。

一般來說,使用大小為 m×n的濾波器對大小為 M×N的影象進行線性空間濾波,可由下式表示:

3、平滑濾波

平滑濾波可以減少和抑制影象中的噪聲,平滑後圖像變得模糊,噪聲降低。模糊處理常用於預處理任務中,如在目標提取之前去除影象中的一些瑣碎細節,以及橋接直線或曲線的縫隙。

1)工作原理

一般來說,影象具有區域性連續的性質,即相鄰的畫素的值相近,而噪聲使得噪點處產生畫素跳躍,所以通過平滑噪點可以減少噪聲,去除影象中的不相關細節。

2)均值濾波和加權濾波

平滑濾波的輸出是包含在濾波器模板鄰域內的畫素的簡單平均值,也就是均值濾波器。

均值濾波器是低通濾波器,常見的操作有均值濾波和加權濾波。

W是濾波模板,模板的大小取決於需要濾除的物體的大小,使用時需要更具影象特點選擇模板尺寸。

為什麼使用加權,平滑濾波對領域內的畫素一視同仁,但是一般認為距離模板中心的畫素應對濾波結果有較大的貢獻,所以將模板中心的係數取得比模板周邊的係數大,隨著距離中心距離增大,權重迅速減小。高速濾波就是一種加權濾波,只不過模板中的係數由高斯分佈來確定的。

3)實現

Matlab濾波可以用fspecial產生濾波模板。

f=fspecial('average', 3)產生係數為:

f =

    0.1111    0.1111    0.1111

    0.1111    0.1111    0.1111

    0.1111    0.1111    0.1111

例1:均值濾波

imgPath = 'E:\opencv_pic\src_pic\pic4.bmp';
img = imread(imgPath);
img = imnoise(img,'salt & pepper', 0.02);
 
f=fspecial('average', 3);
img1=imfilter(img, f);
f=fspecial('average', 10);
img2=imfilter(img, f2);
 
subplot(1,3,1),imshow(img), title('原始影象');
subplot(1,3,2),imshow(img1),title('均值濾波1');
subplot(1,3,3),imshow(img2),title('均值濾波2');

可見下圖,當濾波係數為3*3時,可以濾波大部分噪聲,當濾波係數為10時,濾除了全部噪聲但是影象變得模糊。

例2:高斯噪聲濾波

imgPath = 'E:\opencv_pic\src_pic\pic4.bmp';
img = imread(imgPath);
img = imnoise(img, 'gaussian', 0, 0.01);
 
f=fspecial('average', 5);
img1=imfilter(img, f);
f2=fspecial('gaussian', 5, 0.8);
img2=imfilter(img, f2);
 
subplot(1,3,1),imshow(img), title('原始影象');
subplot(1,3,2),imshow(img1),title('均值濾波');
subplot(1,3,3),imshow(img2),title('高斯濾波');

兩個濾波模板分別為:

f =

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

    0.0400    0.0400    0.0400    0.0400    0.0400

f2 =

    0.0005    0.0050    0.0109    0.0050    0.0005

    0.0050    0.0522    0.1141    0.0522    0.0050

    0.0109    0.1141    0.2491    0.1141    0.0109

    0.0050    0.0522    0.1141    0.0522    0.0050

0.0005    0.0050    0.0109    0.0050    0.0005

濾波效果如下圖。

 放大後觀察細節,均值濾波在漸變處出現嚴重的模糊現象,高斯濾波由於使用了帶權重的濾波係數,情況好很多。

4、自適應平滑濾波

1)原理

利用平均模板平滑在消除噪聲的同時也使得影象變得模糊,高斯平滑在一定程度上緩解了這些現象,但由於平滑濾波的原理可知這種模糊是不可避免的。所以可以進行選擇性的平滑,即只對噪聲區域性區域進行平滑,對無噪聲的區域性區域不進行平滑,將模糊的影響降到最低。

2)實現

自適應的關鍵是對噪聲區域的識別,哪些區域是需要平滑的,哪些區域不需要。一般地,噪聲的存在使噪聲點產生灰度跳躍,從而使噪聲點區域性區域灰度跨度較大。

所以,方法1:可以設定閾值T,當局部最大灰度和最小灰度只差大於閾值,則進行平滑;否則不平滑。方法2:當局部區域灰度方差大於閾值T則進行平滑;否則不平滑。

 

5、中值濾波

1)原理

中值濾波是一種統計排序濾波器,影象上點(x,y),中值濾波以該點為中心,領域內所有畫素的統計排序中值作為此點的響應,中值濾波是非線性濾波。

相比與均值濾波和高斯濾波,中值濾波可以有效的降低隨機噪聲,直接忽略掉噪聲點,把噪聲引起的模糊降到最低。典型的應用就是中值濾波消除椒鹽噪聲。

2)中值濾波效果對比

imgPath = 'E:\opencv_pic\src_pic\pic4.bmp';
img = imread(imgPath);
img0 = rgb2gray(img);
img = imnoise(img0,'salt & pepper');
 
f=fspecial('average', 3);
img1=imfilter(img, f);
f2=fspecial('gaussian', 3, 0.8);
img2=imfilter(img, f2);
img3=medfilt2(img, [3,3]);
 
subplot(2,3,1),imshow(img0), title('原始影象');
subplot(2,3,2),imshow(img), title('噪聲影象');
subplot(2,3,3),imshow(img1),title('均值濾波');
subplot(2,3,4),imshow(img2),title('高斯濾波');
subplot(2,3,5),imshow(img3),title('中值濾波');

從下圖可見,線性平滑濾波在濾除噪聲的同時不可避免的引起了模糊,而中值濾波在有效濾除隨機噪聲的同時,還有效抑制了模糊效應。對於椒鹽噪聲影象,中值濾波的效果要好於線性平滑濾波。

放大後觀察細節,中值濾波較好的還原了原圖。

6、參考文獻

1、影象增強之空間域濾波 -- Part1. 原理篇

https://blog.csdn.net/hhaowang/article/details/87978218

2、Image Filtering and Enhancement

https://ww2.mathworks.cn/help/images/image-enhancement-and-restoration.html?s_tid=CRUX_lftnav

 

尊重原創技術文章,轉載請註明。

https://www.cnblogs.com/pingwen/p/12267325.html

&n