Как преобразовать изображение, тип которого байтов, в numpy.ndarray? - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь оптимизировать мой код.

Сначала я получаю изображение, тип которого - байты

Затем я должен записать это изображение в файловую систему.

with open('test2.jpg', 'wb') as f:
    f.write(content)

Наконец я читаю это изображение с помощью

from scipy import misc
misc.imread('test2.jpg')

, которые преобразуют изображение в np.array.

Я хочу пропустить часть, где я записываю изображение в файловую систему, и получить np.array.

PS : я пытался использовать np.frombuffer ().Это не работает для меня, потому что два np.arrays не совпадают. Конвертировать str в numpy.ndarray

Для теста вы можете попробовать сами:

file = open('test1.jpg', 'rb')
content = file.read()

1 Ответ

1 голос
/ 02 апреля 2019

Мой первый ответ в рэпе ...

Оберните этого щенка в BytesIO

И вы уходите

Итак, для генерации синтетических данных, аналогичных тем, которые вы получаете из API:

file = open('image.jpg','rb')
content = file.read()

Это выглядит так, что имеет все признаки JPEG:

content = b'\xff\xd8\xff\xe0\x00\x10JFIF...

Теперь для решения:

from io import BytesIO
from scipy import misc

numpyArray = misc.imread(BytesIO(content))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...