从PIL图像转换为Numpy数组
在图像处理和计算机视觉领域,有时我们需要将PIL(Python Imaging Library)图像转换为Numpy数组进行进一步的处理。PIL是Python中常用的图像处理库,而Numpy是Python中用来进行科学计算的库,结合二者可以方便地对图像进行各种操作。
安装依赖库
首先确保你已经安装了PIL库和Numpy库,如果没有可以使用以下命令安装:
pip install pillow
pip install numpy
从PIL图像到Numpy数组
在本文中使用的图片均为如下图所示,路径为D:/web_numpywhere/output/img/pil_image_to_numpy.jpg
,可以自行修改。
示例1:图像转为数组元素
下面是一个将PIL图像转换为Numpy数组的简单示例:
from PIL import Image
import numpy as np
# Load image
image = Image.open("D:/web_numpywhere/output/img/pil_image_to_numpy.jpg")
# Convert image to Numpy array
image_array = np.array(image)
print(image_array.shape)
运行结果:
示例2:获取图像数组的尺寸和类型
from PIL import Image
import numpy as np
# 打开一张图片
img = Image.open('D:/web_numpywhere/output/img/pil_image_to_numpy.jpg')
# 将图像转换为Numpy数组
img_array = np.array(img)
# 打印数组的形状和数据类型
print(img_array.shape)
print(img_array.dtype)
运行以上代码,你将看到输出结果如下:
这表明我们成功将PIL图像转换为了一个形状为(320, 800, 3)
,数据类型为uint8
的Numpy数组。在这个数组中,第一个维度代表行数,第二个维度代表列数,最后一个维度代表通道数(RGB)。通过这种方式,我们可以方便地对图像进行各种数值运算和处理。
总结
本文介绍了如何从PIL图像转换为Numpy数组,同时给出了一个简单的示例代码。通过将图像转换为Numpy数组,我们可以更轻松地在Python中进行图像处理和计算机视觉任务。