使用python xy的spyder代码编辑器。
当使用np.asarray(list)将像素颜色值列表保存到numpy数组时,它为我提供了一个具有怪异尺寸的数组。
读取的原始图像的尺寸为(864,1089)(宽度,高度),并且是JPEG图像。将这个列表转换为numpy数组时,当我期望具有维数(940896,)的一维数组时,它将返回一个维数为(940896,3)的数组。我不知道3的来源...
img = Image.open('Images\satellite6.jpg')
pix = img.load()
width = img.size[0]
height = img.size[1]
pixels = []
for j in range(height):
for i in range(width):
pixels.append(pix[i,j])
pixels = np.array(pixels)
print np.shape(pixels)
(940896,3)
我也是发布问题的新手,所以如果有任何不清楚的地方,请告诉我:)
尝试查看pix[0,0]
包含的内容,例如:
>>> img = Image.open('./edgewalker-cat.png')
>>> pix = img.load()
>>> pix
<PixelAccess object at 0x7f1afac932f0>
>>> pix[0,0]
(0, 0, 0)
它的元组,大小为3,因此pixels
您要一一构造的列表将被转换为尺寸(width * height,3)。
UPD:在灰度图像上,您将获得一个简单的int值:
>>> img = Image.open('./urban-dove-gray.jpg')
>>> pix = img.load()
>>> pix[0,0]
31
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句