Слой предварительного просмотра камеры AV Foundation увеличивается, как уменьшить масштаб? - PullRequest
9 голосов
/ 09 сентября 2010

Приложение, которое я в настоящее время использую, имеет основную функциональность для непрерывного сканирования QR / штрих-кодов с использованием библиотеки Zxing (http://code.google.com/p/zxing/).. Для непрерывной съемки кадров я использовал для инициализации AVCaptureSession и AVCaptureVideoOutput, AVCaptureVideoPreviewLayer, описанный в яблоке, вопросы и ответы http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html.

Моя проблема в том, что когда я использовал предварительный просмотр камеры, изображение, которое я вижу на видеоустройстве, намного больше (в 1,5 раза), чем изображение, которое мы видим на неподвижной камере iPhone. Наш клиент должен держать iPhone на расстоянии около 5 см от штрих-кода во время сканирования, но если вы поднесете iPhone к этому параметру, весь QR-код не будет виден, и декодирование завершится неудачно. Почему видеокамера в iPhone 4 увеличивает изображение (просматривая через AVCaptureVideoPreviewLayer)?

Ответы [ 3 ]

16 голосов
/ 08 февраля 2011

Это функция предустановки видео AVCaptureSession, доступная с помощью свойства .sessionPreset. Например, после настройки вашего captureSession, но перед его запуском вы добавите

captureSession.sessionPreset = AVCaptureSessionPresetPhoto;

См. Документацию здесь:

Справочный документ iOS

По умолчанию для видео установлено значение 1280x720 (я думаю), что является более низким разрешением, чем максимальное, поддерживаемое камерой. Используя предустановку «Фото», вы получаете необработанные данные с камеры.

6 голосов
/ 12 ноября 2010

Вы видите то же поведение со встроенным приложением iPhone Camera.Переключайтесь между режимами фотосъемки и захвата видео, и вы заметите, что уровень масштабирования по умолчанию изменяется.В режиме фотосъемки вы видите более широкий обзор, тогда как режим видео немного увеличивается.

Я предполагаю, что для непрерывного захвата видео необходимо использовать меньшую область сенсора камеры для оптимальной работы.Если бы он использовал весь датчик, возможно, система не выдержала бы 30 кадров в секунду.Использование меньшей площади сенсора дает эффект «увеличения» сцены.

4 голосов
/ 29 сентября 2010

Я снова отвечаю на свой вопрос.На этот вопрос не ответили даже на форуме Apple Dev, поэтому я напрямую подал запрос на техническую поддержку от Apple, и они ответили, что это известная проблема, которая будет исправлена ​​и выпущена в следующей версии.Так что мы ничего не можем сделать больше, чем ждать и видеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...