2015-10-27 4 views
25

私は次のColorMatrixFilterを持っています。しかし、私はそれを直接使うのではなく、減算混合モードのマスクとして使用したいと思います。これを達成するにはどうすればいいですか?AndroidでColorMatrixFilterを使用してブレンドモードを減算しますか?

ColorMatrix:

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)を掛ける - 私たちすなわち20ですべての数字と除算を追加 - - (2)今、この変換の平均を取る

 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 

を取得し、我々は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 

完全減算ブレンドを得るには、すべてのピクセルでこれを行います。

EDIT:実際には、上記はガウスのぼかしかもしれません。

+0

私はあなたが行列について正しい考えを持っているとは思わない。もっと読むには[this](http://math.stackexchange.com/a/532974)の答えをチェックしてください。 – RobCo

関連する問題