char без знака ** в opencv mat

Я почти там, но я не совсем понимаю, как конвертировать

unsigned char ** to a cv::Mat

Я знаю, что .data часть cv :: Mat это uchar *

Я использую функцию, которая возвращает и изображение в виде …

unsigned char ** output;

Но остальная часть моего кода использует cv :: Mat’s. У меня нет источника для библиотеки, которую я использую, так что не знаю, что она делает.

редактировать
Спасибо за помощь, ребята, я сделал это …

cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);
imshow("this is a test",TempMat);

но изображение черное, поэтому мне нужно выяснить, есть ли там что-нибудь или нет.

Извините за отсутствие исследований, я в сжатые сроки, нет, это не домашняя работа, пытаясь подготовить что-то, чтобы показать результаты профессору!

5

Решение

Вы должны использовать Коврик конструктор с указателем на данные:

 // constructor for matrix headers pointing to user-allocated data
Mat(int _rows, int _cols, int _type, void* _data, size_t _step=AUTO_STEP);
Mat(Size _size, int _type, void* _data, size_t _step=AUTO_STEP);

Вы должны конвертировать void** в void* и после этого используйте его.

8

Другие решения

может быть, вам следует удалить * в

cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);

сделать это так:

cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, output);
1

По вопросам рекламы [email protected]