OpenCV4 Android Mat от Unity WebCamTexture - PullRequest
       1

OpenCV4 Android Mat от Unity WebCamTexture

0 голосов
/ 17 декабря 2018

В игровом движке Unity я пытаюсь передать данные из WebCamTexture в собственный плагин C ++, связанный с OpenCV4Android на Android.Я пытался следовать этому уроку , но что-то идет не так, когда я строю Мат.Когда я пытаюсь использовать его при вызове cvtColor, утверждение терпит неудачу для s> = 0 в setSize.Я добавил утверждения сразу после конструктора, чтобы проверить, являются ли строки или столбцы отрицательными, и это только строки.

Это код C ++:

JNIEXPORT void JNICALL Detect(
    JNIEnv* env, jobject jobj, Color32* rawImagePixels, jint imageWidth, jint imageHeight, jint maxDetectedShapes, jintArray outDetectedShapesCountSingleArray, jintArray outPointsPerShapeArray)
{
    Mat frame(imageHeight, imageWidth, CV_8UC4, rawImagePixels);
    assert(frame.cols >= 0);
    assert(frame.rows >= 0);

    vector<vector<Point>> contours;
    // Convert the frame to grayscale for contour detection.
    Mat grayscaleFrame;
    cvtColor(frame, grayscaleFrame, COLOR_BGR2GRAY);
    Mat resizedGray;
}

Это код C #:

public void TestLibCall()
{
    if(phoneCameraDisplay.camAvailable)
    {
        Color32[] rawImagePixels = phoneCameraDisplay.RenderingCameraTexture.GetPixels32();
        Array.Reverse(rawImagePixels);
        Debug.Log("Input:" + phoneCameraDisplay.RenderingCameraTexture.width + "|" + phoneCameraDisplay.RenderingCameraTexture.height);
        OpenCVInterop.Detect(rawImagePixels, phoneCameraDisplay.RenderingCameraTexture.width, phoneCameraDisplay.RenderingCameraTexture.height, _maxShapeDetectCount, ref _detectedShapesCount, _pointsPerShape);
    }
}

Ширина и высота WebCamTexture являются положительными числами, когда я их отлаживаю.Не поменять массив Color32 тоже не помогло.Кто-нибудь знает, какая ошибка при построении матрицы OpenCV может привести только к отрицательным строкам?Спасибо.

[Edit:] Я добавил дополнительные утверждения перед конструктором Mat, и jint imageHeight не больше или равен 0, несмотря на то, что он равен 1080 в соответствии с Debug.Log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...