Python 学习笔记之—— PIL 库
2022/1/10 11:03:42
本文主要是介绍Python 学习笔记之—— PIL 库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PIL,全称 Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库。但是,由于 PIL 仅支持到Python 2.7,加上年久失修,于是一群志愿者在 PIL 的基础上创建了兼容 Python 3 的版本,名字叫 Pillow ,我们可以通过安装 Pillow 来使用 PIL。
1. pip 安装 pillow
在 Ubuntu 下通过一个简单的命令`sudo pip3 install pillow`即可成功安装库。
2. 打开、保存、显示图片
from PIL import Image image = Image.open('2092.jpg') image.show() image.save('1.jpg') print(image.mode, image.size, image.format) # RGB (481, 321) JPEG
- mode 属性为图片的模式,RGB 代表彩色图像,L 代表光照图像也即灰度图像等
- size 属性为图片的大小(宽度,长度)
- format 属性为图片的格式,如常见的 PNG、JPEG 等
3. 转换图片模式
image.show() grey_image = image.convert('L') grey_image.show()
- 任何支持的图片模式都可以直接转为彩色模式或者灰度模式,但是,若是想转化为其他模式,则需要借助一个中间模式(通常是彩色)来进行过转
4. 通道分离合并
r, g, b = image.split() im = Image.merge('RGB', (b, g, r))
- 彩色图像可以分离出 R、G、B 通道,但若是灰度图像,则返回灰度图像本身。然后,可以将 R、G、B 通道按照一定的顺序再合并成彩色图像。
5. 图片裁剪、旋转和改变大小
box = (100, 100, 300, 300) region = image.crop(box) region = region.transpose(Image.ROTATE_180) image.paste(region, box) image.show()
- 通过定义一个 4 元组,依次为左上角 X 坐标、Y 坐标,右下角 X 坐标、Y 坐标,可以対原图片的某一区域进行裁剪,然后进行一定处理后可以在原位置粘贴回去。
im = image.resize((300, 300)) im = image.rotate(45) # 逆时针旋转 45 度 im = image.transpose(Image.FLIP_LEFT_RIGHT) # 左右翻转 im = im.transpose(Image.FLIP_TOP_BOTTOM)# 上下翻转
6. 像素值操作
out = image.point(lambda i: i * 1.2) # 对每个像素值乘以 1.2 source = image.split() out = source[0].point(lambda i: i > 128 and 255) # 对 R 通道进行二值化
- i > 128 and 255,当 i <= 128 时,返回 False 也即 0,;反之返回 255 。
7. 和 Numpy 数组之间的转化
array = np.array(image) print(array.shape) #(321, 481, 3) out = Image.fromarray(array)
这篇关于Python 学习笔记之—— PIL 库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程