I have a byte array that represents a .jpg file that I want to convert directly to an OpenCV Mat object.
I have something like
byte* data; // Represents a JPG that I don't want to disk and then read.
// What goes here to end up with the following line?
cv::Mat* image_representing_the_data;
the previously mentioned method will work fine, if it's PIXEL data.
if instead, you have a whole jpg FILE in memory, headers, compression, and all, it won't work.
in that case you want:
which will do the same as
imread()
, only from memory, not from a filenameas @bob mention, this can be done using the Mat constructor.
After you have created this matrix, call the reshape function with the number of rows in the image.
the parameter "flag" refers to the type of image, grayscale, color, any depht .. that has opencv defined