2014年3月24日 星期一

直方圖均化(Histogram Equalization)和邊緣偵測(Edge Detection)

直方圖均化(Histogram Equalization) H.E.

圖片的顏色分布可以依照其深淺或顏色的不同畫成直方圖(Histogram)。
以灰階的圖片為例,假設此圖是由每像素256bits所儲存的,則我們可以將橫軸畫分為256等份,由其明暗度來排序,然後將這張圖在不同明暗的點來做統計便得到縱軸的數量,就能畫出一張直方圖。



均化

那麼畫出一張直方圖又有什麼用呢?就是能夠看出這張圖片的明暗分布囉!
如果大多數的點都集中在圖形左側(暗部),圖片就會偏暗而看不清楚;若是集中在中間,也會因為明暗度的對比低,使得圖片灰濛濛的一片,一樣不易辨識。

所以影像處理中的「直方圖均化」這個技巧就派上用場了!
若將明暗度的分配由上面的集中分散成下面這個樣子,是否會變得比較清楚呢?

是的!原本的圖片是明顯偏暗而難以辨識的Lenna.jpg,透過H.E.馬上就變的清晰多了!那麼過亮的圖片呢?



一樣可以達到很好的效果!因此,當一張圖片統計其明案或彩度而繪成的直方圖明顯集中,就可以用此方法將其色域拉開讓人眼更容易辨識,而在現實生活中也常被用來呈現X光中骨骼結構的細節。


邊緣偵測(Edge Detection)

顧名思義,邊緣偵測就是把整張圖的邊緣偵測到,並且將之明顯的顯示出來。
有個常用到的偵測運算子叫做 - Sobel operator,這個方法就是計算出影像的梯度(gradient),分別算出垂直梯度和水平梯度,並且取其絕對值相加。

(來源:Wikipedia)

簡單來說,這個演算法就是找尋水平方向和垂直方向,像素變化大的地方,並且把這個部分「加強」,這樣就可以使原本就存在明暗(灰階圖片底下)差異的部分更加劇烈。

以下圖片就是使用Sobel operator做到邊緣偵測並且加強的結果囉!

(原圖)

(邊緣強化過後)

有了這個方法,就可以輕易地找出圖片上的線條,像是利用相機拍照過後,將取下的景用Sobel operator實作邊緣強化,便能製作出簡單明瞭的線條插畫了!



沒有留言:

張貼留言