Основа AV iOS Машиночитаемое Обнаружение Кода FAQ
Обсуждает часто задаваемые вопросы об Основе AV iOS машиночитаемое обнаружение кода.
Почему не обнаруживает мой 1-мерный штрихкод?
Во-первых, проверьте, что штрихкод имеет тип, поддерживаемый AVMetadataMachineReadableCodeObject.
Проверьте, что штрихкод находится в фокусе. Реализация касания к фокусу или неоднократно инициирование автофокуса рекомендуются для лучших результатов на включенных камерах автофокуса. При использовании фиксированной наведенной камеры некоторые коды могли бы быть слишком маленькими для декодирования на надлежащем расстоянии фокуса.
Проверьте что AVCaptureSessionPreset или AVCaptureDeviceFormat обеспечивает достаточное разрешение для плотности штрихкода, который Вы пытаетесь отсканировать.
Почему мой 1-мерный штрихкод не обнаруживается во всех расположениях в изображении?
2-мерные символические обозначения штрихкода (ацтек, QR) легко нашли образцы маркера, позволяющие им быть найденными эффективно где угодно в цифровом изображении. 1-мерные символические обозначения штрихкода (UPCE, Code39, Code93, Code128, EAN8, EAN13, PDF417*) не имеют таких образцов. Это вызвано тем, что они были разработаны, чтобы быть считанными лазерным сканером.
AVCaptureMetadataOutput 1-мерные детекторы штрихкода ведут себя способом, соответствующим этому проекту. Детектор выбирает изображение с помощью ограниченного набора строк развертки. AVCaptureMetadataOutput API может обнаружить штрихкод только, когда decodable часть штрихкода пересекает одну из этих строк.
Образец сканирования включает горизонталь, вертикальные, почти горизонтальные, и почти вертикальные строки развертки вокруг центра AVCaptureMetadataOutput rectOfInterest («Центр»). Посмотрите Таблицу 1. Можно хотеть предоставить подсказки пользователю о том, куда поместить штрихкод в предварительном просмотре камеры для лучших результатов.
При некоторых обстоятельствах, когда меньше символических обозначений включено и на более мощных аппаратных средствах, набор строк развертки расширен для покрытия большей части области («Дополнительного») интереса.
Поддерживаемое устройство | Строки развертки (только 1D коды включили), | Строки развертки (когда 2D коды также включены), |
|---|---|---|
iPhone 4 | Центр | Центр |
iPhone 4S и позже | Центр + дополнительный | Центр |
iPad (все) | Центр + дополнительный | Центр |
iPod Touch | Центр + дополнительный | Центр |
* PDF417 является 2-мерным символическим обозначением, но обрабатывается AVCaptureMetadataOutput как (сложенный) 1-мерный код.
AVCaptureMetadataOutput может обнаружить многократные 1-мерные штрихкоды в кадре?
Нет. Только единственный 1-мерный код будет возвращен с каждым вызовом к AVCaptureMetadataOutputObjectDelegate captureOutput:didOutputMetadataObjects:fromConnection:, и это будет соответствовать центральному больше всего decodable штрихкоду в rectOfInterest.
AVCaptureMetadataOutput может обнаружить многократные 2-мерные штрихкоды в кадре?
Да. Существует предел четырех штрихкодов на вызов к AVCaptureMetadataOutputObjectDelegate captureOutput:didOutputMetadataObjects:fromConnection: который будет обычно соответствовать центральным больше всего кодам в rectOfInterest.
UPC-A поддерживается?
Да. UPC-A является формальным подмножеством EAN-13. Декодируемый штрихкод UPC-A выводится как AVMetadataObjectTypeEAN13Code с начальным нулем в stringValue.
EAN-2 и EAN-5 поддерживаются?
Нет.
Как я могу улучшить результаты сканирования относительно очень маленьких или очень плотных кодов?
Обнаружительная способность кода зависит от многих факторов, включая: разрешение получения, количество света, сложность / плотность кода, отсканированного, и расстояние от линзы.
1. Попытайтесь использовать более высокую предварительную установку разрешения, но избегайте использования AVCaptureSessionPresetPhoto разрешение — это может привести к более длительным временам воздействия и увеличенной размытости при слабом освещении ситуации.
2. Установка a Try videoZoomFactor между 1,0 и videoZoomFactorUpscaleThreshold. Это обеспечивает более высокое окно разрешения на меньшей части изображения, что означает, что существует больше пикселей штрихкода для декодера для работы с.
Необходимо экспериментировать с различными разрешениями камеры и плотностью кода для нахождения правильной комбинации, работающей на определенное приложение.
История версии документа
| Дата | Примечания |
|---|---|
| 04.10.2013 | Фиксированные ссылки на документ. |
| 01.10.2013 | Новый документ, обсуждающий часто задаваемые вопросы об Основе AV iOS машиночитаемое обнаружение кода |