有段时间没有写博客了,不知道是因为工作的原因还是懒了...
程序员还得以写代码为生,so~进入主题吧
公司是做广告服务的,运转模式一句话就是:在车内设备上播放广告主投放的广告,并获取收益,现在有个需求是,要统计广告主投放的广告里面的二维码的扫码量,进行数据分析,为后面人物画像做准备,因多种事业环境因素,让广告主提供统计数据或者提供链接给我们,我们生成二维码等,根本不太可能,所以,只能自己撸启袖子干!
我疏导了下流程,如下:
1.广告审核的时候,判断图片是否包含二维码
2.包含二维码的图片,对原图片里面二维码进行识别并定位
3.获取原图片里二维码的信息和坐标信息(x,y,w,h),并保存起来
4.开发一个接口,这个接口可以理解为新二维码的链接路径
5.根据坐标使用上面接口如(www.abc?taskId=10&imei=2ej3dd)生成新二维码并推送到设备
6.设备获取推送的包含二维码的图片并根据后台分发的坐标信息生成新的二维码
7.设备根据坐标和其他需要携带的参数生成新二维码
8.用户扫码跳转到接口路径,接口获得相关参数记录扫码量并重定向到原图片里面二维码路径
至此,大功告成!
一个东西的技术实现,都是站在前人的肩膀上去累积,优化,总结的,我大概在网上看了下,貌似没有人遇到这种需求,参考了opencv java版本的代码,毕竟不是做图像识别的,这方面的知识有限,所以用了zxing实现.于是自己硬着头皮上,基本实现了我们的业务需求,但,二维码的坐标识别还是有些许的差别,还是把代码分享出来,起抛砖引玉的作用,同时,也希望大家能够在这个基础上进行优化...
以下为代码片段
先加入maven依赖:
<!-- 二维码依赖 -->
<dependency>