Pull to refresh
108
0
Zheka Kozlov @orionll

Пользователь

Send message
Если имеется в виду именно средняя яркость всего изображения, то да, от нее ничего не зависит.
А вот если средняя яркость левой половинки картинки меньше, чем правой (неравномерная освещенность фотографии, например), то, к сожалению, метод уже не работает. В таком случае приходится применять всякие ухищрения.
Согласен, выйдет не очень. Но тут ничего не поделаешь — пользователю самому придется выравнивать телефон горизонтально. Хотя как я уже сказал выше, допустимый диапазон углов составляет от -30° до +30°, поэтому строгая горизонтальность не нужна. Небольшой наклон допустим.
А вообще все познается в сравнении: если взять, например, то же Яндекс Маркет приложение для Android, то там вообще надо подгонять камеру телефона так, чтобы штрих-код встал четко под прямоугольник. Когда я ехал в трясущейся маршрутке, я просто физически не смог этого сделать.
Или, например, лазерный сканер. Если присмотреться, то можно заметить, как продавщицы в супермаркете частенько поворачивают упаковку товара, чтобы штрих-код распознался системой. А ведь в лазерном сканере качество считывания намного выше, чем в камере телефона.

Так что мой вывод таков: фотографировать штрих-код издалека все равно проще, чем подносить камеру так, чтобы штрих-код четко попадал в зону считывания. Приложений, которые работают по второму принципу полно, а первых, насколько мне известно, пока еще нет.
>> А работает ли вычитание производных если штрих-код сфотографирован под углом?
Как говорят авторы алгоритма, алгоритм хорошо работает в диапазоне наклонов от -30° до +30°. Что довольно неплохо, ИМХО.

>> А для QR-кодов?
Описанный выше алгоритм работает только для 1D штрих-кодов.
Хотя ничто не мешает изменить алгоритм под QR-коды: вместо вычитания сделать сложение производных (в QR-кодах есть и горизонтальные, и вертикальные градиенты).

>> Вдобавок хочу дать ссылку на открытый проект ZXing
Да, отличный проект, знаю такой. У него есть одно важное преимущество: он работает с большим количеством различных типов штрих-кодов (1D и 2D) и сам способен распознавать их тип. Но это же преимущество в то же время приводит и к серьезному недостатку: для каждого отдельного типа штрих-кода распознаваемость намного хуже, чем в алгоритмах, специализированных именно под этот тип штрих-кода. Если я правильно понял, то он вообще никак не локализует штрих-код на картинке. И при больших искажениях, таких как дефокусировка и низкое разрешение, он дает совсем плохие результаты.
12 ...
36

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity