2015-07-07 8 views

Antwort

6

Die physikalischen Größen von Interesse sind die Sensorgröße und die Brennweite. Letzteres ist im Lochkameramodell der Abstand zwischen Kameracenter und Bildebene. Wenn Sie also mit f die Brennweite (in mm), W bzw. H die Bildsensorbreite und -höhe (in mm) angeben und davon ausgehen, dass die Brennachse senkrecht zur Bildebene steht, lautet sie einfach trigonometrisch:

Beachten Sie, dass, wenn Sie die Sensorgröße und horizontale oder vertikale fovs haben, können Sie eine der ersten beiden Gleichungen für f lösen und stecken Sie es in die dritte, um die diagonale fov zu erhalten.

Wenn wie üblich die Brennweite durch Kamerakalibrierung geschätzt wird und in Pixeln ausgedrückt wird, müssen die obigen Ausdrücke angepasst werden.

Bezeichnen Sie mit K die 3x3-Kameramatrix, wobei der Kamerarahmen seinen Ursprung in der Kameramitte (Brennpunkt), X-Achse von links nach rechts, Y-Achse von oben nach unten und Z-Achse zur Szene hat . Sei Wp bzw. Hp die Breite und Höhe des Bildes in Pixeln.

  1. Im einfachsten Fall ist die Brennachse orthogonal zu der Bildebene (K12 = 0), die Pixel quadratisch sind (K11 = K22), und der Hauptpunkt ist in der Bildmitte (K13 = Wp/2; K23 = Hp/2). Dann gelten dieselben Gleichungen wie oben, wobei W durch Wp, H durch Hp und f durch K11 ersetzt wird.

  2. Ein wenig komplexer ist der Fall genauso wie oben, aber mit dem Hauptpunkt außermittig. Dann addiert man einfach die zwei Seiten jedes FOV-Winkels. So zum Beispiel:

    FOV_Horizontal = atan2 (Wp/2 - K13, K11) + atan2 (Wp/2 + K13, K11)

  3. Wenn die Pixel nicht die gleichen Ausdrücke für FOV_vertical gelten quadrieren, aber mit K22 und Hp, etc. Die Diagonale ist ein bisschen schwieriger, da Sie die Bildhöhe in die gleichen Einheiten wie die Breite "konvertieren" müssen. Mit dem "Pixel-Seitenverhältnis" PAR = K22/K11 für diesen Zweck, so dass:

    FOV_Diagonal = 2 * atan2 (sqrt (Wp^2 + (Hp/PAR)^2)/2, K11)