Python的图像处理库Pillow安装与使用教程

 更新时间:2024年04月26日 10:20:28   作者:Eric,会点编程  
Pillow库是Python中用于图像处理的开源库,提供了丰富的图像处理功能,如图像读取、保存、裁剪、调整大小、旋转、添加文字等,这篇文章主要给大家介绍了关于Python的图像处理库Pillow安装与使用的相关资料,需要的朋友可以参考下

前言

在Python中,Pillow库是一个非常强大的图像处理库。它提供了广泛的图像处理功能,让我们可以轻松地操作图像,实现图像的转换、裁剪、缩放、旋转等操作。此外,Pillow还支持多种图像格式的读取和保存,包括JPEG、PNG、BMP、GIF等。

安装Pillow

首先,我们需要安装Pillow库。在终端或命令行中输入以下命令来安装Pillow:

pip install pillow 

如果您的环境中已经安装了PIL库,那么可以通过以下命令来升级到最新版本的Pillow: 

pip install pillow --upgrade

Pillow库的主要模块和类

Pillow库的主要模块包括Image、ImageColor、ImageDraw、ImageFont、ImageFilter等。每个模块都提供了相应的类和方法来处理图像。

  • Image模块提供了打开、操作和保存图像的方法。它包含了所有需要的图像操作函数。
  • ImageColor模块提供了用于操作RGB颜色空间的方法。
  • ImageDraw模块提供了用于在图像上绘制各种形状和文本的方法。
  • ImageFont模块提供了用于设置字体和字体大小的方法。
  • ImageFilter模块提供了一些用于对图像进行滤波处理的方法。

下面我们将通过代码示例来演示如何使用Pillow库进行图像处理。

打开和显示图像

首先,我们可以使用Image.open()方法打开一张图像,并使用Image.show()方法来显示图像。

from PIL import Image  
  
# 打开图像  
img = Image.open('example.jpg')  
  
# 显示图像  
img.show()

在这个例子中,我们使用Image.open()方法打开名为example.jpg的图像文件,并将其保存到img变量中。然后,我们使用img.show()方法来显示这个图像。

图像的转换和调整

Pillow库提供了多种用于转换和调整图像的方法。下面是一些常用的方法:

  • Image.resize(size)方法用于调整图像的大小。
  • Image.rotate(angle, expand=True)方法用于旋转图像。
  • Image.transpose(method)方法用于翻转或旋转图像。
  • Image.convert(mode='RGB')方法用于将图像转换为RGB模式。
  • Image.adjust(brightness=0, contrast=0, saturation=0, hue=0)方法用于调整图像的亮度、对比度、饱和度和色调。
from PIL import Image, ImageOps, ImageFilter, ImageEnhance  
  
# 打开图像  
img = Image.open('example.jpg')  
  
# 调整图像大小  
img_resized = img.resize((300, 300))  
  
# 旋转图像  
img_rotated = img.rotate(45)  
  
# 翻转图像  
img_flipped = img.transpose(Image.FLIP_LEFT_RIGHT)  
  
# 调整亮度对比度和饱和度  
enhancer = ImageEnhance.Brightness(img)  
img_brightened = enhancer.enhance(1.5)  # 提高亮度50%  
enhancer = ImageEnhance.Contrast(img)  
img_contrasted = enhancer.enhance(1.5)  # 提高对比度50%  
enhancer = ImageEnhance.Color(img)  
img_colored = enhancer.enhance(1.5)  # 提高饱和度50%  
  
# 显示结果  
img_resized.show()  
img_rotated.show()  
img_flipped.show()  
img_brightened.show()  
img_contrasted.show()  
img_colored.show()

在这个例子中,我们首先使用Image.open()方法打开名为example.jpg的图像文件,并将其保存到img变量中。然后,我们使用Image.resize()方法调整图像的大小,使用Image.rotate()方法旋转图像,使用Image.transpose()方法翻转或旋转图像,使用ImageEnhance模块的Brightness()Contrast()Color()方法分别调整图像的亮度、对比度和饱和度。最后,我们使用img_xxx.show()方法来显示每个处理后的图像。

补充:Pillow库还提供哪些高级图像处理功能?

滤镜效果: 可以使用Pillow库中的ImageFilter模块来应用各种滤镜效果。例如,可以使用模糊滤镜(Blur)来让图像看起来更加柔和,使用增强边缘滤镜(Enhance)来增强图像的边缘。

示例代码:

from PIL import Image, ImageFilter

# 读取图像文件
image = Image.open("image.jpg")

# 应用模糊滤镜
blurred_image = image.filter(ImageFilter.BLUR)

# 应用增强边缘滤镜
edge_enhanced_image = image.filter(ImageFilter.EDGE_ENHANCE)

# 显示滤镜效果后的图像
blurred_image.show()
edge_enhanced_image.show()

图像合并: 使用Image.blend()函数可以将两个图像进行混合。该函数需要传递两个图像以及一个混合系数作为参数。

示例代码:

from PIL import Image

# 读取第一个图像文件
image1 = Image.open("image1.jpg")

# 读取第二个图像文件
image2 = Image.open("image2.jpg")

# 设置混合系数为0.5,即两个图像的混合比例为50%
blended_image = Image.blend(image1, image2, 0.5)

# 显示混合后的图像
blended_image.show()

颜色调整: 使用Pillow库中的ImageEnhance模块可以对图像的颜色进行调整。例如,可以使用亮度调整(Brightness)函数来增加或降低图像的亮度,使用对比度调整(Contrast)函数来增加或降低图像的对比度。

示例代码:

from PIL import ImageEnhance

# 读取图像文件
image = Image.open("image.jpg")

# 创建亮度调整器
brightness_enhancer = ImageEnhance.Brightness(image)

# 增加图像亮度
brightened_image = brightness_enhancer.enhance(1.5)  # 1.5为增加的倍数

# 创建对比度调整器
contrast_enhancer = ImageEnhance.Contrast(image)

# 增加图像对比度
contrasted_image = contrast_enhancer.enhance(1.2)  # 1.2为增加的倍数

# 显示调整后的图像
brightened_image.show()
contrasted_image.show()

这些功能可以帮助你在图像处理中实现滤镜效果、图像合并以及颜色调整。根据需要选择相应的函数并调整参数。

总结

到此这篇关于Python图像处理库Pillow安装与使用的文章就介绍到这了,更多相关Python图像处理库Pillow内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pyecharts绘制各种数据可视化图表案例附效果+代码

    pyecharts绘制各种数据可视化图表案例附效果+代码

    这篇文章主要介绍了pyecharts绘制各种数据可视化图表案例并附效果和代码,文章围绕主题展开详细的内容介绍,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Django 路由系统URLconf的使用

    Django 路由系统URLconf的使用

    这篇文章主要介绍了Django 路由系统URLconf的使用,详细的介绍了什么是URLconf以及如何使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Numpy中的shape函数的用法详解

    Numpy中的shape函数的用法详解

    这篇文章主要介绍了Numpy中的shape函数的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python版本五子棋的实现代码

    python版本五子棋的实现代码

    五子棋是常见的一款小游戏,五子棋问题是人工智能中的一个经典问题。这篇文章主要介绍了python版本五子棋的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Python中if有多个条件处理方法

    Python中if有多个条件处理方法

    在本篇文章里小编给大家整理的是一篇关于Python中if有多个条件处理方法,需要的朋友们可以学习参考下。
    2020-02-02
  • Python入门开发教程  windows下搭建开发环境vscode的步骤详解

    Python入门开发教程 windows下搭建开发环境vscode的步骤详解

    大家都知道Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的,今天给大家分享Python开发环境搭建vscode的步骤,一起看看吧
    2021-07-07
  • 基于pandas数据样本行列选取的方法

    基于pandas数据样本行列选取的方法

    下面小编就为大家分享一篇基于pandas数据样本行列选取的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python爬虫运用正则表达式的方法和优缺点

    Python爬虫运用正则表达式的方法和优缺点

    这篇文章主要给大家介绍了关于Python爬虫运用正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Python利用xlwings实现考勤表制作

    Python利用xlwings实现考勤表制作

    这篇文章主要为大家详细介绍了Python如何利用xlwings库操作excel实现考勤表的制作,文中的实现步骤讲解详细,感兴趣的可以尝试一下
    2023-04-04
  • Python中实现常量(Const)功能

    Python中实现常量(Const)功能

    这篇文章主要介绍了Python中实现常量(Const)功能,python语言本身没有提供const,本文使用一个类来实现常量定义功能,并介绍了使用方法,需要的朋友可以参考下
    2015-01-01

最新评论