2011年10月28日 星期五

Homework 1: 直方圖顯示與直方圖均化處理

本次程式基本介面






Part a. 用 C++ Builder 將一張影像的直方圖與其相關基本訊息顯示出來。

pic1 關渡河岸 傍晚景色






pic2 室內人像照








Part b. 用 C++ Builder 將一張對比不明顯的影像用直方圖均化處理後, 重新顯示出來。

pic1

處理前


處理後



pic2

處理前


處理後





Part c. 心得與討論

  還記得第一堂課有探討過 "照片跟影像有何不同" 的題目,聽完老師的說明後才了解到,絕大部分是跟解析度很有關係,在IPC這堂課之中,未來會學習到很多影像處理程式撰寫的技巧,這些程式都可以讓我們將相片改變成自己所想要的最佳化效果再將它儲存起來使用。

  在這次的作業之中,老師引導大家的想法其實並不是太難,上課聽講時也都還跟得上,但或許是在演算法方面並沒有那麼在行,也可能是太久沒有使用BCB軟體撰寫程式,這次作業的完成時間才會這麼緩慢,同時也帶有許多疑惑,但幸好有把程式寫出來,雖然這應該是滿基本且不難的程式,可是在這次的程式作業之中仍然還是有學到東西。

  直方圖部分內,我將圖片分成兩種顯示模式,一種是三個顏色各自分開,另一種則是三個顏色和在一起。在直方圖的程式碼中,利用兩個for迴圈加上ScanLine去畫出直方圖。兩張不同的圖片,可清楚的看出色彩值的不同。

  而均化程式部分,利用累積統計圖(cdf)以及產生新舊色彩對照表,再將周圍的色彩平均化之後,以ScanLine的方式將舊色彩值換成新的色彩值,我用了許多圖片測試均化的效果,最後選定這兩張圖片放在部落格上,以風景照這張而言,均化程式之後,可以看出較為明亮的效果,將原本已經是利用最簡單的方法在傍晚拍出的照片,改成一張像是利用相機特殊效果拍出的圖片。而人像圖則是非常讓我失望,原本以為即使均化之後的效果也會跟風景照一樣不錯,結果過於明亮的效果,反而讓這張照片有過曝的感覺,雖然如此,但均化程式可以讓人臉變得比較清晰這一點卻是一個不錯的要素。

  這是IPC課程的第一個作業,在演算法與影像處理之中,我還是有很多不會的部分,但有鑒於之前數位媒體導論上課時學到了不少,所以接下來的課程我也會盡力讓我的演算法變好,思考程式碼能再清楚一點,讓之後的作業能夠準時交出並完整真正的理解程式。

沒有留言:

張貼留言