2010年11月5日 星期五

Homework1

作業一:將一張彩色影像轉成灰階影像後,再對灰階影像進行色彩亮化處理,分別用128色、64色、32色、16色、8色、4色、2色(黑白影像)顯示

---------------------------------------------------------







原圖













灰階











128色












64色












32色














16色












8色















4色














2色







心得:

做這份作業時,在星期五上課前,我看到這題目,我原本是以為把調色盤的迴圈部分,看他要幾種顏色就跑幾次,所以我在家裡試的時候,怎麼跑都跑不出來,當時以為我問題出在,不會把Timage所新增的原件用成全域變數,所以一直在改這部分,也一直用任何方法嘗試,結果還是不行。

而今天去上課後,看到老師一開始講的演算法,才知道我原本以為的都是錯的,原來是這麼一回事,知道說怎麼去算他每隔的間距,和每隔間距應該要採用的像數是多少,而一開始我也卡在不知道說轉灰階後的圖片中,每一點的像數要怎麼取出來,一直在RGB裡面打轉,之後才知道bPtrImageRow2[i]這行,利用迴圈他可把每一點像數放在裡面,因此才可以進行下面的if作法,而我是先在紙上算出來,在把它每段範圍用一個if給他判斷要給他什麼顏色。














而if裡面我原本是寫這樣子




後來才知道這樣子是錯的,因為灰階只有一個像數,不需要乘以3。
之後我繼續用這個方法繼續打接下來的4色、8色、16色,到了32色覺得if越來越多,但又找不到他的規律,也不會用for迴圈,本來想硬拼的,好險老師在下課前幾分鐘,教我們用調色盤的方式,真的是簡單許多,只要用下面幾行,先算每段的距離,再算每段所要取的顏色,之後用一個陣列立刻幫你做完,而只要在調色盤那調整過,其他都一樣,因此程式變得簡單多了。
















雖然這次的作業不是自己想出來這樣子打,不過在這兩堂課中,透過和朋友的討論,加上老師的指導,我有學到東西,也知道怎麼去計算。

沒有留言:

張貼留言