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