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分別數值化,再用線條呈現,可勾選要顯示何種顏色
這是把數值比例調大之後的,能夠明顯看出差距