2010-09-09 2 views
5

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

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

ответ

4

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

+0

Любые удачи на этом? – user281300

5

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

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

13

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

captureSession.sessionPreset = AVCaptureSessionPresetPhoto; 

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

iOS Reference Document

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

+0

Привет, я изначально устанавливал предустановку сеанса в блоке, когда снимался захват изображения. Таким образом, первое изображение всегда поднималось больше. –

 Смежные вопросы

  • Нет связанных вопросов^_^