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

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

以下是python代码:

 from PIL import Image,ImageFilter

 Diff_radius = 500
diff_min = 150
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 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))
else:
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的初学者。。。

Python + PIL 处理支付宝AR红包的更多相关文章

  1. 支付宝AR红包引出Python中的PIL小试

    这两天支付宝AR红包火了,周围的同学全在玩.可是我一直在想这个原理是什么?通过请教大神和思考,知道了它有两个限定条件:GPS地理位置和图片的识别.所以,只要我们有了这两个限定条件,就不难进行该红包的破 ...

  2. 说一说关于破解支付宝AR红包的事

    当朋友圈的你们才开始分享支付宝AR红包的消息的时候,我已经对它动了一二三四次歪脑筋了,虽然事实证明并不是那么顺利,至今我也只在电脑前识别出5个不知道在哪里的红包,其中一个还因为定位信息不符开不了. 昨 ...

  3. 支付宝AR抢红包?前端轻松就破解~

    近期阿里搞了各LBS+AR实景的红包玩法,小伙伴们在公司里都玩疯了~ 有时候为了抢一个红包,会跑到另一个地方去拍照,虽然略麻烦,但整体的互动还是很有意思的. 不过对于机智的前端童鞋来说,只需要简单的一 ...

  4. 支付宝AR实景红包上线不久即遭破解,官方已提高技术门槛

    临近春节,阿里巴巴和腾讯的红包大战可谓下足功夫,上周支付宝推出了AR实景红包,该玩法基于"LBS+AR+红包"的方式,类似与今年火爆全球的AR手游Pekomon Go ,只不过这次 ...

  5. python PIL 图像处理

    python PIL 图像处理 This blog is from: https://www.jianshu.com/p/e8d058767dfa Image读出来的是PIL的类型,而skimage. ...

  6. Python,PIL压缩裁剪图片

    自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...

  7. 手机浏览网页或打开App时莫名弹出支付宝领红包界面的原因及应对措施

    自从支付宝推出扫码领红包活动后,这种模式独特的赏金机制,短时间内吸引了大量的关注,但是随之也产生了很多的问题,比由于如在赏金的驱动下,微信群里铺天盖地的红包口令,朋友圈里各式各样的领红包二维码图片, ...

  8. Python PIL

    Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. ...

  9. python PIL 图像处理操作

    python PIL 图像处理 # 导入Image库 import Image # 读取图片 im = Image.open("1234.jpg") # 显示图片 im.show( ...

随机推荐

  1. C++ 中静态成员函数访问非静态成员变量的方法

    最近在 VS2010 里开发出厂烧写工具,遇到一个问题: 我创建了一个线程,在这个线程里要访问非静态成员,而这个线程函数是静态的.最后找到的办法是用对象指针来做. sourcecode: #test. ...

  2. qsort C++ VS2013 leetcode

    class Solution { private: static int compare(const void * a, const void * b) { return (*(int*)a - *( ...

  3. 002. Centos7安装mysql5.5.37

    下载cmake-2.8.12.2.tar.gz, 下载地址: https://pan.baidu.com/s/1qYtpX7m 下载mysql-5.5.37.tar.gz, 下载地址: http:// ...

  4. python之错误和异常

    错误 分为语法错误和逻辑错误,如下: 语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器编译. 逻辑错误可能是由于不完整或是不合法的输入所致,或者是无法生成.计算.或是输出结果需要的过程无法 ...

  5. css 多个不定数量提交按钮居中显示,纯css解决

    前几天在公司修改一个css 多个按钮居中问题,其实这样的问题很多前端程序员都遇到过,举个例子吧: 在一行中有三个按钮或是两个按钮...个数不定,然后间距固定:然后就有很多人把所有按钮放到一个div中, ...

  6. nginx(tengine)的一些小优化(持续更新)

    1.nginx日志切割脚本 需求来源:nginx本身并没有日志切割的功能,由访问产生的大日志很难进行分析. 实现目的:每天对nginx日志进行切割,并备份至指定文件夹. 简要指令: mv /usr/l ...

  7. [Linux] - CentOS IP设置方法

    CentOS 7的IP设置方法: 1.手动设置IP方法 a) 运行命令,cd到目录: cd /etc/sysconfig/network-scripts/ b) 运行命令:ls -l 找到类似这个文件 ...

  8. PHP MYSQL单向同步方案

    项目上有个需求,需要从外网服务器的MYSQL同步到本地服务器上. 思路如下: 1 在外网MYSQL中创建表 table_change_log ,记录表中数据的更改记录. DROP TABLE IF E ...

  9. http请求相关

    1.POST方式向服务器发送AJAX请求时   设置请求头 application/x-www-form-urlencoded 2.表单上传文件时     设置请求头 multipart/form-d ...

  10. spring mvc 参数

    Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts: Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求. 在MVC框架中,Struts属于V ...