Как превратить изображение массива в байты? - PullRequest
0 голосов
/ 31 мая 2018

Мне нужно распознать изображение с помощью Google Vision API.Среди примеров они используют следующую конструкцию:

with io.open('test.png', 'rb') as image_file:
    content = image_file.read()
image = vision.types.Image(content=content)

Мне нужно сделать аналогичное, но мое изображение исходит из:

content = cv2.imread()

, который возвращает массив numpy, а не байты.Я попытался:

content = content.tobytes()

, который преобразует массив в байты, но, по-видимому, возвращает разные байты, поскольку он дает другой результат.
Итак, как сделать массив изображений похожим на тот, который я получаю с помощью open()функция

1 Ответ

0 голосов
/ 31 мая 2018

Вам просто нужно закодировать массив в том же формате, что и изображение, и , затем используйте tobytes(), если вы хотите его в том же формате.

>>> import cv2
>>> with open('image.png', 'rb') as image_file:
...     content1 = image_file.read()
...
>>> image = cv2.imread('image.png')
>>> success, encoded_image = cv2.imencode('.png', image)
>>> content2 = encoded_image.tobytes()
>>> content1 == content2
True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...