2010年1月1日 星期五

HW4



這次作業是完成乘冪律(Gamma)轉換程式實作
主要還是套公式
s = c * r ^ γ
-----------------
s 是經過 gamma轉換後的值
c 與 r 都是正值常數
不過 r是由使用者輸入
只要會抓值帶入公式其實不是太困難
後來才發現c這個常數
是為了調整色彩值介於0-255之間
把圖片色彩值0-255 都丟回代公式完後的陣列
大概就完成了
gamma=1.5





gamma=2 眼神更深邃



---------------------------1/19(補)


這個作業是gamma校正
目的是讓影像對比度增加
雖然有公式可以套 S=C*R^Gamma
可是c不能設為1 , 但是又要把像素值設在0.255之間
一開始把c寫成1時 , 出來的有點糟糕 , 顏色根本亂掉
在寫之前 還有天真的想法
用 min(s,255) 這樣就0到255 ... 圖片變成很白

尤其是gamma超過3時
後來參考同學的 才知道c值 要套
c = 255/(255^Gamma)

把程式約分約一約就
int (pow(i,gamma)/pow(255,gamma-1));

也就是 i^gamma /255^(gamma-1)
這樣就顏色就不會亂了

另外還學到了StrToFloat(Edit1->Text)
因為有用到浮點數輸入(有小數點) 這是我中間有點小錯誤的地方
很多影像播放器都有對比度調整的功能
我想原理應該就是這樣子
可是為什麼套公式就可以增加對比度?(gamma>1)
應該是色彩值套公式後值增加 讓影像看起來
rgb值比原本的"差值"更多 (猜的)

沒有留言:

張貼留言