/ / zxing vráti nesprávnu pozíciu CODE_39-čiarového kódu - zxing

zxing vráti nesprávnu pozíciu CODE_39-čiarového kódu - zxing

Používam zXing na vyhľadanie čiarových kódov v obrázkoch webovej kamery:

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

zxing nájde čiarový kód spoľahlivý a extrahuje informácie. Taktiež vracia polohu čiarového kódu ako dva body (x1, y) (x2, y) (rovnaká hodnota pre oba body, pretože používa scanlines (myslím)).

Ak vykreslím tieto body, hodnota y je v poriadku, prvá (ľavá) hodnota x je trochu pravá v obrazoch MOS a správny koncový bod je ďaleko. (Pozri príklad obrázku).

Plánujem nejaký postprocesing, takže potrebujempozície čiarového kódu. Už niekto videl toto správanie predtým? Nevidím, ako by mohla chyba pri vykresľovaní spôsobiť toto a body sú extrahované ako v demo aplikácii príkazového riadku.

// Pokúsil som sa prečítať EAN_13 a získal perfektné umiestnenie čiarového kódu. Kód na obrázku je CODE_39, takže by mohol byť problém s týmto detektorom.

// Upraviť 2: (Pôvodný obrázok a jeden s označením sú v komentári)

Používam obal Qt a extrahujem koncové body ako (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()));
}
}

Ak vyberiem EAN14-čiarový kód, koncové body sú presne v koncových značkách (dva malé pruhy), takže si myslím, že som správne čítal a vizualizoval body.

odpovede:

0 pre odpoveď č. 1

Pekný, to je chyba, ktorá je v hlave fixovaná. Odpoveď je, že ide o chybu: https://code.google.com/p/zxing/issues/detail?id=1776