【发布时间】: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,端点正好在结束标记(两个小条)内,所以我认为我正确读取和可视化了这些点。
【问题讨论】:
-
您没有提供库输出的原始图像或端点。目前尚不清楚这是库的问题,而不是您如何渲染图像。
-
一张带有 EAN13_Code 的图像:postimg.org/image/kvlloobgx 端点看起来与预期一样。
标签: zxing