Как читать длинные коды "Code 39" с помощью "Zxing"?

В моем приложении я использую Zxing библиотека для декодирования штрих-кодов. "Motorola Xoom" и "Samsung " являются целевыми устройствами. Компания, для которой я разрабатываю это приложение, использует Code 39 штрих-коды для своей продукции.

Zxing прекрасно декодирует короткие штрих-коды, но когда я пытаюсь декодировать длинные штрих-коды "Code 39", он продолжает пытаться, но не дает результата. Для очистки изображения я увеличил площадь сканирующего прямоугольника, которая оказалась успешной для Samsung, но для Motorola - нет. Есть ли способ, которым я могу заставить его работать на Motorola? Любые отзывы будут высоко оценены.

1 ответ

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

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

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

Я являюсь одним из разработчиков сканера штрих-кодов и поддерживаю расширенную (за плату) версию под названием Barcode Scanner +. Он имеет другой алгоритм обработки изображений, который находит границы с субпиксельным разрешением, который лучше работает для подобных кодов. Вы можете захотеть посмотреть, как это работает - и если это работает хорошо, по крайней мере, это говорит о том, какой подход работает лучше. Я не могу отправить вам этот код, но могу описать, что он делает, если вы хотите исследовать этот тип обработки изображений.

Другие вопросы по тегам