Được rồi, tôi đang đùa giỡn với việc chuyển đổi một đối tượng hình ảnh PIL qua lại thành một mảng gọn gàng để tôi có thể thực hiện một số pixel nhanh hơn bằng cách chuyển đổi pixel so với PixelAccess
đối tượng của PIL cho phép. Tôi đã tìm ra cách đặt thông tin pixel vào một mảng gọn gàng 3D hữu ích bằng cách:
pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Nhưng dường như tôi không thể tìm ra cách tải nó trở lại vào đối tượng PIL sau khi tôi đã thực hiện tất cả các biến đổi tuyệt vời của mình. Tôi biết putdata()
phương pháp này, nhưng dường như không thể khiến nó hành xử.
pic.size[0]
vàpic.size[1]
nên được hoán đổi (ví dụ.reshape(pic.size[1], pic.size[0], 3)
), Vìsize
làwidth x height
hoặcx * y
, trong khi thứ tự ma trận làrows x columns
.