拉普拉斯運算元
最近在學習圖像處理,準備把這本書(岡薩雷斯)的核心知識點都整理整理,為後期學習計算機視覺打好一定的先修基礎。
本節講給大家講講什麼是拉普拉斯運算元?
空域的拉普拉斯運算元
拉普拉斯運算元是一個在圖像增強中經常出現的二階微分運算元。
我們知道,在做image processing的過程中,圖像可以被看做是一個灰度級取值為[0,255]的matrix。回想高等數學的概念,我們在求解因變數隨著自變數變化過程快慢的時候,用到的衡量標準就是求導數。而對於連續函數,我們根據導數的求導公式即可求出導數的值,也即知道了函數在改點的變化快慢。
那麼對於圖像這種特殊的函數,我們該怎麼求導呢?我們用差分來定義這種微分的關係,然後在構造一個基於差分的filter。
而在研究filter的過程中,我們最關心的是一種各向同性濾波器,這種濾波器的響應與濾波器作用的圖像的突變方向無關。
也就是說,各向同性濾波器是可以維持理論上的旋轉不變性的。對一幅圖像先進行濾波,然後再旋轉。與先旋轉再濾波得到的結果是相同的。或者,我們將這個filter旋轉180°,得到的新的filter和原先的filter具有相同的形式。
首先引入這個剛剛講過的二階微分:
由一維情況下:
那麼得到上述二階微分:
上述是數學表達形式的拉普拉斯運算元,那麼我們可以將其表達為模板的形式:
- a的filter是一個90°旋轉各向同性的結果
- b的filter是一個45°旋轉各向同性的結果
- c和d都是上述兩種filter的擴展
從filter的形式來看,如果在圖像中的一個比較暗的區域出現了一個亮點,那麼經過拉普拉斯運算元處理後,這個亮點怎麼變得更亮,為什麼會這樣呢?
因為在一個很暗的區域內,很亮的點和其周圍的點屬於差異比較大的點,在圖像上,反映到差異大,其實說的就是這個亮點與周圍點的pixel在數值上的差距。那麼基於二階微分的拉普拉斯運算元就是求取這種像素值發生突然變換的點或線,此運算元卻可用二次微分正峰和負峰之間的過零點來確定,對孤立點或端點更為敏感,因此特別適用於以突出圖像中的孤立點、孤立線或線端點為目的的場合。同梯度運算元一樣,拉普拉斯運算元也會增強圖像中的雜訊,有時用拉普拉斯運算元進行邊緣檢測時,可將圖像先進行平滑處理。但是在進行銳化的過程中,我們又不希望這個filter改變了圖像中其他pixel的信息,所以保證了每個filter的數值和加起來為0(1+1+1+1-4)
由於拉普拉斯是一種微分運算元,它的應用可增強圖像中灰度突變的區域,減弱灰度的緩慢變化區域。因此,銳化處理可選擇拉普拉斯運算元對原圖像進行處理,產生描述灰度突變的圖像,再將拉普拉斯圖像與原始圖像疊加而產生銳化圖像。
拉普拉斯銳化的基本方法可以由下式表示:
這種簡單的銳化方法既可以產生拉普拉斯銳化處理的效果,同時又能保留背景信息,將原始圖像疊加到拉普拉斯變換的處理結果中去,可以使圖像中的各灰度值得到保留,使灰度突變處的對比度得到增強,最終結果是在保留圖像背景的前提下,突現出圖像中小的細節信息。
- 圖a是是原始圖像
- 圖b是經過拉普拉斯濾波器濾波後的圖像
- 圖c先不用管
- 圖d是通過上述g(x,y)得到的增強後的圖像
頻率的拉普拉斯運算元
關於拉普拉斯運算元還必須掌握其傅里葉變換。
因為剛剛上述講的過程都是在空域對圖像進行操作的,如果我們在空域無法對圖像進行拉普拉斯運算,那麼就圖像其先通過傅里葉變換放進頻率,然後在頻域進行處理,再將頻率處理完的結果通過傅里葉反變換轉換回空域。
那麼頻域的拉普拉斯運算元可由下式確定:
那麼再通過傅里葉反變換,就可以把頻域做完的一系列操作轉換到空域了。
推薦閱讀:
※GitHub|教你快速使用Tensorflow/Elasticsearch實現全文的圖片搜索(附源代碼)
※顏色保衛戰與VOT2016
※1.23【OpenCV圖像處理】直方圖均衡化和計算