Numpy 数组转PIL图像
numpy是Python的科学计算库,提供了一些用于数组处理的功能。而Pillow(Python Image Library)是Python的第三方图像处理库。它提供了用于图像处理和图像展示的丰富接口。
阅读更多:Numpy 教程
Numpy array to PIL image(numpy数组转PIL图像)
在Python中,我们经常需要将numpy数组转换为PIL图像。下面是将numpy数组转换为PIL图像的示例代码。
首先,我们需要导入相关的库。
import numpy as np
from PIL import Image
接下来,我们需要创建numpy数组。这可以通过多个方式来完成,例如直接创建、从文件中读取或从其他库转换。在这里,我们将直接创建一个numpy数组。
# Create numpy array
width, height = 500, 500
data = np.zeros((height, width, 3), dtype=np.uint8)
data[250:500, 250:500, :] = [255, 0, 0]
上面的代码创建了一个500x500x3的numpy数组,并将其全部设置为0。然后我们将其左下角的一半设置为红色。
接下来,我们将numpy数组转换为PIL图像。
# Convert numpy array to PIL image
img = Image.fromarray(data)
img.show()
我们使用fromarray函数将numpy数组转换为PIL图像。然后我们使用show函数显示图像。
PIL image to numpy array(PIL图像转numpy数组)
下面是将PIL图像转换为numpy数组的示例代码。
首先,我们创建一个PIL图像。
# Create PIL image
img = Image.new('RGB', (500, 500), color=(0, 0, 0))
draw = ImageDraw.Draw(img)
draw.rectangle([250, 250, 500, 500], fill=(255, 0, 0))
上面的代码创建了一个500×500的黑色PIL图像,并且将左下角的一半区域设置为红色。
然后,我们将PIL图像转换为numpy数组。
# Convert PIL image to numpy array
data = np.array(img)
print(data.shape)
我们使用np.array函数将PIL图像转换为numpy数组,然后我们打印该数组的形状。
这将输出:
(500, 500, 3)
我们可以看到,该数组是一个500x500x3的数组,其中3表示每个像素由RGB三个通道组成。
总结
本文介绍了如何将numpy数组转换为PIL图像,并将PIL图像转换为numpy数组。这两者在图像处理中都是非常常见的操作。有关numpy和PIL的更多详细信息,请查看官方文档。