安卓支付宝红包密码的图片的处理实践_图文
有一天,群里面有一个群员发来一个图片,图片上面有支付宝红包的密码,于是我就想能不能做成类似于抢QQ红包一样的东西,经过几天的实践,思路如下:
1. 监听QQ群或者微信群里的图片红包消息(使用AccessibilityService)
2. 手动点击图片进入查看图片详情,AccessibilityService里面处理把图片剪切成只有密码文字的图片的动作
3. 对剪切后的图片进行去燥处理(本文重点)
4. 使用google开源框架Tesseract-OCR进行常见样本训练,把自己要用到的词都训练进去
(我在win7上使用到的软件tesseract.exe和jTessBoxEditorFX)
5. 把训练出来的结果(名字如chi_sim.traineddata)放到android项目中的Tesseract-OCR指定目录(一般为sd卡/tesseract)
6. 使用Tesseract-OCR开源框架进行步骤3图片的识别
7. 识别成功后调用支付宝软件,点开红包界面,把步骤6的识别出来的密码文字,粘贴到密码框中,点击确定(这个可以手动做,因为识别的密码有可能部分错误)
本篇重点介绍对剪切后的图片进行去燥处理步骤:
1. 找到一个支付宝保存的图片
2. 把他的密码通过android剪切功能弄出来(网上很多办法),如图
3. 对它进行线性灰度变化,代码如下
public Bitmap lineGrey(Bitmap image)
{
//得到图像的宽度和长度
int width = image.getWidth();
int height = image.getHeight();
//创建线性拉升灰度图像
Bitmap linegray = null;
linegray =image.copy(Bitmap.Config.ARGB_8888, true);
//依次循环对图像的像素进行处理
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++){
//得到每点的像素值
int col = image.getPixel(i, j);
int alpha = col & 0xFF000000;
int red = (col &0x00FF0000) >> 16;
int green = (col &0x0000FF00) >> 8;
int blue = (col &0x000000FF);
// 增加了图像的亮度
red = (int) (1.1 * red + 30);
green = (int) (1.1 * green +30);
blue = (int) (1.1 * blue + 30);
//对图像像素越界进行处理
if (red >= 255)
{
red = 255;
}
if (green >= 255) {
green = 255;
}
if (blue >= 255) {
blue = 255;
}
// 新的ARGB
int newColor = alpha | (red<< 16) | (green << 8) | blue;
//设置新图像的RGB值
linegray.setPixel(i, j,newColor);
}
}
return linegray;
}
效果如下
4. 把上面步骤处理好的图片进行二值化处理,代码如下
// 该函数实现对图像进行二值化处理
public Bitmap gray2Binary(Bitmap graymap) {
//得到图形的宽度和长度
int width = graymap.getWidth();
int height = graymap.getHeight();
//创建二值化图像
Bitmap binarymap = null;
binarymap =graymap.copy(Bitmap.Config.ARGB_8888, true);
//依次循环,对图像的像素进行处理
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++){
//得到当前像素的值
int col = binarymap.getPixel(i,j);
//得到alpha通道的值
int alpha = col &0xFF000000;
//得到图像的像素RGB的值
int red = (col & 0x00FF0000) >>16;
int green = (col &0x0000FF00) >> 8;
int blue = (col &0x000000FF);
// 用公式X = 0.3×R+0.59×G+0.11×B计算出X代替原来的RGB
int gray = (int) ((float) red *0.3 + (float) green * 0.59 + (float) blue * 0.11);
//对图像进行二值化处理
if (gray <= 246) {
gray = 0;
} else {
gray = 255;
}
// 新的ARGB
int newColor = alpha | (gray<< 16) | (gray << 8) | gray;
//设置新图像的当前像素值
binarymap.setPixel(i, j,newColor);
}
}
return binarymap;
}
效果如下:
哈哈,看到了吧,这样清楚,这样明显的支付宝口令密码,使用Tesseract-OCR是不是更容易,更简单,更准确!因为这个源码已经在上面贴上了,如果还有亲,需要源码的话,可以留言,我根据大家的意见上传demo!
安卓支付宝红包密码的图片的处理实践_图文相关推荐
- 如果要用运营的姿势,发支付宝红包
作者:柳不浪 全文共 4365 字 1 图,阅读需要 10 分钟 ---- / BEGIN / ---- 本文仅从用户个体的角度,来聊聊至今不绝于微信群的吱口令红包. 邀请朋友领红包,当TA到店付款后 ...
- Android例子源码仿支付宝手势密码的功能实现
本项目是一个仿支付宝手势密码部分的源码,项目在1280×720分辨率上显示有问题,在 854x480上没有问题,项目编码UTF-8默认编译版本4.4.2,实现思路: 1.要用一个类来表示这9个点中的第 ...
- python模拟春节集五福_用Python分析支付宝红包和2018年集五福活动,你准备好了吗?...
想必各位对于支付宝"集五福"活动一定都有深入的了解,从2016年开始,中国网友们关于过年的记忆再次更新,除了看春晚,年夜饭以外,集"五福"突然成了一个全家参与的 ...
- Android一步一步剖析+实现仿支付宝手势密码自定义View
最近项目需求:要求在项目中添加手势密码和指纹验证,恰巧最近在苦练自定义View,于是参考了网上轮子和自己的理解,实现了如下的效果. 国际惯例:Without pic you say a JB(奖杯). ...
- python发微信红包群二维码_小伙利用Python群发“支付宝”红包短信,一天赏金可达上千元...
原标题:小伙利用Python群发"支付宝"红包短信,一天赏金可达上千元 注:以下教程仅供学习交流,娱乐而已,切勿用在非法途径 前言 最近朋友圈.微信群.QQ群里面全是什么扫码领取支 ...
- 支付宝红包主题怎么设置(图文教程)
支付宝APP可以用于线下门店支付.还可以添加好友进行转账发红包等操作.默认的红包封面没有花色.如果觉得看起来单调.可以自己选择红包主题.在领取时还可以看到不同的图片页面.增添趣味性. 支付宝红包主题在 ...
- 如何获取支付宝红包参数?
大家都知道,一直以来,微信都是禁止直接跳转支付宝的,这让很多人分享支付宝红包到微信,对方领取支付宝红包流程较为麻烦,今天,小编就教你一招可从微信直接跳转支付宝的教程. 教程如下: 1.首先打开支付宝, ...
- 解决微信小程序安卓手机访问不到图片,无法显示图片
关于微信小程序不显示图片 通病可能有以下几个可能性: 非本地图片:确定图片资源存在,copy 图片url再浏览器打开,确定图片资源存在且能正常访问 本地图片:确定相对路径或者绝对路径正确 微信小程序图 ...
- 安卓获取手机视频和图片
安卓获取手机视频和图片 获取手机本地视频 首先需要获得手机内存权限 在AndroidManifest.xml中添加代码,获得读取权限 android.permission.READ_EXTERNAL_ ...
最新文章
- 【转】Robot Framework 快速入门
- 一分钟学会看k线图_看K线图:阴跌如钝刀
- java连接本地oracle数据库_JAVA连接oracle数据库的三种方式
- 关于Dictionary字典和List列表
- 2010中国杭州电子信息博览会通讯报道
- CefSharp中c#和JavaScript交互读取电脑信息
- 判断条件要仔细推敲(记洛谷P1317题WA的经历,Java语言描述)
- 50-10-010-配置-整体配置
- 【FlexSim2019】自学笔记:一个实例看何为A连接?何为S连接?其意义的深入探讨
- Spring IOC的三种主要注入方式?
- 64位 centos 服务器 编译安装 gcc-4.6.2 和 codeviz
- 重写description方法
- java小游戏源码_分享几款java小游戏源码
- TextView跑马灯和editText抢占焦点,键盘弹不出来问题解决
- 64位系统安装SQL2000SP4详细教程[已测试WIN72008R2]
- 电脑每次开机都出现check file system on:C 的解决办法
- Android TV 焦点控制
- MMdetection2测试voc数据获取precision
- php数组键值对是什么意思_php数组中键值对怎么理解呢?
- Git(七)——删除历史版本,保留当前状态
热门文章
- 腾讯唯一时序数据库:CTSDB 解密
- 2022年高新企业申报 。
- AVL树关于不平衡旋转问题
- android studio profiler 内存分析用法
- 我所看到的韩国 -- 韩剧为什么要欺骗我们
- WebOffice浏览器兼容性设置
- JAVA 阶段测试题-SQL
- SpringBoot:Invalid character found in method name. HTTP method names must be tokens
- ssm电影院管理系统的设计与实现 毕业设计-附源码241505
- qrencode生成二维码\微信开源算法识别opencv-contrib(一)