用于读取数据矩阵代码的C ++库

时间:2012-04-09 11:23:52

标签: c++ image-processing computer-vision barcode

我正在寻找一个用于读取数据矩阵代码的C ++库,特别是ECC 200代码(因此不是QR代码)。我找到了libdmtxzxing。 zxing是java,但似乎有一个C ++端口。有没有人有使用这些库或可能与其他库读取ECC 200代码的经验?

5 个答案:

答案 0 :(得分:1)

ZXing的C ++端口中的DM支持是Java的最新版本(许多1D代码都不是这样)。它在测试应用中默认不启用,但很容易启用(和will be enabled by default in the future.

我没有任何实际使用DM解码器的个人经验,但它包含在测试套件中,我认为可以在Android应用程序中使用。

答案 1 :(得分:1)

这是一个真正的答案。 我成功地使用了libdmtx和libzxing。 Libdmtx更简单,因为它仅限于数据矩阵。在我的经验中,结果奇怪的是,并不总是确定性的。 Libzxing也很好,但是当你进行真正的制作(数百万或读数)时,由于内存管理并不完美,它有时会崩溃。它非常好,但对于真实的生产环境并不完美。

库libzxing和libdmtx都要求你拥有图像的datamatrix死中心并且非常大。这意味着您需要自己进行预定位。 我设法通过使用图像例程并寻找' L'形状,然后一些智能与最小面积平方边界框等等然后解码和错误纠正步骤本身我使用libzxing,这仍然是不完美的。

如果你去生产环境,要么自己在自己的约束下做所有事情,如果你不喜欢这样做,请使用付费套餐,这反过来又不适合你的应用程序并且需要花钱。< / p>

libzxing-cpp的最佳端口是用户glassenchidna的端口。 https://github.com/glassechidna/zxing-cpp

答案 2 :(得分:0)

我目前正在尝试使用libdmtx http://www.libdmtx.org/

它支持各种接口。它似乎在这里和其他地方都有很好的评论......

(但我正在寻求有关构建实用程序的帮助: - )

答案 3 :(得分:0)

因为没有&#34;真实&#34;回答是贴在我的问题上,至少没有一个有经验的人阅读2D矩阵代码的答案,我想我会发表自己的经验。

我尝试了两个库,两者都可以读取代码,但性能对我的情况来说还不够好。在我的情况下,代码通常不是&#34;完美&#34;,Dots可能丢失,具有不同的大小,并且代码可能有点倾斜。这两个图书馆都在阅读这些代

最后我使用了商业(非免费)库Sapera。 Sapera能够更好地阅读非完美代码。我使用Sapera是因为它过去曾在我的公司使用过,但很有可能其他商业机器视觉库(如Halcon)也表现良好。

答案 4 :(得分:0)

我过度使用Halcon,包括解码DataMatrix。我可以告诉你,它真的很好用。即使由于例如读取圆形物体或歪斜的打印而引起的变形,它仍然能够在短时间内很好地读取它们。

价格是唯一的缺点,也是很大的缺点。运行时许可证非常昂贵,需要购买开发许可证才能购买运行时许可证,后者甚至更昂贵。除非您的项目有足够的资金,否则由于这个原因,这可能不是一个选择。祝你好运!