Python中Pillow库的常见用法和代码示例

本文涉及的产品
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,图像通用资源包5000点
视觉智能开放平台,分割抠图1万点
简介: Pillow是Python中广泛使用的图像处理库,支持丰富的图像操作功能,包括但不限于打开、保存、缩放、裁剪、旋转、调色等。本文通过一系列示例介绍Pillow的基本用法,涵盖图像的加载与显示、尺寸调整、裁剪与旋转、亮度调整、格式转换、滤镜应用、图像合成及像素级操作等。首先需通过`pip install pillow`安装库,随后可通过导入`PIL.Image`等模块开始图像处理任务。无论是初学者还是进阶用户,都能从Pillow提供的强大功能中获益。

Pillow是Python中非常流行的图像处理库,它提供了广泛的图像操作功能,如打开、保存、缩放、裁剪、旋转、调色等。下面我将为您展示Pillow库的一些常见用法和代码示例。

首先,确保您已经安装了Pillow库。如果尚未安装,可以使用pip进行安装:

bash复制代码

pip install pillow

1. 打开和显示图像

from PIL import Image  

# 打开图像  
image = Image.open('path_to_your_image.jpg')  

# 显示图像(这一步需要在支持图形用户界面的环境中执行,例如Jupyter Notebook)  
image.show()

2. 保存图像

# 保存图像为新的文件  
image.save('new_image.jpg')

3. 图像缩放

# 缩放图像到指定大小  
resized_image = image.resize((800, 600))  
resized_image.show()

4. 图像裁剪

# 裁剪图像(定义左上角和右下角的坐标)  
cropped_image = image.crop((100, 100, 400, 400))  
cropped_image.show()

5. 图像旋转

# 旋转图像(90度)  
rotated_image = image.rotate(90)  
rotated_image.show()

6. 调整图像亮度

# 使用ImageEnhance库调整亮度  
from PIL import ImageEnhance  

enhancer = ImageEnhance.Brightness(image)  
brightened_image = enhancer.enhance(2.0)  # 增加亮度(2.0倍)  
brightened_image.show()

7. 图像格式转换

# 将图像转换为灰度图像  
gray_image = image.convert('L')  
gray_image.show()

8. 图像滤镜

# 应用滤镜效果(例如模糊)  
blurred_image = image.filter(ImageFilter.BLUR)  
blurred_image.show()

注意:在上面的滤镜示例中,我遗漏了ImageFilter的导入语句。正确的代码应该是:

from PIL import Image, ImageFilter  

# 应用滤镜效果(例如模糊)  
blurred_image = image.filter(ImageFilter.BLUR)  
blurred_image.show()

9. 图像合成与叠加

# 打开另一个图像用于合成  
overlay_image = Image.open('path_to_overlay_image.png')  

# 将overlay_image叠加到原始图像上(注意:这两个图像应该有相同的尺寸)  
result = Image.alpha_composite(image, overlay_image)  
result.show()

10. 图像像素操作

# 访问并修改图像的像素值  
pixels = image.load()  
width, height = image.size  

for x in range(width):  
    for y in range(height):  
        r, g, b = pixels[x, y]  # 获取像素的RGB值  
        # 对像素值进行一些操作,例如增加亮度  
        r = min(255, r + 50)  
        g = min(255, g + 50)  
        b = min(255, b + 50)  
        pixels[x, y] = (r, g, b)  # 设置新的像素值  

image.show()  # 显示修改后的图像

这些示例涵盖了Pillow库的一些基本用法。当然,Pillow还提供了许多其他高级功能和选项,您可以查阅官方文档以获取更多详细信息。

目录
相关文章
|
1月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
213 100
|
1月前
|
开发者 Python
Python列表推导式:一行代码的艺术与力量
Python列表推导式:一行代码的艺术与力量
290 95
|
1月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
144 88
|
1月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
154 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
1月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
255 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
一分钟看懂Python中的 // 和 / 和 % 的用法区别
一分钟看懂Python中的 // 和 / 和 % 的用法区别
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
231 102
|
2月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
268 104
|
2月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
227 103

热门文章

最新文章

推荐镜像

更多