【发布时间】:2017-11-26 01:01:37
【问题描述】:
我正在编写这段代码,它获取图像的所有像素,然后将它们存储到一个列表中。
我的目标是将此循环转换为列表理解。
# Take the image
im = Image.open("C:/Users/admin/Desktop/IMG_170619_114715_0007_NIR.tif")
#load it
pixels = im.load()
# take the width and the height
width, height = im.size
然后是循环...
all_pixels = []
for x in range(width):
for y in range(height):
cpixel = pixels[x,y]
all_pixels.append(cpixel)
我的第一次尝试是这样......
all_pixels=[[pixels[x,y] for y in range(height)] for x in range(width)]
它正在工作,但是当我执行 len(all_pixels) 以查看我是否拥有所有像素时,我只有 1280 个值,这意味着在 lsit 理解中未正确完成计算...
len(all_pixels)
Out[143]: 1280
我们应该有类似的东西..
len(all_pixels)
Out[105]: 1228800
有什么帮助吗?为什么列表推导不计算与循环相同的东西???
【问题讨论】:
标签: python list loops list-comprehension