Как конвертировать 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;