Ho un buffer unsigned char*
contenente i dati di un'immagine jpeg. Mi piacerebbe mostrare quell'immagine usando C++ e opencv. Se lo faccio:opencv legge l'immagine jpeg dal buffer
Mat img(Size(640, 480), CV_8UC3, data);
namedWindow("image", 1);
imShow("image", img);
Ottengo un caos rumoroso di pixel.
Suppongo che sia perché i dati sono jpeg (con un'intestazione). Perché questo funziona:
Mat imgbuf(Size(640, 480), CV_8UC3, data);
Mat img = imdecode(imgbuf, CV_LOAD_IMAGE_COLOR);
ma non riesco a utilizzare la funzione imdecode quanto è da highgui.h che si basa su GTK 2, e nel mio progetto che uso GTK 3.
Così, come posso mostra i dati del buffer? C'è un modo per decodificare l'immagine jpeg diversa da imdecode in opencv, se questo è il problema. Non voglio davvero ricreare opencv con Qt ...
Altri suggerimenti?
(Utilizzo di Linux)
non è possibile utilizzare 'libjpeg' per la decodifica e da fare con esso? Qual è il problema? – mmgp
@mmgp cercherò libjpeg, solo pensato che avrei potuto fare il stessa cosa senza includere un'altra libreria. – Matekk
opencv non caricherà l'immagine jpeg se lo fai non ha 'libjpeg', quindi non ci sono altre librerie incluse. – mmgp