Я выполняю задачу классификации изображений в Python.В рамках предварительной обработки мне нужно изменить все изображения в одинаковые размеры.Делая это, я заметил особенность того, что некоторые jpegs и pngs имеют третье измерение, а некоторые нет.Почему это так?Как мне продвинуться в плане нормализации данных?
Все изображения являются цветными изображениями, и даже если я загружаю изображения на свой компьютер, я получаю одинаковые формы.
from PIL import Image
import requests
from io import BytesIO
import base64
import numpy as np
for url in [
r'https://c7.uihere.com/files/35/692/872/wikimedia-commons-measuring-scales-clip-art-orthodontist-thumb.jpg',
r'https://thedesignlove.com/wp-content/uploads/2018/02/297-Food-Stop-Logo-Template.jpg',
r'https://upload.wikimedia.org/wikipedia/commons/f/ff/BTS_logo_%282017%29.png',
]:
response = requests.get(url)
img = Image.open(BytesIO(response.content))
print(np.asarray(img).shape)
data = '''R0lGODlhDwAPAKECAAAAzMzM/////wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4MLwWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw=='''
img = Image.open(BytesIO(base64.b64decode(data)))
print(np.asarray(img).shape)
Вывод:
(310, 310)
(600, 650, 3)
(1800, 1800, 4)
(15, 15)
Как видите, иногда третьего измерения нет, а иногда, даже когда оно есть, оно не является последовательным числом.