2016-10-16 8 views
-2

OpenCVコードの新機能です。私はプロジェクトに取り組んでおり、3つの異なるコンポーネントでビデオ信号を分割する必要があります。私はすでにマットオブジェクトのようなビデオ信号のRGBマトリックスを取得しています。しかし、私はこの方程式を作るためにこのmrgbaマットを整数に変換する必要があります:OpenCVのMatオブジェクトをintに変換するには?

ExG = 2 * g - r - b; Exceso de Verdes Woobeke 1995

主なもの(mrgba)を分割した後、3つの行列R、G、Bで直接操作することもできますが、これらの行列のサイズはわかりません。それらと一緒にこの方程式を作る。

どのようにこの問題を解決するためのアイデアですか?

これは私のコードの一部です:

@Override 
    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { 

     mrgba = inputFrame.rgba(); 



     Mat r =new Mat(); 
     Core.extractChannel(mrgba, r, 0); 
     Mat g =new Mat(); 
     Core.extractChannel(mrgba, g, 1); 
     Mat b =new Mat(); 
     Core.extractChannel(mrgba, b, 2); 


     return mrgba; 
    } 

私は今3つの異なるマトリックス、チャネルごとに1 "R"、 "G" と "b" を持っています。

+0

私たちは、あなたが不足している何を助けたり、変更する必要ができるように、あなたのコードを共有してください... –

+0

私はちょうど私のコードが含まれています:ここでは、コードです。前もって感謝します。 –

答えて

0

Opencvは行列式をサポートしています。

@Override 
    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) { 

     mrgba = inputFrame.rgba(); 
     Mat r =new Mat(); 
     Core.extractChannel(mrgba, r, 0); 
     Mat g =new Mat(); 
     Core.extractChannel(mrgba, g, 1); 
     Mat b =new Mat(); 
     Core.extractChannel(mrgba, b, 2); 

     Mat result = 2 * g - r - b; 
     return result; 
    } 
関連する問題