3

我正在使用 zxing 在网络摄像头图像中查找条形码:

http://s21.postimg.org/vxdrx07av/zxing.png

zxing 发现条码可靠并提取信息。它还将条形码的位置返回为两个点 (x1,y) (x2,y) (两个点的值相同,因为它使用扫描线(我认为))。

如果我绘制这些点,y 值是好的,第一个(左)x 值在大多数图像中有点右,右端点很远。(见示例图)。

我计划进行一些后期处理,所以我需要条形码的位置。有没有人见过这种行为?我看不出渲染过程中的错误如何导致这种情况,并且像在命令行演示应用程序中那样提取点。


我刚刚尝试读取 EAN_13 并获得了完美的条形码位置。图像中的代码是 CODE_39,因此该检测器可能存在问题。


编辑 2:原始图像和带有标记的图像在评论中

我使用 Qt 包装器并将端点提取为 (qzxing.cpp l. 140ff)

    res = ((MultiFormatReader*)decoder)->decode(ref, hints);

    if (pts){
        pts->clear();
        for (int j = 0; j < res->getResultPoints()->size(); j++) {
            cout << "  Point[" << j <<  "]: "
                 << res->getResultPoints()[j]->getX() << " "
                 << res->getResultPoints()[j]->getY() << endl;
            pts->push_back(QPointF(res->getResultPoints()[j]->getX(),res->getResultPoints()[j]->getY()));
        }
    }

如果我提取 EAN14-Barcode,端点正好在结束标记(两个小条)内,所以我认为我正确读取和可视化了这些点。

4

1 回答 1

0

不错,就是bug 它现在正在 HEAD 中修复。答案是这是一个错误:https ://code.google.com/p/zxing/issues/detail?id=1776

于 2013-09-08T20:47:45.520 回答