使用网络摄像头改进条形码扫描-Java

使用网络摄像头改进条形码扫描-Java,java,opencv,webcam,barcode,javacv,Java,Opencv,Webcam,Barcode,Javacv,我正在从事一个项目,必须读取和输出条形码数据。它使用标准的罗技相机拍照。它使用JavaCV(Java的OpenCV包)访问网络摄像头并拍照。图片存储后,使用Zxing软件包读取并输出条形码数据 这个程序很有效,但还不够好。它可以处理相当大的条形码,但无法读取任何正常大小的条形码。我的理论是相机的分辨率不够好。不过,我想问一下,这里是否有人知道我如何通过代码改进条形码阅读器。(即通过JavaCV或其他方式聚焦相机) tl:dr版本:通过JavaCV读取条形码,我是否可以提高图像质量?我也有类似的问

我正在从事一个项目,必须读取和输出条形码数据。它使用标准的罗技相机拍照。它使用JavaCV(Java的OpenCV包)访问网络摄像头并拍照。图片存储后,使用Zxing软件包读取并输出条形码数据

这个程序很有效,但还不够好。它可以处理相当大的条形码,但无法读取任何正常大小的条形码。我的理论是相机的分辨率不够好。不过,我想问一下,这里是否有人知道我如何通过代码改进条形码阅读器。(即通过JavaCV或其他方式聚焦相机)


tl:dr版本:通过JavaCV读取条形码,我是否可以提高图像质量?

我也有类似的问题

使用QZXing(ZXing到Qt的一个端口),我得到了2D(DataMatrix)解码(具有足够好的图像),但1D条形码,即使看起来很大很清晰,有时也完全漏掉了。多痛苦啊

我试图引入一点GUI,强迫用户设计ROI。。。这完全解决了2D问题,但1D有时仍然存在问题

然后我切换到,这对1D很好。现在ZXing只处理2D,OTOH ZBar不处理DataMatrix


我建议不要提高图像分辨率。我试图在OpenCV中找到一些ROI检测助手,但到目前为止,我还没有找到一个简单的方法…

也许可以发布您当前正在尝试做的事情,换句话说,哪些对您不起作用。@Clark:我认为解释很清楚。为什么建议不要提高分辨率?我一直在互联网上寻找提高图像质量的方法,如果你的相机允许的话,你可以通过OpenCV提高分辨率。这样做有内在的错误吗?增加分辨率也会增加误报率。正如我所说的,QZXing在1D中表现得不太好。对于2D,小的Datamatrix,相当不集中,我拖动一个正方形,它可以识别。在这种情况下,绝对分辨率非常低。这是对ROI的良好尊重(因为我将其设置为拖动)…也许ZXing比QXZing工作得更好,我想知道。。。