どうしても忘れてしまうカメラ行列からFoVや焦点距離を求める方法のメモ
カメラ行列の定義をおさらい
K = \left[
\begin{array}{rrr}
f_x & 0 & c_x \\
0 & f_y & c_y \\
0 & 0 & 1
\end{array}
\right]
- 便宜上、px単位で行列が得られたものとします。実際は任意の単位系です。
$ f_x, f_y $ は焦点距離[px]です。
$ c_x, c_y $ は主点[px]で通常画面の中心です。
以下の式に登場する変数の説明
$ W, H $ は画像の幅・高さ[px]です。
$ w, h $ はセンサーの幅・高さ[mm]です。
※センサーの幅・高さはご使用のカメラのカタログ等を確認してください。
FoV(視野角)を求める
$ fov_x = 2\arctan\frac{w}{2f} $
$ fov_y = 2\arctan\frac{h}{2f} $
$ fov_d = 2\arctan\frac{\sqrt{w^2 + h^2}}{f} $
$ f $ は焦点距離[mm]です。
$ fov_x, fov_y, fov_d $ は水平・垂直・対角の視野角[ラジアン]です。
焦点距離[ピクセル]を求める
$ f = \frac{f_x}{W} $
$ f = \frac{f_y}{H} $
焦点距離[mm]を求める
$ f = \frac{f_x w}{W} $
$ f = \frac{f_y h}{H} $