2011年10月21日 星期五

HW1

這次的作業主要目的是要顯示圖片的直方圖和圖片的相關資訊,並進行直方圖的均化,而在開始做這份作業前,先經由老師上課講解直方圖均化的演算法及目的,有了初步的了解,自己也上網找了一些關於直方圖均化的資訊,對於課堂上所講得內容更為了解,直方圖均化主要目的就是把一張對比顏色較差或曝光的照片進行均化,透過均化把原本的直方圖的分布變為亙為平均,而以下就是直方圖及圖片相關資訊的實作畫面。






(二)了解直方圖均化的目的後,以下也實際操作一些對比較差的灰階圖片進行均化的實驗,左邊的圖片為原本顏色較為灰暗,經由均化過後的右邊圖片顏色較為明亮且清楚。


接著再嘗試圖片太過明亮的圖片,經過均化後的顯示


原本圖片較為過亮的圖片經由均化後,顏色變深且片較為清楚
而要把灰階的圖片進行均化必須在直方圖均化裡多寫一個灰階的色盤,這部分的程式碼是從老師去年寫的範例裡直接套用,如果少了這段程式碼,灰階圖片在均化就會變的很怪,如下圖所示
接著我嘗試了一張曝光的照片進行均化


經過均化後右邊的圖片顏色變的比較深,不過在圖片天空的部分卻出現格子狀,感覺起來均化後的照片沒有比較好看,感覺未經過均化的照片在色彩配置上比較正常。





心得:在寫這次作業的開始,了解了直方圖均化的原理及演算法,不過在實際打程式還是面對到許多問題,雖然在直方圖的計算和累加直方圖去處以象數點部分有寫出來,不過在其他部分參考了網路爬文和作業網站學長姐的作業,還是有許多錯誤抓不出來,這部分很多是由同學的協助才完成的,在圖片顏色資訊和X和Y座標的顯示算是在這次作業比較順利完成,在完成這次作業後,發現自己程式的BUG都是出錯在一些定義的宣告上,常常少了一些定義最後結果就呈現空白,不過透過這次的作業也算是把BCB好好的重新學習一次,而透過這次作業雖然遇到問題到最後還是無法靠自己邏輯能力寫出來,不過透過作業網站爬文也了解滿多程式語法為什麼要這麼寫,自己也嘗試把一些語法刪掉測試看看出錯的影像,像是lineto或moveto,如果沒有把畫直方圖的起始位置和延至的位置定義出來,在最後呈現會出現空白的畫面。

沒有留言:

張貼留言