2016年12月25日 星期日

05362631 趙宏鵬 HW03

作業內容:色階與曲綫調整
一、Levels
levels的重點是按照函數處理色階值。
步驟:
1、首先設定iInputMin、iOutMin、iInputMax與iOutputMax。
2、利用雙層回圈,遍歷所有的色階值,原像素的色階值為iInput,當iInput小於iInputMin時,iOutput=iOutputMin。當iInput大於iInputMax時,iOutput=iOutputMax。當iInput在iInputmin與iInputMax之間時,公式為:
3、將更改色階後的圖片顯示出來。
實現圖:

二、curve

curve與levels類似,只是色階轉換的函數不同,curve的色階調整函數是一個二次函數。
1.二次函數的計算
首先需要通過滑鼠的點擊,將一次函數轉換成二次函數。(S,T)為滑鼠點擊的點,轉換公式為:
2.通過兩層回圈,遍歷各像素的色階值,按照公式對其進行調整。
實現圖:
原圖
偏亮

偏暗
三、心得
  levels和curve是很相似的,只是其色階調整的函數有所不同。curve中當滑鼠點的點x>y時,畫面變暗,當x<y時,畫面變亮。可以通過該操作,實現對畫面亮度的調節。
  curve有兩點需要注意,第一個是色階調整函數給出的結果需要在0-255之內,當小於0時改為0.大於255時改為255.第二點是程式碼中進行計算的參數必須是float類型,因為運算中有很多平方和立方運算,如果是整數類型會損失很多精度,造成畫面效果失常。還有就是老師的ppt中有一個錯誤,ppt中給出的函數為:
正確的函數應該為:


沒有留言:

張貼留言