圖像是視覺信息的直接反應,圖像呈現出各種各樣的特效都是通過圖像的基本運算來完成的。圖像最基本的運算有三種,分別是scale,rotation 和translation,叫做尺度,旋轉和平移。很多圖像的特效都可以用這三種基本運算來實現。可以對像素值或者像素的坐標做這些運算來達到特定的效果。
像素有兩個屬性,一個是像素的值,一個是像素的坐標。像素的值記錄了像素的強度信息,像素的坐標記錄了像素的空間信息。
先考慮對像素值的三種運算。(這里假設像素的取值范圍為 0-1)。
scale: 對像素值做scale,相當於對圖像做增強(scale 大於1)或者減弱 (scale 小於 1)。
rotation:像素值的旋轉不好理解,但是可以想象 0-1 的區間不是一條直線,而是一個圓,將0-1的區間分成等弧 度的很多份。像素值的旋轉,就相當於在圓周上做translation,這種處理的好處之一在於,像素值永遠不會超出 0-1 的取值范圍,因為旋轉具備周期性。
translation:對像素值做平移,可以認為是對圖像強度整體的提升或者減弱。
對像素坐標的三種運算:
scale:對圖像坐標做scale,相當於對圖像做縮放。
rotation: 對圖像坐標做rotation,就是對像素點做旋轉。
translation: 對圖像坐標做translation,就是以某個軸做翻轉進而改變像素點的相對位置。
對圖像坐標的運算,會涉及到插值的問題,因為新的坐標不一定是整數,所以需要用新坐標周圍的像素點來計算新坐標的像素值。而一般的插值會用雙線性插值,並且利用逆向運算。
事實上,PS中的很多圖像特效和圖像調整算法都是基於這三種基本運算對像素值或者像素坐標的操作來實現的。比如圖層的混合原理,可以理解為對圖像的像素值做了scale和translation。利用這三種運算,經過精心的設計,就可能創造出很多有趣的圖像特效。