我是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"。
答案 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;
}