Pyzbar дает странные позиции для аналогичных штрих-кодов - PullRequest
0 голосов
/ 30 октября 2019

При сканировании изображения, которое содержит очень похожие штрих-коды примерно на одной горизонтальной линии, позиции штрих-кодов становятся странными, хотя штрих-коды декодируются правильно.

Я понял эту проблему, потому что мы используем EAN13 для маркировкирасстановки на полках. Таким образом, штрих-коды очень похожи, и несколько находятся на одном уровне полки. Поэтому я попытался немного, и похоже, что у Pyzbar есть проблема с похожими штрих-кодами (идентичные штрих-коды еще хуже).

Вот изображение, которое я создал для тестирования: Изображение со штрих-кодами

А вот небольшой скрипт, который печатает штрих-коды и их расположение и сохраняет изображение с прямоугольниками.

С тестовым изображением вы должны увидеть, что первая строка испорчена, а вторая -хорошо.

from pyzbar.pyzbar import decode
import cv2

img = cv2.imread('test.png')
barcodes = decode(img)
for decodedObject in barcodes:
    print(decodedObject.data.decode("utf-8"))
    print(decodedObject.rect)
    start_point = (decodedObject.rect.left, decodedObject.rect.top)
    end_point = (decodedObject.rect.left + decodedObject.rect.width,
                 decodedObject.rect.top + + decodedObject.rect.height)
    cv2.rectangle(img, start_point, end_point, (0, 255, 0), 3)
cv2.imwrite("result.jpg",img)

Я не уверен, что это ошибка в zbar или pyzbar или я делаю что-то не так. Любая помощь будет оценена

...