Преобразование файла двоичного изображения в изображение 224 * 224 в массиве numpy

Я читаю изображение (размер изображения не 224 * 224), и оно такого типа:

def fetch_from_s3(client, image_s3url):
    bucket, key = image_s3url.split('/',2)[-1].split('/',1)
    result = client.get_object(Bucket=bucket, Key=key)
    return result['Body'].read()
img =fetch_from_s3(client, image_s3url)
#
print(img)
>>
'\xff\xd8\xff\xdb\x00C\x00\....'

Что мне нужно: преобразовать его в изображение 224 * 224, а затем в массив numpy.

У меня есть трудоемкий способ сделать это:

  1. сохранить как файл jpg
  2. преобразовать jpg в 224 * 224, а затем в массив numpy
  3. удалить этот файл jpg

Поскольку мне нужно обработать миллионы изображений, я хочу найти способ пропустить шаги 1 и 3, потому что они требуют много дополнительного времени.

Есть ли способ напрямую преобразовать произвольный двоичный файл изображения в массив numpy, представляющий изображение 224 * 224?


person Bill Ancalagon the black    schedule 13.03.2018    source источник
comment
Существуют зависящие от ОС инструменты для изменения размера файлов; Я подозреваю, что лучший способ для вас — преобразовать входной каталог, используя один из них; поиск по имени вашей ОС в качестве одного из параметров.   -  person Prune    schedule 14.03.2018


Ответы (1)


Вы можете использовать scipy.misc.imresize или cv2.resize

person HYRY    schedule 14.03.2018