2021SC@SDUSC
目录
一、Zxing简介
1.1 概述
1.2 格式
1.3 第三方开源项目
二、代码简析
2.1 代码结构
2.2 核心代码
三、任务分工
3.1 主要任务
3.2 小组分工
一、Zxing简介
1.1 概述
ZXing(“斑马线”)是一个开源的、多格式的1D/2D条形码图像处理库,用Java实现,具有其他语言的端口。目标是能够对QR编码、Data Matrix、UPC的1D条形码等进行解码。 其提供了多种平台下的客户端包括:JavaME、JavaSE和Android等。
代码地址:GitHub - zxing/zxing: ZXing ("Zebra Crossing") barcode scanning library for Java, Android
1.2 格式
| 1D product | 1D industrial | 2D |
| UPC-A | Code 39 | QR Code |
| UPC-E | Code 93 | Data Matrix |
| EAN-8 | Code 128 | Aztec |
| EAN-13 | Codabar | PDF 417 |
| UPC/EAN Extension 2/5 | ITF | MaxiCode |
| RSS-14 | ||
| RSS-Expanded |
1.3 第三方开源项目
基于ZXing的第三方开源项目有:
| Module | Description |
| QZXing | port to Qt framework |
| glassechidna/zxing-cpp | port to C++ (forked from the deprecated official C++ port) |
| nu-book/zxing-cpp | recent port to C++ |
| zxing_cpp.rb | bindings for Ruby (not just JRuby), powered by zxing-cpp |
| jsqrcode | port to Javascript |
| python-zxing | bindings for Python |
| ZXing .NET | port to .NET and C#, and related Windows platform |
| php-qrcode-detector-decoder | port to PHP |
| ZXing Delphi | Port to native Delphi object pascal, targeted at Firemonkey compatible devices (IOS/Android/Win/OSX) and VCL. |
| ZXingObjC | Port to Objective-C |
| php-zxing | PHP wrapper to Zxing Java library |
| zxing-js/library | Typescript port of ZXing library |
| pyzxing | Python wrapper to ZXing library |
二、代码简析
2.1 代码结构
1)core:核心包,是整个应用的主要组件组成部分,包含条码解码编码的核心算法。
2)android: 为Android端定制的客户端工具。
3)android-core:配置Android摄像头。
4)android-integration:简化Intent与Android客户端集成。
5)javase:JavaSE的客户端代码。
6)zxingorg:在线解析二维码。
7)zxing.appspot.com:在线生成二维码。
2.2 核心代码
经小组讨论后,我们认为本项目的核心代码在上述前三个模块,即core、android、android-core。
三、任务分工
3.1 主要任务
本人主要负责分析core模块代码中图像编码算法。
3.2 小组分工
成员一:分析Andriod模块主要代码,理清Zxing的Android端调用流程,并且尝试优化相机配置代码,解决扫码区域小、图像拉伸等问题,提高二维码识别效率。
博客地址
成员二:分析core模块代码中图像解码算法(以主流码制QR Code为例),尝试对光线不足或过强情况下二维码损坏的图像进行预处理后精准解码;尝试优化二维码检测算法。
博客地址
成员三:分析core模块代码中图像编码算法(以主流码制QR Code为例),尝试加强二维码保密性,并且试图生成带有logo、色彩的二维码;尝试实现数据压缩编码算法的优化,使在整体数据压缩后,码字数目得到减少,提高编码效率。
博客地址



