📜  pil 图像到 numpy - Python (1)

📅  最后修改于: 2023-12-03 15:03:46.243000             🧑  作者: Mango

PIL图像到NumPy - Python

在Python中,我们经常需要将图像处理为数字数组以便更好地进行分析和处理。在这个过程中,PIL(Python Imaging Library)和NumPy是两个非常有用的库。PIL可以用于打开,操作和保存各种图像格式,NumPy则可以将图像转换为数字数组进行进一步的处理。

1. 安装PIL和NumPy

如果你还没有安装PIL和NumPy,可以使用以下命令在终端中安装:

pip install pillow
pip install numpy
2. 将图像转换为NumPy数组

使用PIL打开图像,并将其转换为NumPy数组的步骤如下所示:

from PIL import Image
import numpy as np

# 打开图像并将其转换为NumPy数组
img = Image.open('test.jpg')
img_np = np.array(img)

# 显示图像的尺寸和数据类型
print('图像尺寸:', img_np.shape)
print('数据类型:', img_np.dtype)

输出应该是:

图像尺寸: (512, 512, 3)
数据类型: uint8

在这里,我们使用Image.open()打开图像,然后调用np.array()将其转换为NumPy数组。您还可以使用np.asarray()获得类似的结果。返回的数组的形状是(width,height,channels)或(height,width,channels),取决于您的图像是如何排列的。

3. 显示图像

您可以使用matplotlib库将图像从NumPy数组中显示出来。

import matplotlib.pyplot as plt

plt.imshow(img_np)
plt.show()

这将打开一幅新图片,显示已经导入并转换为numpy数组的图像。如果你想保存图像,你可以使用以下相似的代码片段:

plt.imsave('new_image.jpg', img_np)

这将把NumPy数组保存为新图像。

这就是使用PIL将图像转换为NumPy数组的基础知识,您现在可以开始尝试并实现更高级的图像分析和处理。