ZBar与zxing - QR识别比较

13

有人能告诉我在低光条件下哪个库更适用于小型QR码的识别吗? 平台是iPhone 4 / iOS 5 我尝试过Barcodes(zxing)和ZBar应用程序,似乎zxing在“恶劣”条件下识别码的能力明显更好。话虽如此,那只是一个非常小的样本测试。

任何关于两个库实际图像识别能力(速度+质量)的意见都将是有用的。

TIA。


我认为两者都不会有显著的优势,因为在方案中扫描小型QR码非常容易。zxing在QR码方面特别出色,但与Java版本相比,其C++端口有点过时。我没有确切的数据,但我编写了zxing的这一部分。 - Sean Owen
4个回答

7

我认为ZXing更好。我在iOS应用程序开发工作中使用过两者。

  1. 使用ZBar时我遇到了大二维码的问题。

  2. ZXing在iPhone 4和3GS上运行良好,但在3GS上ZBar表现较差,有时无法捕获代码。


1
在zxing中,不仅仅是QR码解码从Java移植到了C++,尽管我有点同意你的最后一点,即与Java版本相比,这些移植版本更加不完整和陈旧。 - Sean Owen
你应该看一下这个:ttp://zbar.sourceforge.net/iphone/sdkdoc/optimizing.html,就性能而言,使用ZBar默认设置会导致处理大v40二维码出现问题-解决方案是将videoQuality属性设置为UIImagePickerControllerQualityTypeHigh,而不是默认的640x480(在UIImagepickerController苹果文档中找到)。我大约一年前尝试过两个SDK,我喜欢ZXing示例应用程序,它提供了独立解析器的想法,列出操作项,并增加了允许用户选择是否执行操作的安全性。 - Paulo
这是一个老问题,但它对QRCode和Barcode都有效吗,还是我需要使用不同的库来管理它们?我需要能够扫描qr和bar码,你会推荐哪个? - Ravi Yenugu

2
我发现在后期的iPad和iPhone上使用Zxing非常好。iPad 2相机在使用Zxing时非常慢,但是后来的相机速度更快,对焦更好,这大大提高了速度。
我在iPad 2上使用Zxing的一个“hack”是在代码中更改矩形。我会逐步缩小每次尝试,所以我不会使用显示的矩形,而是分步扩展它,这样我会检查5次每个扫描。结果大大改善了。在iPad 3等上,这不是很必要,但是我仍然将代码放在那里,因为它很快。
我在Windows上使用扫描仪(300 DPI)使用了ZBar和ZXing,并发现ZXing对于密集的QRCodes是一个问题,因此必须包含ZBar支持。实现ZBar支持非常棘手,我不得不编写自己的API,如果有人感兴趣。

你能否添加更多信息来解释 "密集的QRCodes是ZXing的问题" 是什么意思?QR版本是什么?还是每个模块的像素数量?它是在图片提供还是视频提供中出现的问题? - daparic
这是一段时间之前的事情了(5年?),但我记得基本上是带有大量数据的QR码。因此,如果您选择一个QR码大小并输入一个小字符串或巨大字符串,则更难读取巨大字符串 - 可能是可用空间中像素数量增加了。这是从图片(300 DPI扫描仪)中获取的。ZXIng自那时以来已经发展了,所以现在可能更好。我记得我甚至使用了两个库 - 所以我会尝试两个并进行比较,并使用结果。这在统计上更准确。 - Paul Bartlett

2
您应该查看此链接。就性能而言,使用ZBar默认设置会在处理大型v40 QRCodes时出现问题 - 解决方案是将videoQuality属性设置为UIImagePickerControllerQualityTypeHigh,而不是默认的640x480(苹果文档)。根据文档,条形码模块大小至少需要3个像素才能进行扫描。我大约一年前尝试了这两个SDK,我喜欢ZXing示例应用程序,但最终在提交到App Store之前,我发现它生成了很多难以删除的警告消息。切换到ZBar允许我清理消息并添加扫描几种1D条形码类型的功能到我的应用程序中。正如所述,默认设置不会给您最佳性能,但您需要查看选项,关闭您不需要的选项,剥离后它应该表现得相当不错。
目前我对ZBar感到非常满意,但如果ZXing支持其他条形码类型,特别是DataMatrix,PDF417,Aztec和Maxi Code,则可能会进行切换。

我最近为大多数Java支持的1D(不包括RSS和一些UPC / EAN扩展)和2D(不包括PDF-417,由其他人完成)代码提供了支持。不确定构建警告情况。由于widget早于ARC,因此其中有一些问题。 - smparkes
@Paulo,zbar支持DataMatrix吗?你知道应该用哪个符号吗? - Shobhit Puri
2
据我所知,Zbar从未更新到64位,所以我们中的许多人已经转向ZXING或IOS的本地条形码功能“AVCaptureMetaDataOutput”。自IOS 9起,它支持DataMatrix和几乎所有其他格式,除了DataBar。 - Paulo
只是一个旁观者的观察,我不确定根本原因在哪里:与Denso Wave的QR码格式相比,zxingpdf417格式的识别似乎较差。 - daparic

1
我两种都用过。如果你想扫描数据矩阵码,你必须使用ZXing。但是如果你不需要数据矩阵,使用ZBar是一种快速简便的方法。 此外,在iOS 7中有一个内置的扫描器API AVCaptureMetaDataOutput,可以扫描除数据矩阵外的1D和2D码。由于其简单性,我更喜欢AVCaptureMetaDataOutput。这里有一个AVCaptureMetaDataOutput的指南。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接