Как конвертировать Mat в cvMat в OpenCV 3.0

Как я могу конвертировать OpenCV Mat Возражать cvMat объект?

Согласно этому документу о совместимости OpenCV ( 1), это преобразование должно быть возможным. Но при объявлении cvMat, компилятор выдает ниже сообщение об ошибке в строке cvMat deprecatedImg

: ошибка: <ожидается ';' до 'deprecatedImg'>,

Как это исправить?

1 ответ

Решение

В OpenCV 3 и выше вы должны использовать заголовки совместимости (types_c.h) для использования устаревших объектов C, таких как cvMat, В OpenCV 3.0 CvMat имеет конструктор, который принимает Mat( 1) Код как ниже.

#include "opencv2/core/types_c.h"
cv::Mat img = ... ;
CvMat deprecatedImg(img);

В OpenCV 2.4.* И ниже Mat в CvMat оператор преобразования ( 2) существует, и вы можете просто назначить Mat в CvMat как ниже. Обратите внимание, что этот оператор преобразования больше не существует в OpenCV 3 и выше.

Mat img = ...;
CvMat cvMatImg = img;
Другие вопросы по тегам