Numpy 数组转PIL图像

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的更多详细信息,请查看官方文档。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程