Python3 处理图片库 PIL

Python3 处理图片库 PIL,第1张

概述PIL 是 Python 的内置库,我们直接 import 引入即可使用from PIL import Image1. 读取图片 # 打开图片文件 img = Image.open('baidu.jpg') img.show()2. 裁剪图片找到图片的像素有很多种方式,我们以 PS 为例,打开图片直接按快捷键 F8 , 或者手动打开菜单的 “窗口” - “信息”...

PIL 是 Python 的内置库,我们直接 import 引入即可使用

from PIL import Image
1. 读取图片
# 打开图片文件img = Image.open('baIDu.jpg')img.show()
2. 裁剪图片

找到图片的像素有很多种方式,我们以 PS 为例,打开图片直接按快捷键 F8,或者手动打开菜单的 “窗口” - “信息”,然后在属性中可以选择像素、英寸、厘米、毫米……

crop 参数分别代表 左、上、右、下 的像素坐标

cropped = img.crop((1500,1350,2700,1750))cropped.show()
3. 灰度处理

L 模式处理后的图片黑白图片,也叫做灰度化处理

# 灰度处理 - 黑白图片grayscale = cropped.convert('L')grayscale.show()
4. 二值化处理

所谓二值化就是图片非黑即白,是为了增强对比度,能更好的突出图片中的重点

# 自定义灰度界限,大于这个值为黑色,小于这个值为白色threshold = 60table = []for i in range(256):    if i < threshold:        table.append(0)    else:        table.append(1)# 图片二值化photo = grayscale.point(table,'1')photo.show()
5. 增强对比度

和二值化类似,不过对比度可以选择对比强弱,二值只有黑白

from PIL import ImageEnhanceenhance = ImageEnhance.Contrast(cropped)enhance_value = 100contrast = enhance.enhance(enhance_value)contrast.show()
6. 保存图片到磁盘
img.save("baIDu.bak.jpg")
7. 保存图片到内存

有时候我们想直接使用处理后的图片进行 ORC 识别,但是这时的图片是 Image 对象,ORC 识别 或者打码平台提供直接上传二进制流,那么怎么能让 Image 对象转换为二进制流呢?

很可以我没有找对对应的方法,我们可以变通一下,将 Image 对象保存在内存中,因为保存的时候不管是磁盘还是内存都是二进制的

# 将 Image 对象以二进制流的方式存储在内存中output_buffer = BytesIO()photo.save(output_buffer,format='JPEG')# 读取内存中的二进制流byte_data = output_buffer.getvalue()print(byte_data)

注意:代码中的 img.show() 是将图片d出预览,可供编码调试,在实际生产环境中可注释掉

总结

以上是内存溢出为你收集整理的Python3 处理图片库 PIL全部内容,希望文章能够帮你解决Python3 处理图片库 PIL所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存