2015-10-27 41 views
25

我有以下ColorMatrixFilter。但我想用它作爲Subtract-Blend模式的遮罩,而不是直接使用它。我如何去實現這一目標?在Android中使用ColorMatrixFilter減去混合模式?

嘉洛斯:

colorMatrix[ 
     0.393, 0.7689999, 0.18899999, 0, 0, 
     0.349, 0.6859999, 0.16799999, 0, 0, 
     0.272, 0.5339999, 0.13099999, 0, 0, 
     0,0,0,1,0 
      ]; 

回答

0

我不是在計算機圖形學專家,但我假設你想通過你想融合了圖像的每個像素進行迭代,每個像素中心的colorMatrix,計算使用矩陣接觸的周圍像素的平均值,然後將此平均值應用於像素。顯然你會以某種方式需要處理邊緣像素。

例:假設你有一個像素值的5x4的圖像喜歡這樣

1  2 3 4 5 
1 1000 1000 1000 1000 1000 
2 1000 1000 1000 1000 1000 
3 1000 1000 1000 1000 1000 
4 1000 1000 1000 1000 1000 

(1)以像素爲(3,3)位置和應用的變換矩陣 - 即圖像像素(i,j)與矩陣位置(i,j)乘以 - 我們得到

 1  2 3 4 5 
1 393 769 189 0 0 
2 349 686 168 0 0 
3 272 534 131 0 0 
4 0 0 0 1000 0 

(2)現在採取這種轉變的平均 - 即由20加所有的數字和鴻溝 - 我們得到224.5或約225所以我們的新轉換圖像看起來像

1  2 3 4 5 
1 1000 1000 1000 1000 1000 
2 1000 1000 1000 1000 1000 
3 1000 1000 225 1000 1000 
4 1000 1000 1000 1000 1000 

要獲得完整的減法混合,請對每個像素執行此操作。

編輯:其實我認爲上面可能是高斯模糊。

+0

我不認爲你對矩陣有正確的想法。閱讀更多檢查[這](http://math.stackexchange.com/a/532974)的答案。 – RobCo