PIL图片转numpy

PIL图片转numpy

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图片,方便保存或展示。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程