У меня есть буфер unsigned char*
, содержащий данные jpeg-изображения. Я хотел бы отобразить это изображение с помощью С++ и opencv. Если я сделаю:
Mat img(Size(640, 480), CV_8UC3, data);
namedWindow("image", 1);
imShow("image", img);
Я получаю шумный шум пикселей.
Я предполагаю это, потому что данные jpeg (с заголовком). Потому что это работает:
Mat imgbuf(Size(640, 480), CV_8UC3, data);
Mat img = imdecode(imgbuf, CV_LOAD_IMAGE_COLOR);
НО я не могу использовать функцию imdecode, как это из highgui.h, которая основана на GTK 2, и в моем проекте я использую GTK 3.
Итак, как я могу отобразить данные буфера? Есть ли способ декодировать jpeg-образ, отличный от imdecode в opencv, если это проблема. Я действительно не хочу, чтобы перестроить opencv с помощью Qt...
Любые другие предложения?
(с использованием Linux)