存在三维图像的不一致

Inconsistency in presence of third dimension of images

我是运行 Python 中的一个图像分类任务。作为预处理的一部分,我需要将所有图像重塑为相同的尺寸。通过这样做,我注意到一些 jpeg 和 png 具有三维空间的特性,而有些则没有。为什么会这样?我如何进一步规范化数据?

图片都是彩色图片,即使我下载图片到我的电脑上,我得到的形状也是一样的。

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)

如你所见,有时3维不存在,有时即使存在,也不是一个一致的数字。

如果您将这些图像下载到您的计算机,并查看图像详细信息,您会发现它们的 "colors"(通道)数量和大小不同。 有编程的方法可以做到这一点,但如果你在 windows,你可以右击然后 select "details".

图像“https://c7.uihere.com/files/35/692/872/wikimedia-commons-measuring-scales-clip-art-orthodontist-thumb.jpg” 是 310 x 310 单通道(8 位)图像。

图像“https://thedesignlove.com/wp-content/uploads/2018/02/297-Food-Stop-Logo-Template.jpg”是一张 650x600 3 通道(24 位)图像。

图像“https://upload.wikimedia.org/wikipedia/commons/f/ff/BTS_logo_%282017%29.png”似乎是 1800x1800 4 通道(32 位)图像。可能是RGBA格式(A是"alpha"通道,通常用来描述opacity/transparency级)。

所以基本上,您看到的所有输出数据似乎都是正确的,我看不出有任何问题。 (注意 - 我没有费心看你的第四个案例 - 原始数据图像)