opencv lire l'image jpeg à partir du tampon

J'ai un unsigned char* tampon contenant les données d'une image jpeg. Je voudrais afficher l'image à l'aide de c++ et opencv. Si je fais:

Mat img(Size(640, 480), CV_8UC3, data);
namedWindow("image", 1);
imShow("image", img);

- Je obtenir un désordre bruyant de pixels.

Je suppose que c'est parce que les données sont au format jpeg (avec un en-tête). Car cela fonctionne:

Mat imgbuf(Size(640, 480), CV_8UC3, data);
Mat img = imdecode(imgbuf, CV_LOAD_IMAGE_COLOR);

MAIS je ne peux pas utiliser le imdecode fonction que c'est à partir de highgui.h qui est basé sur GTK 2, et dans mon projet j'utilise GTK 3.

Alors, comment puis-je afficher le tampon de données? Est-il un moyen pour décoder l'image jpeg, autres que imdecode dans opencv, si c'est ça le problème. Je n'ai pas vraiment envie d'avoir à reconstruire opencv avec Qt...

Toutes les autres suggestions?

(À L'Aide De Linux)

source d'informationauteur Matekk