在我的应用程序中,我使用Zxing
库来解码条形码。 "摩托罗拉Xoom"和#34;三星"是目标设备。我正在开发此应用程序的公司使用Code 39
条形码作为其产品。
Zxing很好地解码了短条形码,但是当我尝试解码冗长的条码39"条形码它继续尝试,但没有产生任何结果。为了图像清除,我增加了扫描矩形区域,这对于三星来说是成功的,但对于摩托罗拉则不然。有什么方法可以让它适用于摩托罗拉?任何反馈都将受到高度赞赏。
答案 0 :(得分:1)
问题通常是最小焦距的差异。也就是说,如果摩托罗拉设备无法紧密聚焦,那么加宽矩形可能会使用户保持条形码非常靠近以至于太靠近焦点。我先看看这个。
否则,您正在考虑改善此案例的图像处理。挑战在于应用程序可以进行简单的阈值处理,在常见情况下效果很好。当你有一个条形宽度接近1像素的密集1D条形码时它会掉下来。因为每个像素都是黑色或白色,所以你会按比例失去关于条纹确切位置的许多细节。
如果这确实是问题,您可以考虑重写您的应用以使用相机的全分辨率捕捉,而不是预览。在正常情况下,更多的分辨率无济于事;在这些情况下它可能会。您将无法以这种方式使用连续扫描应用程序。
我是条码扫描器开发人员之一,并维护一个名为Barcode Scanner+的(付费)增强版本。它具有不同的图像处理算法,可以在子像素分辨率下找到边界,这对于像这样的代码更有效。你可能想看看它是如何做的 - 如果效果很好,至少可以告诉你哪种方法效果更好。如果您想调查那种图像处理,我无法向您发送该代码,但可以描述它的作用。