色階調整功能 與 曲線調整功能
「色階與曲線的調整」是我在Photoshop裡常使用的功能。透過這次實作程式,讓我了解Photoshop 裡色階與曲線調整功能的原理,才發現原來之前都是隨性的調整。
首先,色階的調整是點處理,主要分成輸入色階與輸出色階,所以可以用函數的圖形來表示,下圖為未做任何處理,由函數圖形可以看出輸入值和輸入值完全相同。
現在實作調整,假設將輸入下界設定成 100,輸入上界設定成 160,輸出下界設定成 80,輸出上界設定成 240,透過下圖公式推導出原始色階調整後的色階。例如,當輸入的像素色彩值為 100 時,其輸出值將被調整為 80 。
下圖公式分別代表:
輸入下界 = iInputMin ,輸入上界 = iInputMax
輸出下界 = iOutputMin ,輸出上界 = iOutputMax
原始色階 = iInput ,調整後色階 = iOutput
下圖為色階調整後的圖片與函數的圖形,和在Photoshop裡的調整相同。
接下來是曲線的調整,曲線調整功能與色階調整功能最大的差別在於出現在函數圖形中的線條變成曲線,不限於直線。本實作只示範使用者拖曳一個點的二次拋物線曲線的函式。下圖為未做任何處理前。
假設使用者所拖曳出來的點位於座標(S,T),代入下圖的曲線方程式轉換出y值,超出色階表示範圍[0,255],必須將y值強制設定為0或255。
下圖為曲線調整後的圖片與函數的圖形
這次作業遇到的問題是使用TImage.OnMouseDown 事件,從下面這個網站了解到要觸發這個事件需要先有panel物件。
下圖公式分別代表:
輸入下界 = iInputMin ,輸入上界 = iInputMax
輸出下界 = iOutputMin ,輸出上界 = iOutputMax
原始色階 = iInput ,調整後色階 = iOutput
沒有留言:
張貼留言