如何将OpenCV的Mat对象转换为int?

时间:2016-10-16 21:01:49

标签: opencv matrix converter rgb mat

我是OpenCV代码的新手。我正在研究一个项目,我需要在其3个不同的组件中分割视频信号。我已经获得了视频信号的RGB矩阵,例如我们的mat对象。但是,我需要将这个mrgba mat转换为int来制作这个等式:

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

另一种可能性是在划分主矩阵(mrgba)后直接使用三个矩阵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个不同的矩阵,每个频道一个" r"," g"和" b"。

1 个答案:

答案 0 :(得分:0)

Opencv支持Matrix表达式。这是代码:

@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;
    }