2021SC@SDUSC

文章目录

  • 一、Zxing简介
  • 二、Zxing模块分析
  • 三、与其他相关的第三方开源项目简要比较
  • 四、分工

一、Zxing简介

ZXing (“zebra crossing”) 是一个开源的、多格式的1D/2D条形码图像处理库,支持在图像中解码和生成条形码,用Java实现,具有其他语言的端口,而且支持PC端、移动端。目前支持以下格式的1D/2D条形码:

Type 名称 简述
1D product UPC-A UPC标准码,标识商品
UPC-E UPC缩短码,缩短码一般用在商品包装比较小也就是条码位置不够的商品上。
EAN-8 用于百货业和超市
EAN-13 用于百货业和超市
Code 39 内部管理码,工业行业应用较多,适用于比较小的商品
Code 93 密度比39码高,面积不足时,可替代39码
Code 128 比39码能表现更多的字符,适用于非销售点产品,比如可作为运输行业的集装箱识别码。
Codabar 自检条码,用于读取印刷形式的条码,用于航运业、血库单、图书馆书脊等地方
ITF 全球范围内的商品运输包装
RSS-14 RSS系列条码是一维码和二维码的组合码。
RSS-Expanded 同上
2D QR Code 通常用于产品跟踪或营销,比如广告、杂志或名片。
Data Matrix 占用空间比QR二维码小,是物流或运营中的小件产品的理想选择
Aztec 适用于运输行业的二维码,多用于机票和航空公司登机牌。
PDF 417 适用于需要存储大量数据(如照片、指纹、签名、文本、数字、图形或其他信息)的应用程序,也可用于标识危险品、电子仪器技术规格与标准化数据
MaxiCode Maxicode是特别为高速扫瞄而设计,主要应用于包裹搜寻和追踪上。

由此可见,Zxing的应用范围是非常广泛的。

二、Zxing模块分析

‎ZXing 由多个模块组成,包括核心图像解码库、JavaSE 特定客户端代码和 Android 客户端条形码扫描仪。它是许多其他第三方开源项目的基础。

GitHub地址:https://github.com/zxing/zxing

API文档:https://zxing.github.io/zxing/apidocs/index.html

介绍文档(和docs中的内容同):https://zxing.github.io/zxing/

在这里我们称每个文件夹为一个模块,对各文件夹的描述如下:

模块 描述
core 核心图像解码库以及测试代码
javase 特定于JavaSE的客户端代码
android 安卓客户端条码扫描器,安卓扫码的实例
android-integration 支持通过 Intent 与安卓集成
android-core 配置 Android 相机
zxingorg 基于网络的(在线的)条形码解码器的代码
zxing.appspot.com 基于网络的(在线的)条形码生成器的代码
docs Zxing的介绍文档

核心部分的代码为:core、android、android-core

三、与其他相关的第三方开源项目简要比较

Zbar和 barcode4j是官方的README.md文档中提到的其他相关的第三方开源项目。Zbar和Zxing均可以解码;barcode4j和Zxing均用java编写,都可以生成码。

Zxing Zbar
Java编写,覆盖主流编程语言 C编写,速度极快
目前仍有多人维护 目前处于无人维护状态
Zxing支持更多的1D/2D条形码,例如Data Matrix、Axtec等 Zbar支持1D/2D条形码较少
Zxing不会出现中文乱码 Zbar 有中文会乱码
Android一般用Zxing ios一般用Zbar
Zxing可以生成、解析码 Zbar无法生成码

更多详细数据对比可见:QR 代码读取基准和比较|动态软件开发人员 (dynamsoft.com)

Zxing barcode4j
可以生成、解析码 只能生成码
生成条形码下方没有数字 生成的条形码下边有数字

通过查阅资料简要总结了以上几条。

四、分工

成员一:分析Andriod模块主要代码,理清Zxing的Android端调用流程,并且尝试优化相机配置代码,解决扫码区域小、图像拉伸等问题,提高二维码识别效率。
博客地址

成员二:分析core模块代码中图像解码算法(以主流码制QR Code为例),尝试对光线不足或过强情况下二维码损坏的图像进行预处理后精准解码;尝试优化二维码检测算法
博客地址

成员三:分析core模块代码中图像编码算法(以主流码制QR Code为例),尝试加强二维码保密性,并且试图生成带有logo、色彩的二维码;尝试实现数据压缩编码算法的优化,使在整体数据压缩后,码字数目得到减少,提高编码效率
博客地址

2021SC@SDUSC-Zxing(一):Zxing初步认识相关推荐

  1. 2021SC@SDUSC HBase(六)项目代码分析——Region机制(三)之Region定位

    2021SC@SDUSC 目录 一.初步认识region定位 Meta表 Region定位 二.Region定位 总结 一.初步认识region定位 在 HBase 中,表的所有行都是按照 RowKe ...

  2. 2021SC@SDUSC Zxing开源代码(十七)Zxing代码解析——一维码

    2021SC@SDUSC 目录 Code 39 Code 93 Code 128 Codabar ITF 参考资料 前言:本篇博客主要介绍一维码. Code 39 Code39是条形码的一种,也被称为 ...

  3. zbar下条形码和二维码的识别与解码Ⅰ|2021SC@SDUSC

    2021SC@SDUSC 对条码与二维码的识别分为以下4个步骤 1. 利用opencv和Zbar对标准的条形码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. ...

  4. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(三)

    2021SC@SDUSC 目录 一.概述 二.代码分析 1.Update() 2.Draw() 3.Layout() 一.概述 本文将介绍ebiten在RunGame函数中逐帧执行的Update()方 ...

  5. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(四)

    2021SC@SDUSC 目录 一.概述 二.代码分析 1.graphics.QuadVertices() 2.mipmap.Mipmap() 3.i.mipmap.DrawTriangles() 一 ...

  6. 2021SC@SDUSC HBase(十三)项目代码分析——WAL写入

    2021SC@SDUSC 目录 一.简述 二.机制 三.线程模型 四.具体实现 五.总结 一.简述 Hbase 的 WAL 机制是保证 hbase 使用 lsm 树存储模型把随机写转化成顺序写,并从内 ...

  7. Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接<2021SC@SDUSC>

    2021SC@SDUSC Netty 通过 WebSocket 编程实现服务器和客户端全双工长连接 实例要求: Http 协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接. 要求 ...

  8. 2021SC@SDUSC基于人工智能的多肽药物分析问题(六)

    基于人工智能的多肽药物分析问题(六) 2021SC@SDUSC 1. 卷积神经网络 1.1 卷积神经网络优势 在学习卷积神经网络之前,使用的是全连接神经网络,但是: 如果用全连接神经网络处理大尺寸图像 ...

  9. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(十三)metrics.py-1

    2021SC@SDUSC 前言 这篇分析metrics.py文件,这个文件是用来计算评估指标,包括mAP.混淆矩阵.IOU相关的函数. fitness函数 def fitness(x):# Model ...

  10. 2021SC@SDUSC 开源项目GFPGAN -7-experiments

    2021SC@SDUSC 目录 一.experiments内容 二.模型作用和调用 三.拓展 一.experiments内容 该文件夹存储的是开源项目预先训练好的模型和一些数据, 具体的文件 和内容如 ...

最新文章

  1. jittor和pytorch生成网络对比之pixelda
  2. Java的一维数组和二维数组的关系
  3. 如何在O(1)的时间里删除单链表的结点
  4. python2.7 threading RLock/Condition文档翻译 (RLock/Condition详解)
  5. 因为10万元 乐视云计算又把自己折腾成失信被执行人...
  6. ASP.NET读取POP3邮件的操作
  7. C# ref,out
  8. Windows XP声卡驱动正常,丢失声音服务的解决
  9. rf扫描枪_RF枪_RF手持扫描枪_RF手持机
  10. Winform:自定义滚动条——可自定义皮肤
  11. 不能启动的问题 社区版安装后_Windows To Go安装使用手记
  12. Ubuntu环境下XAMP安装PHP的rabbitmq扩展
  13. 【工程/物理光学(四)——光的衍射技术】
  14. xcode 可以打开xmind_如何在 iPad 上玩转 XMind?
  15. CN-DBpedia备忘
  16. Mass Assignment 防止Hacked
  17. 以太网交换机可以家用吗_以太网交换机是什么? 以太网交换机的使用方法
  18. 开源之道解读 Liunx 基金会开源办公室调查报告
  19. 2021-08-15 minikube在阿里云centos系统上的安装实践
  20. STM32F105 CAN总线数据收发调试

热门文章

  1. 用python设计一个简易的英汉互译界面_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...
  2. JMeter 调试取样器(Debug Sampler)简介
  3. ALUBI LPMS-IG1 RS232 IMU ROS2驱动安装
  4. 记录-关于网站的欢迎页,初次进入可见欢迎页,再次进入就直接显示主页了
  5. 临近毕业,图像类SCI源刊哪本审稿快?
  6. 全志F1C芯片参数对比,供查阅
  7. python自动化发送邮件_使用python自动化发送邮件
  8. C++转换函数 (conversion function)
  9. text转换成int-1.1
  10. c语言中i++与++i的区别