Iphone 6 калибровка камеры для OpenCV
Я занимаюсь разработкой приложения дополненной реальности для iOS с использованием OpenCV. У меня проблемы с созданием матрицы проекции камеры, чтобы позволить наложению OpenGL отображаться прямо поверх маркера. Я чувствую, что это из-за того, что моя камера iPhone 6 не была правильно откалибрована для приложения. Я знаю, что есть код OpenCV для калибровки веб-камер и т. Д. С использованием шахматной доски, но я не могу найти способ калибровки моей встроенной камеры iPhone.
Есть ли способ? Или есть известные оценочные значения для iPhone 6? К ним относятся: фокусное расстояние по x и y, первичная точка по x и y, а также матрица коэффициентов искажения.
Любая помощь будет оценена.
РЕДАКТИРОВАТЬ:
Выведенные значения следующие (при использовании iPhone 6, разрешение подачи камеры 1280x720):
fx=1229
cx=360
fy=1153
cy=640
Этот код обеспечивает точную оценку фокусного расстояния и основных точек для устройств, работающих в настоящее время под управлением iOS 9.1.
AVCaptureDeviceFormat *format = deviceInput.device.activeFormat;
CMFormatDescriptionRef fDesc = format.formatDescription;
CGSize dim = CMVideoFormatDescriptionGetPresentationDimensions(fDesc, true, true);
float cx = float(dim.width) / 2.0;
float cy = float(dim.height) / 2.0;
float HFOV = format.videoFieldOfView;
float VFOV = ((HFOV)/cx)*cy;
float fx = abs(float(dim.width) / (2 * tan(HFOV / 180 * float(M_PI) / 2)));
float fy = abs(float(dim.height) / (2 * tan(VFOV / 180 * float(M_PI) / 2)));
НОТА:
У меня была проблема инициализации с этим кодом. Я рекомендую, чтобы значения были инициализированы и правильно установлены, чтобы сохранить их в файле данных и прочитать этот файл для значений.