【发布时间】:2010-09-27 22:31:19
【问题描述】:
好的,我正在尝试将 PIL 图像对象来回转换为 numpy 数组,这样我可以进行比 PIL 的 PixelAccess 对象允许的更快的逐像素转换。我已经想出了如何通过以下方式将像素信息放置在有用的 3D numpy 数组中:
pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
但是在我完成了所有很棒的转换之后,我似乎无法弄清楚如何将它加载回 PIL 对象中。我知道 putdata() 方法,但似乎无法让它发挥作用。
【问题讨论】:
-
请注意
pic.size[0]和pic.size[1]应该交换(即reshape(pic.size[1], pic.size[0], 3)),因为size是width x height或x * y,而矩阵排序是rows x columns。
标签: python image numpy python-imaging-library numpy-ndarray