Чтение двоичного изображения непосредственно в OpenCV Mat / numpy mat - PullRequest
0 голосов
/ 10 июля 2020

Через несколько HTTP-запросов я смог получить изображение в двоичной форме как b'\xff\xd8\xff\xe0\x00\... и с:

with open('image.jpg', 'wb') as out_file:
    out_file.write(binary_content)

, где binary_content - это строка, содержащая данные, полученные через запрос, который я сохранил изображение в файл.

После этого я могу прочитать это изображение с помощью методов OpenCV. Но я хотел сделать прямой переход от двоичной строки к OpenCV Mat без каких-либо промежуточных элементов. cv2.decode метод не сработал.

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Если вы хотите остаться в экосистеме SciPy, тогда хорошо работает библиотека imageio (ранее входившая в SciPy).

from imageio import imread

image_array = imread("image_path.jpg")

Приведенный выше код дает вам массив uint8, если вы хотите массив с плавающей запятой, вы можете легко его использовать

from imageio import imread

image_array = imread("image_path.jpg").astype(float)
0 голосов
/ 10 июля 2020

io.BytesIO и PIL работали хорошо. Закрытие этого вопроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...