python PIL截图,白底黑字,背景透明

从大图中截取小图
图片二值化,判断是否白底黑字,不是反转颜色

from PIL import Image, ImageOps

# 从大图中截取小图
def jietu(path, frame):
    img = Image.open(path)
    cropped = img.crop(frame)
    cropped.save("xiaotu.png")

    heibaitu(cropped)

# 图片二值化,判断是否白底黑字,不是反转颜色
def heibaitu(img):
    Img = img.convert('L')
    threshold = 100
    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    image = Img.point(table, '1')
    image.getcolors()
    rgb_start = image.getcolors()[0]
    rgb_end = image.getcolors()[-1]
    rgb_start_color, rgb_end_color = rgb_start[1], rgb_end[1]
    rgb_start_int, rgb_end_int = rgb_start[0], rgb_end[0]
    # 
    if rgb_start_int > rgb_end_int:
        if rgb_start_color == 0 or rgb_start_color == (0, 0, 0):
            image = ImageOps.invert(image.convert('RGB'))
            
    image.save("heibai.png")
        

if __name__ == '__main__':
    jietu('test.jpg', (2825.98, 404.97, 3451.89, 1038.38))
   

打开三张图:
在这里插入图片描述
再将白底透明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值