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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)