移动端二维码扫描解决方案衍变

  • 目录
    • 踩坑&方案
    • 方案选择
      • Zxing方向
      • Hms ScanKit方向
    • 总结

目录

踩坑&方案

Zxing yyds? no,no,no -> ScanKit yyds!

方案选择

Zxing方向

  • Zxing入坑

接到一个二维码扫描的需求,一开始对于在开源SDK的选择中, 选择了ZXing.


  • 坑位1: Zxing功能拆解

在方案实施过程中, 发现Zxing封装的Zbar对于开发来说过于耦合, 所以进行了拆解,对核心的QRScanView进行定向化开发.


  • 坑位2: 资源不复用的胃痛

这需要调用摄像头资源, 而原本的人脸识别已经占用了摄像头资源.
所以我采用两个界面切换的方式进行转换. 但是频繁的切换, 频繁开关摄像头资源. 导致了系统极易Stack Overflow而崩溃.


  • 坑位3: 堪忧的效果

所以我整合了人脸及二维码识别进一个界面, 直接将二维码识别的进程附着在人脸识别的帧回调中,
启用开关的方式来调用QRScanView二维码的onFrameChanged方法.
成功
此方案可行.虽然能够识别,但是效果不是很好,往往手机举半天,还得把二维码贴在摄像头脸上才能识别出来.
显然这中效果是达不到工业应用级别的,用户体验很不好.


  • 坑位4: 试图给机会-缩小识别范围

怎么办呢?能不能优化了?
1将图像扫描面积缩小, 只扫描方框区域. 缩小识别范围. 实践不可行.
本来全屏好不容易扫出来, 现在扫描几率更渺茫了.


  • 坑位5: 试图给机会-优化算法

对算法进行优化呢? 现在结合之前图像处理算法的经验.
可不可以用灰度化,二值化之类的算法呢. 然而Zxing已经做了, 那么是不是传入的帧图像已经压缩过了呢,
导致本就不清晰的摄像画面更加模糊导致识别不出呢.

实践: 先将帧图像转化成Bitmap. 再对Bitmap做放大切割. 不可行. 直接识别不出来了. 看来这条分支路线走死了.


Hms ScanKit方向

  • 坑位6: Hms ScanKit黑屏

那么回到Zbar本身, 搜阅资料发现, Zbar的效率问题是确实存在的.
及时止损,补救时间. 切换Hms ScanKit, 发现上手配置很简单. 下载源码demo, 参考源码, 采用Custom方式自定义界面识别, 但是很奇怪.
一样的代码, 自己的源码预览是黑屏的, 识别也没有效果.


  • 成功脱坑

切换方法. 沿用坑位3的思路,
附着帧回调, 直接调用Bitmap识别方法. 所以还是将二维码识别的进程附着在人脸识别的帧回调中,
将Byte图像流转换成Bitmap, 再异步处理. Bingo!!! 实践成功,识别速度很快. 效果很好可行!!!

总结

第一层: 上文中没有一个步骤是多余的无用的, 上一步骤是下一个步骤的基础和继承

第二层: 人生无无用的经历, 包括那些弯路也是, 恰恰因为弯路上的宝贵经验,思考和风景, 才有此刻的敏锐的胆识和超然的心态.

第三层: 华为yyds!!!

【Android】移动端二维码扫描解决方案衍变相关推荐

  1. 完整的二维码扫描解决方案

    现在的应用都有自己的二维码扫描工具,最近接手的项目也不例外,集成了ZXing二维码扫描,但是用起来却实在差强人意,后来看到QrCodeReaderView效果不错,识别速度上有明显提高,而且使用也非常 ...

  2. H5 移动端二维码扫描

    H5 移动端二维码扫描-附加扫描样式 依赖包jsQR 思路:通过浏览器获取视频流播放在video当中,然后设置定时器截取视频流绘制在canvas中,使用canvas获取到图片信息,再使用jsQR解析二 ...

  3. android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Hol ...

  4. [转载]android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) 前天早上登陆CSDN时候一条消息:一网友提出了两点疑惑 扫描框目前只是做的假象,是全屏的图片进行解析 中文乱码现象 ...

  5. Android 应用之二维码扫描登录

    下面介绍二维码扫描登录原理, 首先需要web服务端,和app客户端. web服务端主要工作是生成二维码,检测客户端提交信息正确性,更新网页界面. app客户端主要工作是扫描二维码,提交账户信息(此不是 ...

  6. Android 集成zxing二维码扫描、自定义

    项目主要有zxing的基本使用,包含扫描回调.连续扫描.自定义扫描框: 一.依赖库 implementation 'com.journeyapps:zxing-android-embedded:4.3 ...

  7. Android 基于Zxing二维码扫描的光速实现

    Android 十分钟光速实现二维码扫描 前言 在项目中要使用到二维码的相关内容,我们第一时间想到的是使用大名鼎鼎的zxing或者ZBar开源框架: github-zxing官方库的地址 github ...

  8. Android实现一维二维码扫描生成功能(一)-zxing导入现有项目

    前言 目前二维码扫描功能很流行也非常成熟了,而zxing项目也是目前可以说是最流行的二维码扫描方面的开源项目了,很多大神都对zxing进行了封装,github上也有很多好用的二维码开源库,但是我更喜欢 ...

  9. Android 9 实现二维码扫描处理(BGAQRCode-Android) 笔记

    首先声明,本笔记是在下面这位大佬的代码基础上改的,本人会将实现过程中出现的问题和经验写在下面,本笔记可以结合github上作者的readme一起看: https://github.com/bingoo ...

最新文章

  1. java jdk 8u111_8u111-jdk-alpine在java开发中的NullPointerException错误解决方案
  2. ps aux|grep
  3. R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战
  4. 悟空 CRM(9.0版本)V9.0_20190416 更新日志
  5. 新年新气象,祝所有朋友心想事成
  6. python转行it好学吗-我研一想转行it,建议Java还是Python呢?
  7. 零售业创新服务:Kochhaus杂货店按照菜谱陈列商品
  8. 计算机网络基础_4_传输层与应用层的作用
  9. leetcode 235. Lowest Common Ancestor of a Binary Search Tree | 235. 二叉搜索树的最近公共祖先(哈希表)
  10. /home/appleyuchi主目录迁移到新磁盘中
  11. eclipse查看git地址_使用Git进行版本控制
  12. 良心推荐:高品质音乐播放器Audirvana for Mac
  13. c语言api文档_初学 C 语言没有项目练手?这 20 个小项目拿走不谢
  14. SQL注入-联合注入
  15. linux中docker容器与宿主系统之间文件拷贝
  16. 刨根问底 | 红遍全网的SD-WAN,到底是个啥?
  17. gcode2pointClound
  18. fluent linux运行算例,在linux环境下运行fluent,case文件中带有udf的话,jou文件应该做什么改变呢?...
  19. 【毕业N年系列】 毕业第二年
  20. 纽扣电池常识——以CR2450为例

热门文章

  1. 通证经济,一个正在狂奔的互联网数字经济时代
  2. Windows 修改本地的IP ,改成自己喜欢的IP
  3. php取得json_decode中的值,php json decode-获取值
  4. svg 缩放_研究:可缩放矢量图形(SVG)
  5. linux 解压7z的压缩包,解压多个拆分的压缩包
  6. MicroNet: 低秩近似分解卷积以及超强激活函数,碾压MobileNet | 2020新文分析
  7. 【JavaWeb实验】图书管理系统
  8. Ubuntu history命令 查看 terminal 曾经执行过的命令
  9. 转载:ACE访谈之二 - 熊军:不积跬步,无以至千里
  10. 3/18外汇行情分析及操作建议!