LINUX.ORG.RU

[OpenCV] Загрузка изображения из массива байт

 


0

1

Доброго времени суток.

Как лучше всего сделать загрузку изображения с помощью OpenCV не из файла, а из байтового массива. Т.е. есть скажем jpeg, полученный по сети(пусть по TCP) я хочу эту картинку обработать средствами OpenCV. cvLoadImage умеет читать только из файла, а сохранять в файл не хотелось бы(сначала запись, потом чтение, долго в общем)... Какие есть варианты, никто не подскажет?


Ответ на: комментарий от vga

Эм... И к чему это? Как это относиться к чтению изображения(декодирование его из jpeg'a и получение структуры IplImage) не из файла с этим самым jpeg'ом, а из байтового массива с ним же?

Daeloce
() автор топика
Ответ на: комментарий от Daeloce

Тогда другой вариант.
Взять исходники OpenCV и впилить туда возможность загрузки из массива, если ее там все же нет. Но это вариант довольно таки долгий. =)

trex6 ★★★★★
()
Ответ на: комментарий от vga

Не охота конечно использовать недокументированные функции из SVN'ки... Попробую ка руками считать и заполнить IplImage, только вопрос, что означает параметр: widthStep в этой структуре, не знаешь? ТОлько не надо приводить описание из документации, я его читал, но не понял что имеется в виду..:(

Daeloce
() автор топика
Ответ на: комментарий от Daeloce

cvCreateImage должен об этом позаботиться, как я понимаю. Но это размер в байтах одной строки, выровненный, как там и написано. Можно использовать для адресации buf[widthStep*row + col]

vga ★★
()
Ответ на: комментарий от vga

Точнее даже вот так

     b = img->imageData[img->widthStep * row + col * 3]
     g = img->imageData[img->widthStep * row + col * 3 + 1];
     r = img->imageData[img->widthStep * row + col * 3 + 2];

Думаю, идея понятна.

vga ★★
()

Читай через ffmpeg, и после распоковки кидай в структуры openv. Opencv распаковка джипегов не быстро работает. Все остальные варианты, либо с использованием заднепроходного отверстия, либо медленные.

anonymous
()
Ответ на: комментарий от anonymous

Читай через ffmpeg, и после распоковки кидай в структуры openv. Opencv распаковка джипегов не быстро работает. Все остальные варианты, либо с использованием заднепроходного отверстия, либо медленные.

И какой смысл использовать эту библиотеку, если в ней все через одно место? Поэтому я и не использую для обработки изображений всякие «мегакрутые» библиотеки, которые на деле и гроша не стоят...

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.