Копирование небольшого изображения в кадр камеры с помощью OpenCV для Android

В настоящее время я работаю над программой, которая должна нарисовать небольшое изображение на рамке камеры. В Android OpenCV у вас есть следующая функция для обработки кадра:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {

      Mat rgba = inputFrame.rgba();

      mDetector.setFrame(rgba);
      mDetector.processFrame();

      return rgba;
}

Где Mat rgba затем отображается на экране. Мой детектор должен теперь обработать кадр rgba (изменить его). Вот соответствующий код:

public void processFrame() {

    // (1) Doesn't work
    Rect roi = new Rect(0, 0, 100, 100);
    Mat submat = mOutputFrame.submat(roi);
    Mat image =  new Mat(100, 100, CvType.CV_8UC3, new Scalar(0,0,0));
    image.copyTo(submat);

    // (2) Does work 
    // --- mComparatorImage is the same size as mOutputFrame.
    // --- mComparatorImage is 8bit greyscale, mOutputFrame is the rgba CameraFrame
    mComparatorImage = mComparatorHolder.getCurrentImage();
    mComparatorImage.copyTo(mOutputFrame);

    // (3) Should work (but doesn't)
    Imgproc.resize(mComparatorImage, mResizedImageClone, new Size (200, 100));
    Mat bSubmat = mOutputFrame.submat(new Rect(0, 0, 200, 100));
    mResizedImageClone.copyTo(bSubmat); 
}

Я пытаюсь скопировать измененную версию mComparatorImage в кадр камеры, на который ссылается mOutputFrame (mOutputFrame = rgba).

Поэтому я попытался сделать (3). К вашему сведению: mResizedImageClone имеет тип Mat и инициализируется как новый Mat ()

Выполнение (3) не меняет mOutputFrame.

(2) Затем я попытался скопировать весь mComparatorImage (тип Mat и тот же размер, что и mOutputFrame) в mOutputFrame. Это сработало на удивление.

(1) Тогда я подумал, что проблема должна быть в чем-то с submat, потому что копирование большого изображения работает, но копирование его маленькой версии в mOutputFrame - нет. Поэтому я попытался скопировать немного черного изображения в mOutputFrame. Это тоже не работает, хотя я следовал за другими ответами здесь.

В чем может быть проблема? Там нет ошибки, но кадр камеры остается неизменным в (1) и (3)

Если вам нужна дополнительная информация, дайте мне знать.

Это

Ответы на вопрос(1)

Ваш ответ на вопрос