关于ZBar和ZXing二维码和条形码

halcon例程学习笔记(11) 一维码、二维码识别 1、一维条码 一维条码:由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分,“空”指对光线反射率较高的部分,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。  一维条码的码制:  EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码,及Codabar(库德巴码)等。     EAN 码:是国际通 阅读详情

之前做了一些关于一维码二维码识别与生成的工作。在这里总结一下子。

显然做这个我们不会花大量力气去自己来写这个识别过程, 这之间可能会包括人工识别方面的工作, 所以为了偷懒,便想到了去网上找这样的开源工具, 呵呵, 你别说, 还真找到两个, 即ZBar和ZXing. 

去他们的官网一看, 得出以下结论:

ZBar可以直接扫二维码和条形码, 

ZXing可以直接扫二维码, 如果要扫条形码,则需要去改改代码花点功夫了。

同样, ZBar和ZXing的源码我们也是可以找到的, 

只是ZBar的源码找起来比较费功夫, 但在其官网还是可以找到, 找到后, 由于ZBar的源码包括了在其它各个平台的源码, 比如Mac, Python,等, 源码比较乱, 看起来有点费事, 而且最重要的是编译起来链接的东西太多, 又是运行脚本,又是安装什么库的, 感觉国外的这种库吧,给人使用倒是方便,但要是去进行维护还真不太容易。所以尽管我已经找到这个ZBar的开源码,但我从来都没有真正的把它完整地编译出来过, 自我鄙视一把。只好有空再深入研究一下了。(注:由于ZBar对中文支持不是很理想,所以要想彻底地用好ZBar,还是需要去读懂这个源码,并能真正地编译出来。)

而ZXing就比较好了, 直接给的就是源码, 也不整什么.a库的真是方便。 只是之前我下载了ZXing后, 直接使用其例子发现,例子中的代码确实只能做二维码的识别, 不能做条形码的扫描。 研究了一下又在网上找了一下, 结果发现稍做修改,还是可以让ZXing支持条形码和二维码的同时识别的, 代码稍侯就贴出来。本人亲自试过,确实可行。

总结地来说, ZBar使用起来比ZXing相对方便一点, 也就是更像是 卡片机与单反相机的区别。但如果需要修改代码的话,做一些自定义什么的,建议使用ZXing, 如果只是想随便用用的话, 建议使用ZBar.

好,话不多说, 下面说说如何使ZXing改改后可以支持扫条形码。

1.在- (IBAction)scanPressed:(id)sender方法中:
ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:YES];


MultiFormatOneDReader *OneReaders=[[MultiFormatOneDReader alloc]init]; QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init]; NSSet *readers = [[NSSet alloc ] initWithObjects:OneReaders,qrcodeReader,nil]; 
[qrcodeReader release]; 
[OneReaders release];

2.在ZXingWidgetController.m的 (void)captureOutput:(AVCaptureOutput *)captureOutput :方法中,注释掉以下方法

  if (oneDMode) {

    // let's just give the decoder a vertical band right above the red line

    cropRect.origin.x = cropRect.origin.x + (cropRect.size.width / 2) - (ONE_D_BAND_HEIGHT + 1);

    cropRect.size.width = ONE_D_BAND_HEIGHT;

    // do a rotate

    CGImageRef croppedImg = CGImageCreateWithImageInRect(capture, cropRect);

    capture = [self CGImageRotated90:croppedImg];

    capture = [self CGImageRotated180:capture];

    //              UIImageWriteToSavedPhotosAlbum([UIImage imageWithCGImage:capture], nil, nil, nil);

    CGImageRelease(croppedImg);

    cropRect.origin.x = 0.0;

    cropRect.origin.y = 0.0;

    cropRect.size.width = CGImageGetWidth(capture);

    cropRect.size.height = CGImageGetHeight(capture);

  }


3.  将上面注释掉的代码向下数大概约20行处的代码:
UIImage *scrn = [[UIImage alloc] initWithCGImage:newImage]; 
改为:
int backCameraImageOrientation = UIImageOrientationRight; 
UIImage *scrn = [[UIImage alloc] initWithCGImage:newImage scale: 
(CGFloat)1.0 orientation:backCameraImageOrientation];
4.  在OverlayView.m注释代码以下代码:
self.oneDMode = isOneDModeEnabled;

然后运行,会发现可扫条形码了, 还可以同时扫二维码, 真是太方便了。
Opencv+ZBar识别条形码、二维码 文章目录Opencv识别条形码、二维码1.ZBar环境配置2.一维码(条形码)识别3. 二维码的识别4. Opencv识别二维码结束 Opencv识别条形码、二维码 最近的一次作业,恰好之前的项目也和c++图像处理相关,那今天就趁着熟练迅速把它搞定。 c++其实关于图像处理的第三方库也有很多,只是大多数库需要根据自己的平台去自己cmake编译,而不是像python那样简单的pip就行。不过多编译几次熟练以后其实也很简单,而且编译的时候还可以摸鱼不香吗(特别是选择 with cuda编译opencv的时候, 阅读详情

相关推荐

二维码、条形码识别

zbar 主页:http://zbar.sourceforge.net/ ZBar是一个开源软件套件,用于从各种来源读取条形码,例如视频流,图像文件和原始强度传感器。 它支持许多流行的符号(条形码类型),包括EAN-13 / UPC-A,UPC-E,EAN-8,Code 128,Code 39,Interleaved 2 of 5和QR Code。 灵活的分层实现方便了任何应用程序的条形码扫描和...

sunmaize的博客 1854

关于Zbar和ZXing这两个无比强大的二维码和条形码识别工具

之前做了一些关于一维码二维码识别与生成的工作。在这里总结一下子。 显然做这个我们不会花大量力气去自己来写这个识别过程, 这之间可能会包括人工识别方面的工作, 所以为了偷懒,便想到了去网上找这样的开源工具, 呵呵, 你别说, 还真找到两个, 即ZBar和ZXing.  去他们的官网一看, 得出以下结论: ZBar可以直接扫二维码和条形码,  ZXing可以直接扫二维码, 如果要扫条形码,则需

Jacky Shin的专栏 3万+

条码识别zbar一次识别多个条码.rar

C#应用源码资料

批量识别条形码和二维码

package com.checkStart.controller; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.HashMap; import java.util.Hashtable; import jav

qq_35086941的博客 1724

VSCode+Pyside6开发环境配置全攻略:从安装到实战UI设计

本文提供了一份详细的VSCode与Pyside6集成开发环境配置指南。从创建Python虚拟环境、安装必备VSCode插件,到深度配置PYQT Integration插件以打通Qt Designer与代码编译,最后通过一个待办事项应用实战演示了从UI设计到业务逻辑绑定的完整工作流,旨在帮助开发者建立高效、可维护的GUI开发环境。

qq_27496129的博客 980

稳定性仿真(stb闭环增益仿真)

stb仿真主要是测试电路的稳定性,例如运放在闭环电路中的增益和相位裕度的值,从而判别电路是否正常工作。 以下是stb仿真的过程: (1)调用iprobe器件 从analogLib中调iprobe器件,通过器件中的箭头标识确定接入电路的方法,箭头起点端连运放的输出端,箭头的终点端连在反馈环路的作用端。iprobe器件连入电路后相当于理想导线。(iprobe器件连接在反馈回路上) (2)analyses设置 勾选stb和frequency,此处的频率范围设置在0.1~1GHz,Probe Instance/T

qq_36686804的博客 3万+

Zbar和ZXing这两个二维码和条形码识别工具

显然做这个我们不会花大量力气去自己来写这个识别过程, 这之间可能会包括人工识别方面的工作, 所以为了偷懒,便想到了去网上找这样的开源工具, 呵呵, 你别说, 还真找到两个, 即ZBar和ZXing.  去他们的官网一看, 得出以下结论: ZBar可以直接扫二维码和条形码,  ZXing可以直接扫二维码, 如果要扫条形码,则需要去改改代码花点功夫了。 同样, ZBar和ZXing的源码我们也

koocui的博客 2256

Unity开发微信小游戏,使用Addressables管理游戏资源(本地进行远程测试)

快速构建Unity微信小游戏 使用Addressables管理游戏资源 使用小皮助手在本地进行远程资源加载测试

the_vnas的博客 6391

关于Zbar和ZXing这两个无比强大的二维码和条形码识别工具 .

之前做了一些关于一维码二维码识别与生成的工作。在这里总结一下子。 显然做这个我们不会花大量力气去自己来写这个识别过程, 这之间可能会包括人工识别方面的工作, 所以为了偷懒,便想到了去网上找这样的开源工具, 呵呵, 你别说, 还真找到两个, 即ZBar和ZXing.  去他们的官网一看, 得出以下结论: ZBar可以直接扫二维码和条形码,  ZXing可以直接扫二维码, 如果要扫条形码,则需

_听雨眠的专栏 1501

HDFView安装及使用教程

简介:直接用记事本打开hdf5文件的话,是一团乱码。HDFView是用来查看hdf5文件的软件,可以免费使用,好多人都有闪退的情况,这是因为没有添加环境变量。

qq_43722079的博客 7万+

Shopee App加密算法逆向实战:从libshpssdk.so到x-sap-ri的生成机制

本文详细解析了Shopee App核心加密参数x-sap-ri的生成机制。通过逆向分析libshpssdk.so动态库,揭示了其采用9套算法动态切换的复杂签名逻辑,并分享了从抓包定位、Frida动态调试到Unidbg模拟执行的全过程实战经验,为移动应用安全研究提供了完整的技术路径。

weixin_29323551的博客 1327

zbar 扫描快,zxing 可以生成和识别本地,So,我就把他们结合在了一起,这样 Android 二维码(条形码)功能就更便捷了

zBarLibary 项目地址:bertsir/zBarLibary 简介: 🔥 zbar 扫描快,zxing 可以生成和识别本地,So,我就把他们结合在了一起,这样 Android 二维码(条形码)功能就更便捷了 更多:作者提 Bug 标签: zbar 扫描快,zxing 可以生成和识别本地,So,我就把他们结合在了一起,这样二维码识别就更便捷了(包含主要功能,二维码识别生成,条形码识别生成) Plan 1.优化代码结构 2.优化双识别引擎 3.更换图片...

未来很长,但我会努力的走下去。 1568

【异常】飞书OpenClaw机器人 HTTP 401: Invalid Authentication 报错排查与解决方案

HTTP 401 是HTTP协议标准定义的未授权(Unauthorized)状态码,核心含义为请求方身份认证无效,服务端拒绝执行本次请求。飞书开放平台服务端对自建机器人的全链路鉴权校验失败。无论是机器人接收飞书事件推送的上行请求,还是机器人主动调用飞书开放平台API的下行请求,只要身份凭证无效、鉴权逻辑校验不通过,飞书服务端就会返回该报错,并最终透传到飞书客户端会话窗口中。

奶爸的编程之路,也就一周冷个三天 3760

使用zbar库识别条形码与二维码

QR 码是一种高密度矩阵条码,Quirc是一个基于C/C++的一个二维码库 ,从图像中提取和解码QR 码。其部分功能还需依赖OpenCV库共同实现,比如quirc-demo-opencv(即图形的显示);inspect-opencv(测试)。1.足够快,可以用于实时视频:在现代x86内核上,从VGA帧提取和解码大约需要50毫秒。2.具有鲁棒且宽容的识别算法。可以正确识别和解码旋转和/或倾斜于相机的QR码。它还可以区分和解码同一图像中的多个代码。

m0_74259636的博客 7851

YOLO11改进|YOLO11中引入注意力和卷积融合模块CAFMAttention

YOLO11改进|YOLO11中引入注意力和卷积融合模块CAFMAttention

A1983Z的博客 1220

第十二段:基于env的重用

现代芯片的验证通常分为两个层次, 一是模块级别( block level, 也称为IP级别、 unit级别) 验证, 二是芯片级别( 也称为SOC级别) 验证。 一个大的芯片在开发时, 是分成多个小的模块来开发的。 每个模块开发一套独立的验证环境, 通常每个模块有 一个专门的验证人员负责。 当在模块级别验证完成后, 需要做整个系统的验证。 假设某个系统分成了三个模块,如下图: 这三个模块在模块级别验证时, 分别有自己的driver和s...

年糕的博客 422

马上:Zxing、Zbar、HMS Scankit 扫码优化

Zxing zxing 一款Java、Android 很流行的二维码、条形码扫码库。开源,可移植,简单易用的api. 相信大家对接触过zxing 库,在高端性能机器扫码效果还是很不错的,但面对复杂的扫码环境而言强光,弯曲,形变等情况,Zxing 的缺陷就被放大了。基于 Zxing 的做优化的话,老手话深有体会, 可优化的空间并不多。无非以下方面, 而且效果不显著 摄像头预览,选择合适的size预览,减少解码数据,裁减无用数据区域 根据业务去除多余的格式 … Zar ZBar 是一个开源软件,用于从各种来

Extra Lazy的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

如何来对条形码识别SDK做性能基准测试 (ZXing vs ZBar)

我看过很多有关ZXing 与 ZBar 这两款条形码识别SDK性能表现优劣的博文。作为一名商用条形码识别SDK (Dynamsoft) 的开发者,我很好奇这两款开源SDK的谁的性能更好。考虑到ZXing是通过Java部署的,而ZBar是通过C/C++部署的,为了公平的进行性能比较,我决定试用JNI来封装ZBar C/C++的源码,并在Java中对他们做基准测试。 准备工作 ZXing 源码下载地址...

weixin_44074698的博客 1102

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android zbar扫描快,zxing可以生成和识别本地

zbar扫描快,zxing可以生成和识别本地,So,我就把他们结合在了一起,这样二维码识别就更便捷了(包含主要功能,二维码识别生成,条形码识别生成)https://github.com/bertsir/zBarLibary...

yongxiang008的专栏 1258

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 如何改进iOS客户端的升级提醒功能
下一篇: iOS 系统信息
iXiJiangYue123
博客等级 码龄14年 5粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值