直方圖
一、圖片
〝櫻花〞
〝陽明山〞
〝龜山島〞
1. 直方圖
統計RGB在0~255的個數。
〝櫻花〞
〝陽明山〞
〝龜山島〞
2. 累積直方圖
將統計結果,以「iColorArray[k] = iColorArray[k]+iColorArray[k-1];」做累加。
〝櫻花〞
〝陽明山〞
〝龜山島〞
3. 直方圖均化
將累積密度函數值程上最大色階值( 2 5 5 )。
〝無圖〞
二、心得
「將圖片做色彩統計,並畫出直方圖與累積直方圖。」
這部分的程式還蠻直覺得,只是要注意 I m a g e 的左上角是( 0 , 0 ),
所以畫線的時候,需要〝2 5 5 - 統 計 結 果〞才可以讓線由 I m a g e 底部往上畫。
完成之後卻發現,我的 I m a g e 被整個上色了!?後來用 M e m o 印出統計結果,
才終於找到問題所在,我的統計結果根本超出255超級多,線超出 I m a g e 沒顯示出來,
導致直方圖失控,解決方法是用比例的觀念,換算出當前直方圖數值才是正確的位置!
其換算公式為〝當前直方圖數值:255 = 當前統計結果:統計結果最大值〞。
「直方圖均化,並秀出均化後的影像與直方圖。」
寫程式當下,查了一下老師上課的PPT,.發現PPT只有一頁關於直方圖均化的說明,
公式為「g ( x , y ) = c d f ( f ( x , y ) ) * 2 5 5 」,當下卡在累積值*255一定會超出範圍,對於其百思不得其解,故先跳過直方圖均化。
程式全部寫完後,回過頭來想這個問題,最後決定參考以前修過課的人的作業,
終於看到「陳奕穎 HW02」,裡面有寫到,「累 積 統 計 [ i ] / 累 積 統 計 [ 255 ] * 2 5 5」
可將原來顏色分布平均分到0~255範圍。
原來不是「累 積 統 計 [ i ]」* 255 ,而是「累 積 統 計 [ i ] / 累 積 統 計 [ 255 ] 」* 255 !
累積密度函數,累積密度函數,累積密度函數,機率與統計的這部分觀念沒搞清楚,
結果在影像處理顯示出來,果真每個課程都很重要,且都是息息相關的呀!
沒有留言:
張貼留言