Загрузить изображение OpenCV (JavaCV) из байта [], а не файла - PullRequest
4 голосов
/ 13 февраля 2012

У меня есть данные изображения, поступающие из сокетного соединения в виде байта []. Во всех примерах, которые я видел, используя cvLoadImage(), передается имя файла. Нужно ли сохранять каждое изображение в файл и заново открывать его для обработки? Похоже, что это требует много времени, возможно ли загрузить изображение из данных byte []?

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

При условии, что данные кодируются в каком-то стандартном формате, таком как JPG или PNG, и при условии, что вы используете JavaCV для байтового массива b, это также работает:

IplImage image = cvDecodeImage(cvMat(1, b.length, CV_8UC1, new BytePointer(b)));

1 голос
/ 19 февраля 2012

Простое решение, в конце концов, вы можете использовать следующий метод для создания изображения из BufferedImage, которое решило мою проблему:

IplImage src = IplImage.createFrom(buffered);
...