2012-01-19 8 views
8

Может ли кто-нибудь сказать, какая библиотека лучше в распознавании небольших QR-кодов при низких условиях освещения? Платформа iPhone 4/iOS 5 Я пробовал как штрих-коды (zxing), так и приложения ZBar, и кажется, что zxing заметно лучше распознавал коды в «жестких» условиях. Тем не менее, это был не очень большой пробный тест.ZBar vs. zxing - сравнение распознавания QR

Любые входы на реальные возможности распознавания изображений (скорость + качество) обеих библиотек были бы полезными.

TIA.

+0

Я сомневаюсь, что на самом деле это будет значительно лучше, так как небольшие QR-коды довольно легко сканировать в схеме вещей. Однако zxing особенно хорош в QR-кодах, но его порт C++ немного устарел по сравнению с версией Java. У меня нет жестких цифр, но я написал эту часть zxing. –

ответ

4

Что касается меня ZXing лучше. Я использовал их как для работы в приложении iOS.

  1. С ZBar У меня были проблемы с большими QRCodes.

  2. ZXing отлично работает на iPhone 4 и 3GS, но Zbar хуже работает на 3GS, иногда он просто не может захватить код.

Но если вам нужны не только QR-коды, вы должны использовать ZBar.

+0

Больше, чем просто декодирование QR-кода было перенесено с Java на C++ в zxing, хотя я несколько согласен с вашим последним моментом в том, что эти порты еще более пятнистые и устаревшие по сравнению с версией Java. –

+0

Вы должны взглянуть на это: ttp: //zbar.sourceforge.net/iphone/sdkdoc/optimizing.html, производительность по умолчанию, используя значения по умолчанию ZBar, создадут проблемы с большими QR-кодами v40 - решение заключается в установке свойства videoQuality для UIImagePickerControllerQualityTypeHigh вместо стандартного 640x480 (найденного в документах Apple UIImagepickerController. Я пробовал оба SDK около года назад, мне нравится приложение примера ZXing, которое дает представление о независимом парсере, перечислении элементов действия и добавленной безопасности, позволяющей чтобы выбрать действие или нет. – Paulo

1

Вы должны взглянуть на this link. Производительность с использованием ZBar по умолчанию создаст проблемы с большими QR-кодами v40 - решение заключается в том, чтобы установить свойство videoQuality на UIImagePickerControllerQualityTypeHigh вместо стандартных документов 640x480 (Apple). Согласно документации, размер модуля штрих-кода должен быть размером не менее 3 пикселей для сканирования. Я пробовал оба SDK около года назад, мне нравится пример приложения ZXing, но в конце до представления appstore я обнаружил, что он создал много предупреждающих сообщений, которые мне трудно удалить. Переключение на ZBar позволило мне очистить сообщение и добавить возможность сканировать несколько типов штрих-кода 1D в мое приложение. Как уже упоминалось, настройки по умолчанию не дают вам оптимальной производительности, но вам нужно заглянуть в опции, отключить те, которые вам не нужны, лишить их, чтобы он работал достаточно хорошо.

Я очень доволен ZBar в данный момент, но, скорее всего, переключится, если поддержка ZXing для других типов штрих-кодов, в частности, станет доступна DataMatrix, PDF417, Aztec и Maxi Code.

+0

Недавно я поддержал большую часть 1D (за исключением RSS и некоторых расширений UPC/EAN) и 2D (за исключением файлов PDF-417, которые кто-то еще делает), которые поддерживаются в Java (не включает в себя Maxicodes) .Не уверен в предупреждениях о сборке. В виджетах есть некоторые из них, поскольку он предшествует ARC. – smparkes

+0

Я проведу ZXing время от времени спасибо за t он инфо. – Paulo

+0

@Paulo Does 'zbar' поддерживает' DataMatrix'? Знаете ли вы, что этот символ будет использоваться для этого? –

0

Я использовал их оба. Вы должны использовать ZXing, если вы хотите, чтобы коды матрицы данных сканирования. Но если вам не нужна матрица данных, использование ZBar происходит быстро и просто. Кроме того, в iOS 7 встроен сканер API, AVCaptureMetaDataOutput, который сканирует 1D и 2D коды, за исключением матрицы данных. Из-за простоты я бы предпочел AVCaptureMetaDataOutput. Вот руководство для AVCaptureMetaDataOutput.

0

Я обнаружил, что Zxing очень хорош на более поздних iPads и iPhone. Камера iPad 2 была очень медленной с Zxing, но более поздние камеры были намного быстрее и имели лучшую фокусировку, что значительно улучшило скорость.

Один «взлом» Я сделал с Zxing на iPad 2, чтобы изменить прямоугольник в коде. Я бы постепенно уменьшал масштаб каждой попытки, поэтому вместо использования отображаемого прямоугольника я бы расширил его пошагово, поэтому я бы проверял 5 раз для каждого сканирования. Результаты были значительно улучшены. На iPad 3 и т. Д. Это было не так необходимо, но все же у меня есть код там, и он быстрый.

Я использовал ZBar и ZXing в Windows, используя сканеры (300 DPI), и нашел плотные QRCodes проблемой для ZXIng и должен был включить поддержку ZBar. Реализация поддержки ZBar была очень сложной и мне пришлось написать свой собственный API, если кому-то это интересно.