3

在我的应用程序中,我使用Zxing库来解码条形码。“Motorola Xoom”和“Samsung”是目标设备。我正在为其开发此应用程序的公司Code 39为其产品使用条形码。

Zxing 可以很好地解码短条形码,但是当我尝试解码冗长的“Code 39”条形码时,它会继续尝试但没有产生任何结果。对于图像清除,我增加了扫描矩形区域,这对三星来说是成功的,但对摩托罗拉来说却不是。有什么方法可以让它为摩托罗拉工作吗?任何反馈将不胜感激。

4

1 回答 1

1

问题通常是最小焦距的差异。也就是说,如果摩托罗拉设备无法聚焦,那么加宽矩形可能会使用户将条形码握得太近以至于无法聚焦。我会先看看这个。

否则,您正在考虑改进这种情况下的图像处理。挑战在于该应用程序执行简单的阈值处理,这在常见情况下运行良好。当你有密集的一维条码,其条宽接近 1 像素时,它会下降。因为每个像素都是黑色或白色,所以您会按比例丢失很多关于条形确切位置的细节。

如果这确实是问题,您可以考虑重写您的应用程序以使用来自相机的全分辨率捕获,而不是预览。在正常情况下,更高的分辨率无济于事。在这些情况下,它可能会。您将无法以这种方式拥有连续扫描应用程序。

我是 Barcode Scanner 开发人员之一,并维护一个名为Barcode Scanner+的(付费)增强版本。它有一种不同的图像处理算法,可以在亚像素分辨率下找到边界,这对于这样的代码效果更好。你可能想看看它是怎么做的——如果效果很好,至少它会告诉你哪种方法效果更好。如果您想研究这种图像处理,我无法向您发送该代码,但可以描述它的作用。

于 2011-11-16T11:14:47.697 回答