/ / zxing retorna a posição errada de CODE_39-Barcode - zxing

zxing retorna a posição errada de CODE_39-Barcode - zxing

Eu estou usando o zXing para encontrar códigos de barras em imagens de webcam:

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

zxing encontra o código de barras confiável e extrai a informação. Ele também retorna a posição do código de barras como dois pontos (x1, y) (x2, y) (mesmo valor para ambos os pontos, uma vez que ele usa scanlines (eu acho)).

Se eu plotar estes pontos, o valor y é ok, o primeiro valor x (esquerdo) é um pouco correto nas imagens moste e o ponto final direito está longe. (Veja a imagem do exemplo).

Eu planejo alguns pós-processamento, então eu preciso doposição do código de barras. Alguém já viu esse comportamento antes? Eu não vejo como um erro durante a renderização poderia causar isso e os pontos são extraídos como no aplicativo de demonstração de linha de comando.

// Eu apenas tentei ler um EAN_13 e consegui a localização perfeita do código de barras. O código na imagem é CODE_39, então pode haver um problema com este detector.

// Edite 2: (Imagem original e um com marcador estão no comentário)

Eu uso o wrapper Qt e extrai os pontos de extremidade como (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()));
}
}

Se eu extrair um EAN14-Barcode, os endpoints estão exatamente dentro dos endmarkers (as duas barras pequenas), então acho que leio e visualizo os pontos corretamente.

Respostas:

0 para resposta № 1

Bom, isso é um bug. Está sendo corrigido agora no HEAD. A resposta é que é um erro: https://code.google.com/p/zxing/issues/detail?id=1776