Mam bufor unsigned char*
zawierający dane obrazu jpeg. Chciałbym wyświetlić ten obraz za pomocą C++ i opencv. Jeśli to zrobię:opencv odczytanie obrazu jpeg z bufora
Mat img(Size(640, 480), CV_8UC3, data);
namedWindow("image", 1);
imShow("image", img);
Dostaję hałaśliwy bałagan pikseli.
Przypuszczam, że to dlatego, że dane to jpeg (z nagłówkiem). Ponieważ to działa:
Mat imgbuf(Size(640, 480), CV_8UC3, data);
Mat img = imdecode(imgbuf, CV_LOAD_IMAGE_COLOR);
ale nie można korzystać z funkcji imdecode jak to jest z highgui.h która jest oparta na GTK 2, a w moim projekcie używam GTK 3.
Więc, jak mogę wyświetlić dane bufora? Czy istnieje sposób dekodowania obrazu jpeg innego niż imdecode w opencv, jeśli to jest problem. Naprawdę nie chcę odbudować opencv z Qt ...
Jakieś inne sugestie?
(Korzystanie Linux)
nie można użyć 'libjpeg' do dekodowania i być z nim zrobić? na czym polega problem z tym? – mmgp
@mmgp postaram libjpeg, tylko, że nie mogłem zrobić to samo, bez dołączania innej biblioteki – Matekk
opencv nie ładuje obrazu JPEG, jeśli nie nie ma "libjpeg", więc nie ma dołączonej żadnej innej biblioteki. – mmgp