在处理基于像素的转换时,NumPy 数组的速度和灵活性通常比 PIL 的 PixelAccess 更有优势。本文演示了如何高效地将 PIL 图像转换为 NumPy 数组并返回,使您能够利用这两个框架的功能。
import PIL.Image import numpy as np pic = PIL.Image.open("foo.jpg") pix = np.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
此代码将PIL 图像转换为具有尺寸(高度、宽度、通道)的 NumPy 数组。
有两种方法可用:
data = list(tuple(pixel) for pixel in pix) pic.putdata(data)
请注意,对于大型数组,此方法可能会很慢.
pix = np.array(pic) # Converts PIL Image to NumPy array # Make changes to the array pic = PIL.Image.fromarray(pix)
此方法通常执行速度更快,是将 NumPy 数组转换回 PIL 图像的推荐方法。
以上是如何高效地将 PIL 图像转换为 NumPy 数组并返回?的详细内容。更多信息请关注PHP中文网其他相关文章!