/ / zxing gibt die falsche Position von CODE_39-Barcode - zxing zurück

Zxing gibt falschen Position des CODE_39-Barcode - Zxing zurück

Ich verwende zXing, um Barcodes in Webcam-Bildern zu finden:

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

zxing findet den Barcode zuverlässig und extrahiert die Informationen. Es gibt auch die Position des Barcodes als zwei Punkte (x1, y) (x2, y) zurück (der gleiche Wert für beide Punkte, da er Scanlinien verwendet (glaube ich)).

Wenn ich diese Punkte grafisch darstelle, ist der y-Wert in Ordnung, der erste (linke) x-Wert ist in den meisten Bildern etwas rechts und der rechte Endpunkt ist weit entfernt. (Siehe Beispielbild).

Ich plane eine Nachbearbeitung, also brauche ich diePosition des Barcodes. Hat jemand dieses Verhalten schon mal gesehen? Ich sehe nicht, wie ein Fehler beim Rendern dies verursachen könnte und die Punkte werden wie in der Kommandozeilen-Demo-Anwendung extrahiert.

// Ich habe gerade versucht, eine EAN 13 zu lesen und bekam einen perfekten Barcode-Standort. Der Code im Bild ist CODE_39, daher könnte es ein Problem mit diesem Detektor geben.

// Bearbeiten 2: (Originalbild und eines mit Markierung sind im Kommentar)

Ich benutze den Qt-Wrapper und extrahiere die Endpunkte als (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()));
}
}

Wenn ich einen EAN14-Barcode extrahiere, befinden sich die Endpunkte genau innerhalb der Endmarker (die zwei kleinen Balken). Ich denke, dass ich die Punkte richtig gelesen und visualisiert habe.

Antworten:

0 für die Antwort № 1

Netter, das ist ein Fehler. Er ist jetzt in HEAD behoben. Die Antwort ist, dass es ein Fehler ist: https://code.google.com/p/zxing/issues/detail?id=1776