PIL图片转numpy
在图像处理领域,PIL(Python Imaging Library)是一个常用的库,提供了丰富的图像处理功能。而numpy作为一个高性能的科学计算库,提供了对多维数组的支持。将图像从PIL格式转换为numpy数组可以方便地进行各种图像处理操作。
1. 安装PIL库
首先,需要安装PIL库,可以使用以下命令进行安装:
pip install pillow
2. 加载图片并转换为numpy数组
接下来,我们加载一张图片并将其转换为numpy数组:
from PIL import Image
import numpy as np
# 加载图片
image = Image.open('example.jpg')
# 将图片转换为numpy数组
image_array = np.array(image)
3. numpy数组的结构
numpy数组是一个多维数组,通常是三维的,分别代表图片的高度、宽度和通道数(对于RGB图像来说,通道数是3)。
# 打印数组的形状
print(image_array.shape)
运行结果将显示图片的高度、宽度和通道数:
(480, 640, 3)
4. 图像处理操作
通过将图片转换为numpy数组,我们可以方便地对图像进行各种处理操作,比如改变色彩、裁剪、旋转等。
# 修改图片为灰度图
gray_image_array = np.dot(image_array[...,:3], [0.2989, 0.5870, 0.1140])
# 旋转图片
rotated_image_array = np.rot90(image_array)
5. 将numpy数组转换为PIL图片
除了将PIL图片转换为numpy数组,我们也可以将numpy数组转换回PIL图片,方便保存或显示。
# 将numpy数组转换为PIL图片
new_image = Image.fromarray(image_array)
6. 总结
通过将PIL图片转换为numpy数组,我们可以更方便地进行图像处理操作,利用numpy提供的丰富功能,实现各种需求。同时,也可以将处理后的numpy数组再转换为PIL图片,方便保存或展示。