我从手机的摄像头上得到了一块垫子(320x480)。然后,我需要处理该框架的一部分。我为此使用ROI:

mat2 = new Mat(width, 175, CvType.CV_8SC3);
Rect roi = new Rect(75, 0, 175, 320);
mat2 = new Mat(mat1, roi);

现在,我想创建一个黑色背景尺寸为320x480的新垫子。我怎么做?

然后,我想将处理后的ROI复制到新垫子上与第一个垫子相同的位置。我怎么做?

我正在使用OpenCV 3.4.6和android studio。

先感谢您

最佳答案

您只需要从原始submat()(您的相机框架)中对ROI进行Mat,然后将submat处理为普通的Mat即可,但是如果希望原始效果生效,请不要克隆sumbmat

根据评论更新:

Mat originalMat = someMat;
Mat blackMat = Mat.zeros(size, CvType.CV_8UC1); // it is your black mat
// create a submat from the original mat, and clone it
Mat roiMat = originalMat.submat(rect).clone();

..... // do what you want with roiMat

// now copy the result to the original mat
Mat dst = originalMat.submat(rect); // do not clone this submat
roiMat.copyTo(dst);
// done!

10-06 11:14