Python+PIL实现支付宝AR红包


Posted in Python onFebruary 09, 2018

本文实例为大家分享了Python+PIL处理支付宝AR红包的具体代码,供大家参考,具体内容如下

思路比较简单:

1、对图片进行锐化处理;
2、设(r_h, g_h, b_h)为支付宝遮罩黑条的RGB值,以此为中心,查找半径为Diff_radius的范围内所有的色值;

Python+PIL实现支付宝AR红包

3、对每一行符合步骤2的像素点个数进行计数,若该数值超过某个临界值(如:图片宽度的一半),将其所在行替换为上一行非遮罩数据;
4、对处理后的图片高斯滤镜。

以下是python代码:

from PIL import Image,ImageFilter
 
Diff_radius = 500
diff_min = 1
r_h, g_h, b_h = 43, 55, 66
 
image = Image.open('test.png')
image_width = image.size[0]
image_height = image.size[1]
rgb_im = image.convert('RGB')
 
img_sharpen = image.filter(ImageFilter.SHARPEN)
 
img_new = Image.new('RGBA', image.size, (255,255,255,255))
img_copy = img_sharpen.crop((0,0,image_width,image_height))
img_new.paste(img_copy, (0,0,image_width,image_height))
 
y_tmp = 0
 
for y in range(image_height):
  y_is_black = 0
  current_line_flag_acc = 0
  for x in range(image_width):
    r, g, b = rgb_im.getpixel((x, y))
    if ((r_h-r)**2 + (g_h-g)**2 + (b_h-b)**2) < Diff_radius :
      current_line_flag_acc = current_line_flag_acc + 1
      if (x == image_width - 1) and (current_line_flag_acc > diff_min) :
        y_is_black = 1
        img1 = img_new.crop((0,y_tmp-2,image_width,y_tmp-1))
        img_new.paste(img1, (0,y,image_width,y+1))
        # print('y_tmp:%d -> y:%d'%(y_tmp,y))
    elif (x == image_width - 1) and not y_is_black:
      y_tmp = y
# img_save = img_new.filter(ImageFilter.GaussianBlur(radius=1.5))
img_new.save('test_1.png')
print("done!")

对于不同的图片,可能需要修改3、4、5行的参数。

目前测试过几组照片,发现给出的线索图片越复杂,这种方法处理后能被识别的成功率越高,尤其是对人脸,简单的处理后基本都可以识别。

识别成功的:

Python+PIL实现支付宝AR红包

Python+PIL实现支付宝AR红包

识别失败的:

Python+PIL实现支付宝AR红包

以上内容仅用作学习,起到抛砖引玉的作用,请不要用作其他用途。我只是个python和PIL的初学者。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在漏洞利用Python代码真的很爽
Aug 26 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
python实现定时提取实时日志程序
Jun 22 Python
实例讲解python中的序列化知识点
Oct 08 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
python导入库的具体方法
Jun 18 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
Python配置pip国内镜像源的实现
Aug 20 Python
详解Python中的文件操作
Jan 14 Python
Django中的JWT身份验证的实现
May 07 Python
一起来学习Python的元组和列表
Mar 13 Python
Python 实现12306登录功能实例代码
Feb 09 #Python
Python多层装饰器用法实例分析
Feb 09 #Python
理论讲解python多进程并发编程
Feb 09 #Python
Python装饰器(decorator)定义与用法详解
Feb 09 #Python
详解python的ORM中Pony用法
Feb 09 #Python
python监控键盘输入实例代码
Feb 09 #Python
Python with语句上下文管理器两种实现方法分析
Feb 09 #Python
You might like
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
filemanage功能中用到的common.js
2007/04/08 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
Python实现的选择排序算法示例
2017/11/29 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python 发送json数据操作实例分析
2019/10/15 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
求职信模版
2013/11/30 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
小型女装店的创业计划书
2014/01/09 职场文书
大学生先进事迹材料
2014/02/16 职场文书
《乌塔》教学反思
2014/02/17 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
植树节新闻稿
2015/07/17 职场文书
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB