unsigned char ** to opencv mat
c++, double-pointer, image-processing, opencv
Solution
You have to use Mat constructor with a pointer to data:
// 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);
You have to convert `void**` to `void*` and after this use it.
Problem
I'm almost there but I can't quite understand how to convert ``` unsigned char ** to a cv::Mat ``` I know that the .data part of a cv::Mat is uchar* I'm using a function that returns and image in the form of... ``` unsigned char ** output; ``` But the rest of my code uses cv::Mat's. I don't have the source for the lib I'm using either so don't really know what it's doing. Edit Thanks for the help guys, I've done this... ``` cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output); imshow("this is a test",TempMat); ``` but the image is black so I now need to find out if there's actually anything there or not. Sorry for lack of research i'm on a tight deadline, no it's not homework, trying to get something ready to show results to a Professor!