При сканировании изображения, которое содержит очень похожие штрих-коды примерно на одной горизонтальной линии, позиции штрих-кодов становятся странными, хотя штрих-коды декодируются правильно.
Я понял эту проблему, потому что мы используем 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 или я делаю что-то не так. Любая помощь будет оценена