Python + PIL 处理支付宝AR红包

  

思路比较简单:
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 = 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的初学者。。。

时间: 2024-12-26 02:03:58

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

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

这两天支付宝AR红包火了,周围的同学全在玩.可是我一直在想这个原理是什么?通过请教大神和思考,知道了它有两个限定条件:GPS地理位置和图片的识别.所以,只要我们有了这两个限定条件,就不难进行该红包的破解! 首先是GPS定位,我们可以采用一个地址模拟器实现,或者就查找本地周围的红包即可.然后关键是图片的识别,刚开始想到的是将提示的图片进行截图,放到电脑上,手机直接扫描截图不就好了?结果是不行的!原因是进行提示的截图中间有若干黑色的条纹,会影响到图片的识别.我们应该怎么处理图片呢?这里提供一种借鉴来

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

当朋友圈的你们才开始分享支付宝AR红包的消息的时候,我已经对它动了一二三四次歪脑筋了,虽然事实证明并不是那么顺利,至今我也只在电脑前识别出5个不知道在哪里的红包,其中一个还因为定位信息不符开不了. 昨天上午听公司的小伙伴说起支付宝新推出的AR红包,LBS加图像识别的另一个创新,可说是支付宝在社交互动这一块终于打出来的一张好牌.然而,在许多人还在奔走相告这个消息的时候,我已经和小伙伴们对它动起了歪心思. 首先当然是抓包,但并没有结果.想必是汲取了之前微信朋友圈的红包照片的教训,通过其他流的方式来传

扫福得福背后,支付宝 AR 红包的技术创新与故事

春节期间,支付宝的「扫福得福」活动火爆异常.AR 是一种新的交互方式,与传统营销方式相比,可以使用户更深入地参与互动,给用户带来新体验.而支付宝红包,寄托着用户对未来的期盼,因此其团队就考虑将 AR 与红包相结合,探索一种新的玩法.在 AR 领域走在前面的支付宝,其 AR 红包的技术选型.技术架构及其背后的技术故事都有哪些? 写在前面 2004 年 12 月 12 日,我加入雅虎中国,也加入了互联网大军.至今,我还依稀记得,当时心中那种对互联网的敬畏之情.2009 年,在雅虎的四年外企生活一晃而

从“扫月亮”到“扫福字”,扒一扒背后的支付宝AR框架体系

承智关于支付宝AR框架体系和实践的分享主要分为以下三个部分: 支付宝AR框架体系 AR实践案例分享 总结和展望 在本次分享中,来自蚂蚁金服支付宝多媒体技术部猎鹰团队的技术专家承智为大家解密了支付宝AR红包背后的技术.在他的演讲中首先分享了支付宝对于AR技术需求的一些特点,之后分享了在对支付宝AR框架体系进行设计时遇到的一些问题和挑战,以及支付宝多媒体猎鹰团队是如何满足产品运营需求的,并结合四个具体的案例分享了在支付宝AR实践中遇到的一些问题和收获的经验,最后对于支付宝AR技术的发展进行了总结和展

紧跟QQ 为什么支付宝不避嫌也推AR红包?

如果要细数今年AR(增强现实技术)领域新突破的话,Pokémon Go火爆全球算是一例.在美国市场,Pokémon Go上线仅5小时就登上了手机游戏排行榜首,一周之后日均活跃用户就超过了Twitter,用户停留时间也超过了Facebook.在创造用户奇迹的同时,它不仅在广度上拓展了AR技术的应用,也深度引爆了增强现实技术在国内的热度,大有盖过VR(虚拟现实技术)之势. 随着农历春节临近,国内互联网巨头陆续加快了AR战略角逐的脚步.近日,在腾讯QQ宣布春节将采用AR+LBS的方式玩红包之后,支付宝

python PIL库回顾

之前用PIL的时候都不知道看官方文档,网上搜索结果靠前的一些介绍性的博客其实很扯淡,讲两个函数.贴三张图,文章就完了. 今天把他的文档看了看,发现一点也不简单,网上介绍的不过是冰山一角. 对于我这样一个不太懂多媒体的人,如果用到图像处理,主要也就这些操作: 读写.取通道.两幅图合并.像素点操作.各种滤镜.色彩模式转换.图像旋转.缩放.裁剪.仿射. PIL对付这些小喽啰,都是完全没有问题的. 读写 open是Image类的一个方法,返回值是一个Image对象,值得注意的是,open不能打开网络图片

RGB值转化图片(python PIL)

今天看到一道misc的题目,得到一RGB值的txt文件,需解决RGB值转图片.具体题目:here 由于第一次碰到这个类型的题目,做一下记录,在这里我采用的是python 的PIL图像库 具体思路: 1.首先我们要先确定图片的size,既宽度高度 通过txt文件行数(61366=2*61*503,因为最后一行是空行,所以不在计算范围内)的整数分解 可以得到以下几个不同的size:503*122,1006*61,30683*2(x,y交换一下对图片不会有很大的变化,只是横着和竖着的区别) 所以我们接

python PIL库回顾1

1 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HE

图片切碎片脚本 python PIL库实践

python PIL库实践运用,对图像进行切碎片操作. 原图如图一 图一 我们想要的是图片的不同部分,比如图二中1.2.3.4每一个分区单独的碎片, 图二 做法是做出4张跟原图大小一样的碎片模版图,白底,想要的区域涂黑(非纯白)即可.1区域的碎片模板图如图三所示: 图三 脚本处理图片的方法:先找出碎片模版中的非白区域(可以不规则),然后将原图中这个区域内的所有像素点的颜色都放到新的一张跟原图像素大小一样的新图上,新图的其余位置都设置成透明(可以根据自己的不同需求进行不同的调整). 1碎片模版得到