colormatrixfilter--顏色矩陣濾鏡(flash.filters.colormatrixfilter)在顆粒等級上提供給你更好的控制方法。colormatrixfilter為4行5列的多維矩陣(20個元素的陣列)。圖1是與colormatrixfilter等同的矩陣:
紅,綠,藍通道的值由如下所示計算方法所決定:
code:
redresult =a[0] * srcr + a[1] * srcg + a[2] * srcb + a[3] * srca + a[4]
greenresult = a[5] * srcr + a[6] * srcg + a[7] * srcb + a[8] * srca+ a[9]
blueresult = a[10] * srcr + a[11] * srcg + a[12]* srcb + a[13] * srca + a[14]
alpharesult = a[15] * srcr + a[16] * srcg + a[17] * srcb + a[18] *srca + a[19]
可以看出,第一行的值決定了紅色值,第二行決定綠色,第三行藍色,第四行是透明(alpha)通道值。同樣可以看出首四欄值是與紅,綠,藍,alpha通道值的乘積,而第五欄的值分別是和(偏移量)。注意每行的源值和結果值都是在0到255的區間內。因此即使各個通道的值小於0或大於255都會被強制到該區間內。我來舉些例子說明它的原理。
如果你想在紅色通道加100(偏移量),將a[4]設定為100,如圖2:
如果想使綠色通道加倍,將a[6]設為2,如圖3:
如果你要使結果影象中的藍色與原圖的紅色數量相等,將a[10]設為1, a[12]設為0 ,如圖4:
改變影象的亮度,你需要在每個顏色通道的值改變同樣的數量。最簡單的途徑是在每個通道都設定相同的偏移量。偏移量為正時可以增加亮度為負時可以減小亮度。圖5是乙個增加亮度的例子:
你也可以通過將每個顏色通道與乙個值相乘按比例的改變亮度,大於1的增加亮度小於1減小亮度。
按照原理,將影象轉換為灰度圖,你需要將每個通道的部分設為等值。因為有三個通道,你可以將每個通道乘以0.33並將它們相加得到結果值。如圖6:
由於不同顏色通道的相對螢幕發光度,但是確實有特殊的提供更加真實的灰度圖的「亮度係數」值。例如在ps裡建立乙個純綠色塊然後把它放在乙個純藍色塊,然後將影象灰度化,你會看到原來綠色的地方的灰色會比原來藍色的區域要亮。
在flash裡使用這些矩陣,建立乙個colormatrixfilter的例項然後將它加入到乙個影片剪輯(movieclip)例項上。下面是乙個使綠色加倍的例子:
code:
import flash.filters.colormatrixfilter;
var mat:array = [ 1,0,0,0,0,
0,2,0,0,0,
0,0,1,0,0,
0,0,0,1,0 ];
var colormat:colormatrixfilter = new colormatrixfilter(mat);
mc.filters = [colormat];
colormatrixfilter
ColorMatrixFilter 顏色矩陣濾鏡
colormatrixfilter 顏色矩陣濾鏡 flash.filters.colormatrixfilter 在顆粒等級上提供給你更好的控制方法。colormatrixfilter為 4行5列的多維矩陣 20個元素的陣列 圖1是與colormatrixfilter等同的矩陣 圖1.與colorm...
常用ColorMatrixFilter收集
2012 05 24 14 23 49 分類 flash 舉報 字型大小訂閱 黑白0.3086,0.6094,0.0820,0,0 0.3086,0.6094,0.0820,0,0 0.3086,0.6094,0.0820,0,0 0 0 0 1,0 對比度 n取值為0到10 n,0,0,0,128...
python計算一 二 三階顏色矩
path為需要讀取的路徑 img image.open path m,n img.size r,g,b img.split rd np.asarray r gd np.asarray g bd np.asarray b return rd,gd,bd 分別計算一二三階顏色矩 r通道的一階顏色矩 rd...