Я почти там, но я не совсем понимаю, как конвертировать
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);
но изображение черное, поэтому мне нужно выяснить, есть ли там что-нибудь или нет.
Извините за отсутствие исследований, я в сжатые сроки, нет, это не домашняя работа, пытаясь подготовить что-то, чтобы показать результаты профессору!
Вы должны использовать Коврик конструктор с указателем на данные:
// 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*
и после этого используйте его.
может быть, вам следует удалить *
в
cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);
сделать это так:
cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, output);