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