我們這次可以使用openCV所提供的function來完成H.E,也可以自己寫function來implement出 同樣 的效果,主要的數學公式如下 :
上述公式中,rk是原始分布的隨機變數r的第k種灰階,nk是第k種灰階的像素數,n是整張影像 的像素數。
上述公式中,L為256,此為(所有灰階的總和數*255)/n,最後再取四捨五入後的值。
Follow以上的數學運算式,我們就能實做出H.E一樣的效果 !
均勻分布圖 :
程式實作如下 :
(左)圖為Source Image,(右)圖為Equalized Image
Histogram comparison :
(左)圖為Source Image 的直方圖,(右)圖為Equalized Image 的直方圖
邊緣偵測 Sobel EdgeDection
Sobel 的方法就是算出影像的垂直梯度(gradient)與水平梯度兩者取絕對值相加即可,用來加深邊緣的顏色。
影像 f 與上述兩個kernel作convolution得到
結果如下 :
程式實作如下 :
(左)圖為Source Image,(右)圖為EdgeDection Image
結論 :
這次的作業要我們做的事情,雖然用openCV內建的function就能輕鬆搞定,但是若直接用反而不清楚實際的色值如何運用,透過已知的數學公式,照著式子一步一步做,得到跟內建的結果一樣,也對H.E和edge dection更加了解 !















