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基础教程之类class定义使用方法
Feb 20 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
Python自定义简单图轴简单实例
Jan 08 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
Python中存取文件的4种不同操作
Jul 02 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
Python中断多重循环的思路总结
Oct 04 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
在网页中屏蔽快捷键
2006/09/06 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
详解extract-text-webpack-plugin 的使用及安装
2018/06/12 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
python实现共轭梯度法
2019/07/03 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
保密工作责任书
2014/04/16 职场文书
主题实践活动总结
2014/05/08 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
2014年医生工作总结
2014/11/21 职场文书
贷款担保书范本
2015/09/22 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers