Из AVFoundation
таких объектов, как AVCaptureDevice
, я могу прочитать значение fieldOfView
, используя
captureDevice.activeFormat.videoFieldOfView
И это дает мне значение около 58 градусов на iPhone 6s. Но мне нужно, чтобы текущее значение фактического fieldOfView
отображалось в текущем кадре, пока работает AVCaptureSession
. Под этим я подразумеваю, что значение, считанное с activeFormat
, не отражает реального fieldOfView
, когда объектив перемещается, чтобы получить изображение в фокусе. Например, когда я навожу камеру на удаленный объект, объектив перемещается, чтобы сохранить фокус, и fieldOfView
немного увеличивается, примерно до 61 градуса. Вы можете наблюдать это поведение в ARKit
камере - даже когда камера ловит фокус, отображаемые объекты становятся больше и меньше, фокусируясь вместе с предварительным просмотром камеры. Я хотел бы знать, как я могу добиться такого поведения и настроить fieldOfView
на текущее положение объектива. Мне нужно применить это к SceneKit
камере.
Вкратце: как найти текущую точную FieldOfView
камеры с учетом текущего положения фокуса (или положения объектива)
Чтобы понять, что я имею в виду, посмотрите на эту гифку:
В начале вы можете видеть, как он фокусируется, а видео как бы немного увеличивает/уменьшает масштаб, чтобы поймать правильное положение объектива. Так что, когда эта линза движется, реальный видимый fieldOfView
становится немного другим.
AVCaptureDevice.lensPosition
. Это значение изменяется от 0,0 до 1,0 при повышении резкости изображения для фокусировки. Но значение от 0 до 1 не дает мне достаточно информации, я не знаю, как именно это влияет на fieldOfView. Есть ли какие-то другие значения, которые я мог бы использовать для расчета этого? - person Damian Dudycz   schedule 18.07.2018lensPosition
иfieldOfView
, вы можете прикрепитьCADisplayLink
. НоfieldOfView
, похоже, не имеет значения при изменении положения объектива или масштабирования, поэтому я думаю, вам следует найти подходящие формулы в Интернете. :( - person Denis Litvin   schedule 25.07.2018fieldOfView
при разныхlensPosition
? В настоящее время я работаю над чем-то подобным, где мне нужен текущий fieldOfView моего активного сеанса камеры iOS, который не может быть сеансом ARKit, но я заметил, что константаfieldOfView
, возвращаемая из iOS, недостаточно хороша для моего варианта использования. Было бы здорово, если бы мне не пришлось переделывать ту же работу, что и ты... - person Carsten Haubold   schedule 04.03.2019