/ / zxing zwraca błędną pozycję CODE_39-Barcode - zxing

zxing zwraca błędną pozycję CODE_39-Barcode - zxing

Używam ZXing do wyszukiwania kodów kreskowych w obrazach z kamery:

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

Zxing sprawdza kod kreskowy jako wiarygodny i wyodrębnia informacje. Zwraca także pozycję kodu kreskowego jako dwa punkty (x1, y) (x2, y) (ta sama wartość dla obu punktów, ponieważ używa linii skanowania (chyba)).

Jeśli narysuję te punkty, wartość y jest w porządku, pierwsza (lewa) wartość x jest trochę w prawo w większości obrazów, a prawy punkt końcowy jest daleko. (Zobacz przykładowy obraz).

Planuję niektóre postprocessing, więc potrzebujępozycja kodu kreskowego. Czy ktoś wcześniej widział to zachowanie? Nie widzę, jak błąd podczas renderowania może spowodować to i punkty są wyodrębniane jak w aplikacji demo wiersza polecenia.

// Po prostu próbowałem przeczytać EAN_13 i otrzymałem idealną lokalizację kodu kreskowego. Kod na obrazie to CODE_39, więc może być problem z tym wykrywaczem.

// Edytuj 2: (Oryginalny obraz i jeden z markerem są w komentarzu)

Używam otoki Qt i wyodrębniam punkty końcowe jako (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()));
}
}

Jeśli wyodrębnię kod kreskowy EAN14, punkty końcowe są dokładnie w obrębie znaczników końcowych (dwóch małych słupków), więc myślę, że poprawnie odczytałem i zwizualizowałem punkty.

Odpowiedzi:

0 dla odpowiedzi № 1

Fajna, to błąd. Naprawiono go teraz w HEAD. Odpowiedź brzmi: to błąd: https://code.google.com/p/zxing/issues/detail?id=1776