Передача массива Mat из EmguCV в OpenCV? - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь отправить объект EmguCV Mat из C# в функцию DLL OpenCV C ++. Мои исходные данные находятся в массиве byte [], а затем я преобразую их в объект Mat.

Я получаю сообщение об ошибке в строке, которая вызывает мою функцию C ++: Ошибка CS0029 Не удается неявно преобразовать тип 'int' to 'Emgu.CV.Mat'

Я не уверен, как я должен передавать свои данные из кода C# в функцию C ++.

Вот мой код C#:

 private void image_algorithms(byte[] buffer, int width, int height)
        {
            int grid_count = 5;
            int grid_width = width / grid_count;
            int grid_height = height / grid_count;
            MyImage = new Image<Gray, byte>(width, height);
            MyImage.Bytes = buffer;

            Mat image_pre_crop = MyImage.Mat;
            //calling C++ function here
            Mat croppedImage = crop_image(image_pre_crop);

        }

Моя функция C ++ выглядит так:

Mat crop_image(Mat image) {

    bool fromCenter = false;
    namedWindow("Crop frame", WINDOW_NORMAL);
    Rect2d r = selectROI("Crop frame", image, fromCenter);
    Mat imgCrop = image(r);

    return imgCrop;

}
...