Загрузка нескольких URL-адресов изображений в массив 4D numpy - PullRequest
0 голосов
/ 26 марта 2020

У меня есть около 300 изображений, которые я извлекаю из URL изображения. Каждое изображение (RGB) имеет размер 256x256x3. Я хочу массив numpy, который можно вставить в модель формы CNN = (300,256,256,3). Как это сделать в Python?

Этот код ниже дает мне ошибку

X_data = np.array([])
print('Iterating across ',len(df_train),' rows')
for index,row in tqdm_notebook(df_train.iterrows()):
    img = {}
    try:
        img = img_to_array(load_img(BytesIO(requests.get(row['IMAGE_URL_1']).content), target_size=(256, 256)))
        X_data.append(img)
    except Exception:
        print('Error in Fetching Image_URL_1 = ',row['IMAGE_URL_1'],' lot = ',row['LOT_NUMBER'])
        pass

1 Ответ

1 голос
/ 26 марта 2020

Вы можете использовать библиотеку подушек для считывания данных изображения из содержимого URL. Вот простой пример.

from io import BytesIO
from PIL import Image
import numpy as np
import requests

X_data = []
print('Iterating across ',len(df_train),' rows')
for index,row in tqdm_notebook(df_train.iterrows()):
    try:
        # https://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.resize
        img = Image.open(BytesIO(requests.get(row['IMAGE_URL_1']).content)).resize((256, 256), PIL.Image.LANCZOS)
        X_data.append(np.array(img))
    except Exception:
        print('Error in Fetching Image_URL_1 = ',row['IMAGE_URL_1'],' lot = ',row['LOT_NUMBER'])
        pass
...