PIL包在Python图像处理中的应用
诸神缄默不语-个人CSDN博文目录
PIL(Python Imaging Library)是Python中一个强大的图像处理库,尽管其已不再更新,但其后续版本Pillow提供了更多的功能和更好的兼容性。本文将重点介绍Pillow库中的open()
函数、fromarray()
函数以及save()
函数,并通过示例代码展示它们的用法。
文章目录
- 一、`open()`函数
- 二、`fromarray()`函数
- 三、`save()`函数
- 四、综合示例
一、open()
函数
open()
函数用于打开一个图像文件,并返回一个Image对象。其基本用法如下:
from PIL import Image# 打开图像文件
img = Image.open('path_to_image.jpg')# 显示图像
img.show()
参数说明:
path_to_image
:图像文件的路径。
示例:
假设我们有一张名为example.jpg
的图片,我们可以这样打开并显示它:
from PIL import Imageimg = Image.open('example.jpg')
img.show()
二、fromarray()
函数
fromarray()
函数用于将NumPy数组转换为Image对象。这在处理大量图像数据或需要与其他库(如OpenCV)交互时非常有用。其基本用法如下:
import numpy as np
from PIL import Image# 创建一个NumPy数组
array = np.random.rand(100, 100, 3) * 255 # 生成一个100x100的随机RGB图像# 将NumPy数组转换为Image对象
img = Image.fromarray(array.astype('uint8'))# 显示图像
img.show()
参数说明:
array
:输入的NumPy数组。dtype
:可选参数,指定数组的数据类型,默认为'uint8'
。
示例:
假设我们有一个NumPy数组image_array
,我们可以这样将其转换为Image对象并显示:
import numpy as np
from PIL import Imageimage_array = np.random.rand(100, 100, 3) * 255
img = Image.fromarray(image_array.astype('uint8'))
img.show()
三、save()
函数
save()
函数用于将Image对象保存为指定格式的图像文件。其基本用法如下:
from PIL import Image# 打开图像文件
img = Image.open('example.jpg')# 保存图像为PNG格式
img.save('example.png')
参数说明:
filename
:保存的文件名,包括路径和扩展名。format
:可选参数,指定保存的图像格式,默认为文件扩展名指定的格式。
示例:
假设我们已经有一个Image对象img
,我们可以这样将其保存为PNG格式:
img.save('example.png')
四、综合示例
下面是一个综合示例,展示了如何使用open()
、fromarray()
和save()
函数完成一系列图像处理任务:
import numpy as np
from PIL import Image# 打开图像文件
img = Image.open('example.jpg')# 将Image对象转换为NumPy数组
array = np.array(img)# 对数组进行处理(例如:灰度化)
gray_array = np.dot(array[..., :3], [0.2989, 0.5870, 0.1140])# 将处理后的数组转换回Image对象
gray_img = Image.fromarray(gray_array.astype('uint8'))# 保存处理后的图像
gray_img.save('example_gray.png')
通过以上示例,我们可以看到Pillow库在图像处理中的强大功能。希望本文对你有所帮助!