python 图像 数组,PIL图像到数组(numpy数组到数组) - Python

I have a .jpg image that I would like to convert to Python array, because I implemented treatment routines handling plain Python arrays.

It seems that PIL images support conversion to numpy array, and according to the documentation I have written this:

from PIL import Image

im = Image.open("D:\Prototype\Bikesgray.jpg")

im.show()

print(list(np.asarray(im)))

This is returning a list of numpy arrays. Also, I tried with

list([list(x) for x in np.asarray(im)])

which is returning nothing at all since it is failing.

How can I convert from PIL to array, or simply from numpy array to Python array?

解决方案

I think what you are looking for is:

list(im.getdata())

or, if the image is too big to load entirely into memory, so something like that:

for pixel in iter(im.getdata()):

print pixel

getdata

im.getdata() => sequence

Returns the contents of an image as a sequence object containing pixel

values. The sequence object is flattened, so that values for line one

follow directly after the values of line zero, and so on.

Note that the sequence object returned by this method is an internal

PIL data type, which only supports certain sequence operations,

including iteration and basic sequence access. To convert it to an

ordinary sequence (e.g. for printing), use list(im.getdata()).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值