【问题标题】:zxing returns wrong position of CODE_39-Barcodezxing 返回 CODE_39-Barcode 的错误位置
【发布时间】:2013-09-08 14:59:21
【问题描述】:

我正在使用 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,端点正好在结束标记(两个小条)内,所以我认为我正确读取和可视化了这些点。

【问题讨论】:

标签: zxing


【解决方案1】:

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

【讨论】:

  • 我编译了当前版本(参见问题 1777)(现在我有 r2888),但我的图像仍然得到错误的结果。对于这张图片(postimg.org/image/eqedv5ylx),我得到格式:CODE_39 Point[0]: 544 379 Point[1]: 1207 379 -0209763 但角应该在 x=520 和 x=1036 之间。不过感谢您的快速反应!
猜你喜欢
  • 2016-11-06
  • 2011-11-11
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多