2016年12月4日 星期日

03360474 陳鈺翔 HW02

直方圖、直方圖均化


【直方圖均化】


用於增加影像的對比度,可以讓影像的亮度有更好的表現;實際實驗後發現在影像過度曝光、曝光不足或是背景前景太亮或太暗有不錯的效果,可以讓影像某些部份變得比較清楚,可是在對失焦的圖做均化則沒有什麼效果,甚至做完均化後圖片反而變得更糟......

【程式撰寫】

1.畫出直方圖跟累積直方圖
部分程式碼:
//直方圖
//累積直方圖

2.直方圖均化
部分程式碼:
//計算累積最大值
//計算目前累積值
//直方圖均化
公式: g(x,y) = 255 * cdf( f(x,y) )  --->  色彩值 = 255 * ( 目前累積值 / 累積最大值 )

3.畫圖
部分程式碼:
利用TImage物件裡的內部函數就可以完成
//設定畫筆顏色(紅色)
//移動畫筆到點(x1,y1)
//從目前的點(x1,y1)畫一條線到(x2,y2)

【實驗結果】
1.過度曝光












2.影像部分區塊亮度不足

3.失焦

【心得】

對應上面的直方圖跟累積直方圖:
1.從直方圖可以發現,本來統計後很擠的位置,在做過均化後整個分散開來了。
2.從累積直方圖可以發現,都變成了比較像三角形的形狀,也就是說它的累積值的變化是比較固定的彼此之間不會有太大的差異。
以上兩點可以知道在做過均化後的圖片,影像的亮度變得更平均。
這些在上面實驗結果的第1跟2項可以看到紅圈部分變得更清楚了 !
寫完程式後,想了一下均化的用途是在對影像做對比度的調整,可以讓比較暗的地方變得比較亮、比較清晰;既然在影像過度曝光、曝光不足或是背景前景太亮或太暗的這些情況下使用會有不錯的效果,那麼再失焦的影像上做處理會有什麼情況產生了點興趣。均化後發現亮度的確變的平均了、本來不明顯的地方也變的明顯了,可是圖片變得更糟了,所以我覺得對失焦照片做均化應該是沒有什麼效果。
在寫影像處理程式的時候,通常使用雙重迴圈再加上幾行負責處理的程式碼就可以完成,而這次的直方圖以及累積直方圖也是如此,所以在寫程式的時候也沒有遇到什麼困難,比較要注意的只有在畫圖部分,TImage物件的(x,y)原點是在左上角,y往下是增加往上是減少,這邊跟平常習慣的不太一樣,所以花了點時間適應。唯一遇到問題是讀取某一些影像會出現"stream read error",雖然上網找了資料,可是看不懂......,目前只知道用Photoshop CS把影像存為BMP檔再用BCB打開的時候才會發生。


















沒有留言:

張貼留言