作業三:Level and Curve
借由Level 與 Curve 進行相片色彩的調整
一開始,先將原圖輸入。
借由設定inputmin,inputmax,outputmin,outputmax將圖片做色彩調整
若輸入值小於inputmin則將它直接設為outputmin,
若輸入值大於outputmax則將它直接設為outputmax。
將計算之結果存至iLevelsTable[i]之中。
點下button之後,會依剛剛設定的值去對圖片做色彩的調整。
curve的部分
先將使用者輸入的點(X,Y)儲存。
iS = X;
iT = 255 - Y;
在將其點,作curve的運算。
fCoeA = (
float
)( iT - iS ) / ( iS*iS - 255 * iS );
fCoeB = (
float
)(1 - fCoeA * 255 ) ;
iCurveTable[i] = (
int
)(( fCoeA * i * i + fCoeB * i) + 0.5);
要注意所計算出的值,若超出範圍,就要將其設定在範圍內。
if
(iCurveTable[i] > 255)
iCurveTable[i] = 255;
if
(iCurveTable[i] < 0)
iCurveTable[i] = 0;
點在左上角的部份會使圖片變亮,點在右下角的部份則會使圖片變暗。
第三次作業心得:
借由此次作業,學到
1. 畫出level之圖形
2. 依level之數據更改原圖的色彩
3. 依使用者的點,畫出curve
4. 依curve之數據更改原圖的色彩
https://www.dropbox.com/s/pwsgpigdvnx0knk/Unit1.cpp?dl=0
https://www.dropbox.com/s/pwsgpigdvnx0knk/Unit1.cpp?dl=0