2014年11月30日 星期日

資工四乙 00360771 張祺 HW3


作業三: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

沒有留言:

張貼留言