/ / zxing връща погрешна позиция на CODE_39-баркод - zxing

zxing връща погрешна позиция на CODE_39-баркод - zxing

Използвам zXing за намиране на баркодове в изображенията на уеб камера:

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

zxing намира баркода надежден и извлича информация. Той също така връща позицията на баркода като две точки (x1, y) (x2, y) (същата стойност и за двете точки, тъй като използва scanlines (мисля)).

Ако заснемам тези точки, стойността на y е добре, първата (лявата) x-стойност е малко надясно в изображенията на Meste и точната крайна точка е далеч. (Вижте примерно изображение).

Аз планирам някои postprocessing, така че имам нужда отпозицията на баркода. Виждал ли е някога това поведение? Не виждам как грешка по време на рендиране може да причини това и точките да се извлекат както в демонстрационната програма на командния ред.

// Просто се опитах да прочета EAN_13 и получих перфектно местоположение на баркода. Кодът в изображението е CODE_39, така че може да има проблем с този детектор.

// Редактиране 2: (Оригиналното изображение и един с маркер са в коментара)

Използвам обвивката Qt и извличам крайните точки като (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()));
}
}

Ако извадя EAN14-баркод, крайните точки са точно в крайните маркери (двете малки ленти), така че мисля, че чета и визуализирам точки правилно.

Отговори:

0 за отговор № 1

Хубаво е, че това е бъг. Сега той се фиксира в HEAD. Отговорът е, че това е бъг: https://code.google.com/p/zxing/issues/detail?id=1776