2015年10月30日 星期五

02360156_鄭宇哲_直方圖與直方圖均化

關於我寫的程式,相當的簡單,如下圖
此為範本(來源:google搜尋  home.chosun.ac.kr)

程式執行成功後,點擊左邊的圖板變可讀進圖片或者左上角的File->Open,相當的人性化!!

而右方會顯示該圖的直方圖,此為一般直方圖,而此範本圖片為512*512 有262,144個點~
由於要計算最高值會有點麻煩,還要再花額外時間去做計算,我這邊就娶個大概的值去把它做簡單的縮放。

做到這邊基本上還沒有甚麼問題,不過之後再做均化的時候碰到了一些問題!!
就是均化後int不吃小數點 結果所顯示出來的值全部變為0,看到都傻了,不過之後我想到了一個方法就是先做"乘"的動作之後再做"除"的動作,就可以避免先除了之後數字都變為0,乘上去之後也是0的結果!!
雖然我記得老師是使用小數點double的樣子,不過似乎不用到這麼麻煩,把乘除的順序做個顛倒就可以達到那種效果了!!

以下是直方圖均化的後的圖片樣子:

右下角看到的是直方累積圖 
而右邊的直方圖變低是因為我正在測試其他式子來讓比例合適一些

圖片整個就是一個暖色系變為一般的照片個感覺!!
突然感到我也可以賣相機去拉~~
做這個作業的時候主要麻煩到我的就是直方圖的比例問題,還有做直方圖均化的小數點問題,第一個問題我就沒特別去解決,因為想到還要額外幾個迴圈去找出每一個直方圖的最大值,而第二個問題應該算是圓滿解決,就算前面計算沒用到小數點也沒差,因為顏色在BMP下255只能有整數所以差那1點顏色值的差距人眼看不出來的!!而且計算的精準也未必有良好的效果,但是個人認為最痛苦的事情就是...學校電腦真的真的好慢好慢,我真的很怕他當機...
趕快上傳弄一弄趕快結束這個恐怖的作業,改天在家裡下載BCB XE2好了,不然也做得很痛苦~ 不過這均化真的差好多,一個感覺就是兩張不同圖片,不過處理後有些相同顏色的點點變多了,似乎還是沒辦法把它完全變成正常顏色的圖片,也許是256*256*256個顏色無法表達全部的色彩吧,從這邊應該就是256色值的極限了,
對了...還有清除畫布的問題
Image2->Picture=NULL;
感謝柯明男提供!!

程式碼:點進來~~~

沒有留言:

張貼留言