2009年11月27日 星期五

HW4

這次作業的公式:s=cr^gamma
s是經過Gamma轉換過後的新色彩值
c是常數,用來做為調整Gamma轉換過後使其s值範圍介於0~255中
r是色彩RGB的值
gamma是此轉換校正的參數值

程式方面我則是套用上面的公式下去撰寫,
寫好且編譯也都過了,執行的時候畫面卻是"黑色"的,
就覺得奇怪,公式上面都正確,也沒出現錯誤,那為什麼還會這樣,
就一直去重新驗算公式是否有錯誤,但是都沒有錯誤,
接著就想說比較有可能錯的應該是"常數c"這個地方,
就把常數c的數值對應輸入的gamma值用人工方式計算出來,
在寫死帶進去程式裡面去計算s值,結果執行結果竟然正確了,
後來才發現,錯了最不應該錯的地方,那就是宣告!!!!!!
我把常數c宣告成int拉,gamma的地方還記得宣告成float,
c的地方卻宣告錯,真的是超無言的。

以下是執行結果:gamma=1.9

1 則留言:

  1. 變數宣告的問題在你養成把變數型態放進變數名稱之中的習慣後, 就會消失了! 例如:
    int iImageWidth;
    float fGamma;

    回覆刪除