加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Python3 处理图片库 PIL

发布时间:2021-05-21 04:53:15 所属栏目:大数据 来源: https://blog.csdn.net/yilovex
导读:PIL 是 Python 的内置库,我们直接 import 引入即可使用 from PIL import Image 1. 读取图片 # 打开图片文件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 = 60
table = []
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 ImageEnhance

enhance = ImageEnhance.Contrast(cropped)
enhance_value = 100
contrast = 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() 是将图片弹出预览,可供编码调试,在实际生产环境中可注释掉

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读