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!
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.
maybe you should remove *
at
cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, *output);
make it just like this:
cv::Mat TempMat = cv::Mat(h, w, CV_8UC1, output);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With