2013年12月14日 星期六

HW2

PS Levels
這是原圖!input和output都是RGB色彩的最大和最小值。
至於畫線就很麻煩了,以做標來說,點(0,0)位置是左上角,和以往習慣的(0,0)在左下角不一樣,讓我在適應的時候有點辛苦 。
程式碼:
for (i=0;i<256;i++)
        {
        if ( i <= iInputMin)
            iLevelsTable[i] = iOutputMin;
        else if ( i >= iInputMax )
            iLevelsTable[i] = iOutputMax;
        else
            {
            iInputInterval = iInputMax - iInputMin;
            iOutputInterval = iOutputMax - iOutputMin;
            iLevelsTable[i] =  iOutputMin + (int)((float) iOutputInterval * (i - iInputMin) / iInputInterval + 0.5) ;
            }
        }
        Image6->Canvas->Brush->Color = clWhite;
        Image6->Canvas->FillRect(Rect(0,0,256,256));
        Image6->Canvas->Pen->Color = clBlue;
        Image6->Canvas->MoveTo(0,255-iLevelsTable[0]);
        for (i=1;i<256;i++)
            Image6->Canvas->LineTo(i,255-iLevelsTable[i]);
前面作大於小於的判斷,中間做確認對於每一點的位置(有公式),最後把線畫出來,而且我是設對於值有所改變時就線就會跟著改變,

像這樣式改成input min為50,output max為200,這個意思是色彩值大於200的一律變成255,小於50的疑慮設為0,這樣就會亮的更亮,暗的更暗了
Curve曲線
這個是畫曲線,老實說我還不太了解園裡是甚麼,只知道也是用公式去求出值來。
-------------------------------------------------------------------------------------------------------------------------
Histogram直方圖
 
這是上面的圖把RGB分別數值化,再用線條呈現,可勾選要顯示何種顏色
這是把數值比例調大之後的,能夠明顯看出差距

沒有留言:

張貼留言