Iphone 6 Kamerakalibrierung für OpenCV

Im Entwickeln einer iOS Augmented Reality-Anwendung mit OpenCV. Ich habe Probleme beim Erstellen der Kamera-Projektionsmatrix, damit das OpenGL-Overlay direkt über der Markierung abgebildet werden kann. Ich habe das Gefühl, dass meine iPhone 6 Kamera nicht richtig für die Anwendung kalibriert wurde. Ich weiß, dass es OpenCV-Code zum Kalibrieren von Webcams usw. mit dem Schachbrett gibt, aber ich kann meine eingebettete iPhone-Kamera nicht kalibrieren.

Gibt es einen Weg? Oder gibt es bekannte Schätzwerte für das iPhone 6? Dazu gehören: Brennweite in x und y, Primärpunkt in x und y sowie die Verzeichnungskoeffizientenmatrix.

Jede Hilfe wird geschätzt.

BEARBEITEN

Die herabgesetzten Werte lauten wie folgt (bei Verwendung des iPhone 6 mit einer Kameraeinzugsauflösung von 1280 x 720):

fx=1229
cx=360
fy=1153
cy=640

Dieser Code bietet eine genaue Schätzung der Brennweite und der Primärpunkte für Geräte, auf denen derzeit iOS 9.1 ausgeführt wird.

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)));

HINWEIS

Ich hatte ein Initialisierungsproblem mit diesem Code. Ich empfehle, sobald die Werte initialisiert und korrekt eingestellt sind, sie in einer Datendatei zu speichern und diese Datei für die Werte einzulesen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage