PIL/Pillow 学习笔记概要

目录

1. PIL/Pillow 简介

2. 基本操作

3. 图像转换

4. 图像处理

5. 滤镜和增强

6. 像素访问

7. 批量处理


 

1. PIL/Pillow 简介

  • PIL(Python Imaging Library)是一个强大的图像处理库,但由于其开发停滞,现在通常使用

    17 / 10其更活跃的分支Pillow。
  • Pillow支持打开、操作和保存多种格式的图像文件。
2. 基本操作
  • 打开图像:使用Image.open(filename)打开图像文件。
  • 显示图像:使用image.show()在默认图像查看器中显示图像。
  • 保存图像:使用image.save(filename, format=None)保存图像,其中format是可选的,用于指定保存格式。
3. 图像转换
  • 灰度转换:虽然代码示例中使用了NumPy进行灰度转换,但Pillow也支持直接转换,如image.convert('L')
  • 模式转换:Pillow支持多种图像模式(如'RGB', 'RGBA', 'L', '1'等),可以通过image.convert(mode)进行转换。
4. 图像处理
  • 裁剪:使用image.crop(box)裁剪图像,其中box是一个四元组(left, upper, right, lower)
  • 调整大小:使用image.resize(size)调整图像大小,其中size是目标大小(宽度,高度)。
  • 旋转:使用image.rotate(angle, [resample], [expand])旋转图像。
  • 翻转:使用image.transpose(method)进行翻转或旋转90度,其中method可以是Image.FLIP_LEFT_RIGHTImage.FLIP_TOP_BOTTOM等。
5. 滤镜和增强
  • Pillow提供了多种内置滤镜和增强功能,如模糊、锐化、边缘检测等,但这些功能可能不如使用专门的图像处理库(如OpenCV)那样强大或灵活。
6. 像素访问
  • 可以通过image.getpixel((x, y))获取特定像素的颜色值。
  • 使用image.putpixel((x, y), color)设置特定像素的颜色值。
  • 对于更复杂的像素操作,可以将图像转换为NumPy数组进行处理,然后再转换回Pillow图像。
7. 批量处理
  • Pillow本身不直接支持批量处理图像,但可以通过编写Python脚本来遍历文件夹中的图像文件,并对每个文件应用Pillow操作。

8. 代码示例

import numpy as np  
from PIL import Image  
  
# 使用原始字符串来避免转义字符问题  
fn = r"C:\Users\86187\Pictures\莎头.jpg"  
arr = np.array(Image.open(fn))  
# 红、绿、蓝三分量加权平均,变为灰度图像  
arr = np.average(arr, axis=2, weights=(0.3, 0.59, 0.11))  
arr = np.int8(np.clip(arr * 1.3, 0, 255))  # 灰度值变大,整体调亮  
# 重建图像  
im_gray = Image.fromarray(arr, 'L')  
im_gray.show()  
# im_gray.save('转换后的灰度图像.jpg')  # 取消注释以保存图像

 

Pillow是一个功能丰富的图像处理库,上述只是其功能的冰山一角。通过阅读官方文档和教程,你可以更深入地了解Pillow的各种特性和用法。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值