首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将列表转换为numpy数组问题

将列表转换为numpy数组问题
EN

Stack Overflow用户
提问于 2014-12-14 16:38:35
回答 1查看 278关注 0票数 0

使用python的spyder代码编辑器。

当使用np.asarray( list )将像素颜色值列表保存到numpy数组时,它给出了一个具有奇怪维度的数组。

正在读取的原始图像的尺寸为(864,1089) (宽度、高度),是JPEG图像。当将此列表转换为numpy数组时,它返回一个维数为(940896,3)的数组,而当我期望一维数组具有维数(940896,)时。我不明白这3是从哪里来的.

代码语言:javascript
复制
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)

我也是第一次发问,所以如果有什么不清楚的地方,请告诉我:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-14 16:48:29

例如,尝试查看pix[0,0]包含的内容:

代码语言:javascript
复制
>>> img = Image.open('./edgewalker-cat.png')
>>> pix = img.load()
>>> pix
<PixelAccess object at 0x7f1afac932f0>
>>> pix[0,0]
(0, 0, 0)

它的元组大小为3,因此正在逐个构造的pixels列表将转换为(宽度*高度,3)的维度。

UPD:对灰度图像的,您将得到一个简单的int值:

代码语言:javascript
复制
>>> img = Image.open('./urban-dove-gray.jpg')
>>> pix = img.load()
>>> pix[0,0]
31
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27471459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档