1、爲何進行圖像加強html
圖像加強是指加強圖像中某些特徵,同時削弱或去除某些不須要的信息,即爲了某種應用而去改善圖像的質量,消除噪聲,顯現那些被模糊了的細節或簡單的突出一副圖像中感興趣的特徵。因此圖像加強並非加強圖像的原始信息,而是隻針對某一特徵以提升某種信息的辨別能力,圖像加強須要根據需求採用特定的方法,當加強一些信息時另一些信息一定被損失,不存在一種通用的方法,必須根據需求決定保留哪些信息丟棄哪些信息。spa
圖像加強技術基本上能夠分爲兩類:空間域加強、頻域加強。.net
2、空間域濾波理論3d
2.1定義rest
空間域濾波就是在圖像平面上對像素進行操做。code
空間域濾波大致分爲兩類:平滑、銳化。orm
平滑濾波:模糊處理,用於減少噪聲,其實是低通濾波,典型的濾波器是高斯濾波。htm
銳化濾波:提取邊緣突出邊緣及細節、彌補平滑濾波形成的邊緣模糊。其實是高通濾波。blog
空間域處理可由下式表示:排序
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('中值濾波');
從下圖可見,線性平滑濾波在濾除噪聲的同時不可避免的引發了模糊,而中值濾波在有效濾除隨機噪聲的同時,還有效抑制了模糊效應。對於椒鹽噪聲圖像,中值濾波的效果要好於線性平滑濾波。
放大後觀察細節,中值濾波較好的還原了原圖。
六、參考文獻
一、圖像加強之空間域濾波 -- Part1. 原理篇
https://blog.csdn.net/hhaowang/article/details/87978218
二、Image Filtering and Enhancement
https://ww2.mathworks.cn/help/images/image-enhancement-and-restoration.html?s_tid=CRUX_lftnav
尊重原創技術文章,轉載請註明。