Python 图像处理之PIL库详解用法
目录
- 前言
- 🍒PIL库概述
- 🍓Image类解析
- 💚图像的创建
- 💙图像的属性
- 💜图像的转换
- 💗图像处理
- 总结
前言
提示:以下是本篇文章正文内容
🍒PIL库概述
PIL库支持图像存储、 显示和处理, 它能够处理几乎所有图片格式, 可以完成
对图像的缩放、 剪裁、 叠加以及向图像添加线条、 图像和文字等操作
PIL库可以完成图像归档和图像处理两方面功能需求:
(1)图像归档:对图像进行批处理、 生成图像预览、 图像格式转换等
(2)图像处理:图像基本处理、 像素处理、 颜色处理等
🍓Image类解析
💚图像的创建
在PIL中, 任何一个图像文件都可以用Image对象表示Image类的图像读取和创建方法
from PIL import Image im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg") im.show() // 显示
基本上如下图
💙图像的属性
from PIL import Image im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg") im.show() print(im.format,im.size)
# 结果
# JPEG (1920, 1080)
💜图像的转换
jpg 转换成png
from PIL import Image im = Image.open(r"E:\Pycharm\Project\pictures\2049675.jpg") print(im) im.save(r"E:\Pycharm\Project\pictures\2049675changed.png") im = Image.open(r"E:\Pycharm\Project\pictures\2049675changed.png") print(im) im.show()
# 结果
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1920x1080 at 0x1A8DE865F40>
<PIL.PngImagePlugin.PngImageFile image mode=RGB size=1920x1080 at 0x1A8DE8D2E80>
GIF文件图像提取。
对一个GIF格式动态文件, 提取其中各帧图像, 并保存为文件
from PIL import Image im = Image.open(r"E:\Pycharm\Project\pictures\21.gif") # 读入一个GIF文件 try: im.save('picframe{:02d}.png'.format(im.tell())) while True: im.seek(im.tell()+1) # 帧的位置 im.save('picframe{:02d}.png'.format(im.tell())) except: print("处理结束")
结果
tell()方法:返回当前帧所处位置,从0开始计算
缩略图
from PIL import Image im = Image.open(r"E:\Pycharm\Project\pictures\2050074.jpg") print(im) im.thumbnail((128, 99)) im.save("mm","JPEG") print(im) im.show()
# 结果
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2757x2135 at 0x238DFCD5DC0>
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=128x99 at 0x238DFCD5DC0>
💗图像处理
1.Image类可以缩放和旋转图像, 其中, rotate()方迪拜服务器http://www.558idc.com/dibai.html法以逆时针旋转的角度值作
为参数来旋转图像。
2.Image类能够对每个像素点或者一幅RGB图像的每个通道单独进行操作,split()
方法能够将RGB图像各颜色通道提取出来, merge()方法能够将各独立通道再合成一幅新的图像。
图像的颜色交换
交换图像中的颜色, 可以通过分离RGB图片的三个颜色通道实现颜色交换
from PIL import Image im = Image.open(r"E:\Pycharm\Project\pictures\2050536.jpg") #打开文件 r, g, b = im.split() #获得RGB通道数据 newg = g.point(lambda i: i * 0.9) # 将G通道颜色值变为原来的0.9倍 newb = b.point(lambda i: i < 100) # 选择B通道值低于100的像素点 om = Image.merge(im.mode, (r, newg, newb)) # 将3个通道合形成新图像 om.save(r"E:\Pycharm\Project\pictures\aa.jpg") #输出图片 om.show()
原图:
交换后
3.图像的过滤和增强
PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方法, 共10种
轮廓效果
from PIL import Image from PIL import ImageFilter im = Image.open(r"E:\Pycharm\Project\pictures\2050558.jpg") om = im.filter(ImageFilter.CONTOUR) om.save('abc.jpg') om.show()
原图:
修改后:
4.ImageEnhance类提供了更高级的图像增强需求, 它提供调整色彩度、 亮度、 对比度、 锐化等功能
总结
提示:这里对文章进行总结:
到此这篇关于Python 图像处理之PIL库详解用法的文章就介绍到这了,更多相关Python 图像处理内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!