Обнаружение QR-кода с ошибками ZBar и ZXing для определенных действительных QR-кодов - PullRequest
0 голосов
/ 17 мая 2018

У меня действительно странная проблема с обнаружением QR-кода.

TL; DR

Проще говоря, и ZBar, и ZXing не могут обнаружить QR-коды во многих изображениях.

Пример изображения .( Зеркало ).

На моем Mac у меня установлена ​​zbar через Brew.У меня есть zxing настройка с использованием файлов JAR здесь .Оба не могут обнаружить QR-код в изображении примера.(Примечание: обнаружение работает для многих других изображений; я не делаю глупых ошибок при выполнении zbar или zxing.)

Но если я открою приложение " Barcode Scanner " на моем телефонеи держите его перед экраном моего ноутбука с указанным выше QR-кодом, приложение обнаруживает его.Кроме того, если я загружаю вышеуказанное изображение на zxing.org, он также обнаруживает QR-код.

Что может быть не так?

Длинная версия

У меня много физических листов бумаги с напечатанными действительными QR-кодами (аналогично примеруизображение выше).QR-коды обнаруживаются идеально, прямо с бумаги, используя любой сканер штрих-кода камеры мобильного приложения.

Затем я сканирую эти листы бумаги с помощью 2 сканеров с разрешением 300 DPI:

  1. Fujitsu ScanSnap S1300i
  2. Brother ADS-1500W

Выходной формат - JPG (никакой другой опции в программном обеспечении сканера обоих сканеров).

Когда я запускаю zbarНа любом изображении, полученном с помощью сканера Fujitsu (сканирование с использованием программного обеспечения ScanSnap), QR-код ВСЕГДА обнаруживается.

Когда я запускаю zbar (или zxing) на изображениях, созданных сканером Brother, обнаружение QR-кодаочень ударил и пропустил.

Фактический случай : Я отсканировал 31 лист на сканере Brother.Изображения здесь (не G-Drive зеркало с нетронутыми изображениями).Затем я написал скрипт для запуска каждого изображения и нашел в нем QR-код.Сценарий здесь .

Полный вывод сценария производится на пастбине здесь .

Сводка изображений сканера Brother:

Total number of images scanned: 31

Num images with ZBAR QR detected: 17 
Num images ZBAR FAILED: 14

Num images with ZXING QR detected: 15 
Num images ZXING FAILED: 16

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

05161801.JPG - это одно изображение из вышеуказанного набора, которое не было обнаружено обоими программами.Но то же изображение, загруженное на zxing.org, работает.Приложение сканера штрих-кода на моем телефоне также обнаруживает QR-код на экране моего ноутбука для этого изображения.

Подсказки

Тот факт, что обнаружение QR работает для тех же листовбумага, когда они сканируются с помощью сканера Fujitsu, говорит мне, что сканер Brother применяет некоторую постобработку, из-за которой обнаружение QR становится ненадежным (хотя это все еще не объясняет, как zxing.org работает с этими изображениями).Мне интересно, можно ли использовать imagemagick, чтобы заставить изображение работать с ZBar.Я попытался сделать некоторые "улучшения" с помощью Fred's textcleaner сценария.Я еще не смог взломать его.

Я потратил МНОГО времени, пытаясь понять это.Буду признателен за любые предложения, предложения или решения.Спасибо!

ОБНОВЛЕНИЕ: добавление изображений ОДНОХ ЖЕ листов бумаги, отсканированных с помощью сканера Fujitsu

Вы можете загрузить нетронутых изображений из здесь .

Я запустил скрипт barcode_checker.py (такой же, как выше) на этих изображениях Fujitsu.Как упоминалось ранее, QR-код обнаруживается в КАЖДОМ ОДНОМ ИЗОБРАЖЕНИИ!(ZXING в некоторых случаях терпит неудачу, но ZBAR на 100% успешен)

Полный вывод скрипта производится на pastebin here .

Сводка сканера Brotherизображения:

Total number of images scanned: 31

Num images with ZBAR QR detected: 31
Num images ZBAR FAILED: 0

Num images with ZXING QR detected: 26
Num images ZXING FAILED: 5

1 Ответ

0 голосов
/ 25 мая 2018

Я проверил ваш код, и вы, кажется, не применяли обработку изображений или их очистку? Не могли бы вы уточнить, что именно вы пробовали, пожалуйста?


Просто частичный ответ, но никто не сказал, что ответы должны быть полными. Может быть, я знаю 35% истории, а какая-то умная душа знает другие 65% - ты читаешь Фреда (@ fmw42)?

Хорошо, я выбрал (надеюсь, совпадающую) пару изображений:

  • 05161825.JPG (Brother) - показано слева на схеме ниже
  • 2018_05_25_10_19_46.JPG (Fujitsu) - показано справа

и проанализировал их с помощью ImageMagick identify -verbose IMAGE.JPG и запустил разницу в выходных данных.

Они очень тесно связаны, за исключением случаев, отмеченных красным. Я вижу, что при сканировании Brother энтропия постоянно ниже, качество JPEG не указано (?), А размер файла примерно на 35% меньше.

enter image description here

Может быть, у Фреда или Эрика, или у кого-то другого, есть понимание. Я продолжу искать дальнейшие идеи и буду обновлять свой пост по мере того, как со мной случается что-то новое.

...