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 № 1Fajna, to błąd. Naprawiono go teraz w HEAD. Odpowiedź brzmi: to błąd: https://code.google.com/p/zxing/issues/detail?id=1776