从PIL图像转换为Numpy数组

从PIL图像转换为Numpy数组

参考:PIL Image to Numpy Array

在图像处理和计算机视觉领域,有时我们需要将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,可以自行修改。

从PIL图像转换为Numpy数组

示例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)

运行结果:

从PIL图像转换为Numpy数组

示例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图像转换为Numpy数组

这表明我们成功将PIL图像转换为了一个形状为(320, 800, 3),数据类型为uint8的Numpy数组。在这个数组中,第一个维度代表行数,第二个维度代表列数,最后一个维度代表通道数(RGB)。通过这种方式,我们可以方便地对图像进行各种数值运算和处理。

总结

本文介绍了如何从PIL图像转换为Numpy数组,同时给出了一个简单的示例代码。通过将图像转换为Numpy数组,我们可以更轻松地在Python中进行图像处理和计算机视觉任务。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程