Как читать длинные штрих-коды «Code 39» с помощью «Zxing»? - PullRequest
3 голосов
/ 16 ноября 2011

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

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

1 Ответ

1 голос
/ 16 ноября 2011

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

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

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

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

...