カメラの特徴に関する前置き
カメラで撮影される映像(画像)は、カメラのレンズなどの種類によって写し方、歪みが様々である。 ARマーカーの正しい距離や回転を求めるために、カメラの内部行列と歪み係数を計算しておく必要がある。
-
内部行列
$ 3 \times 3 $の行列
$ \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} $カメラを原点とする3次元の座標から画像の左上を原点とする2次元の座標に変換する役割がある。
逆に、2次元の画像座標から3次元の画像座標を計算するのにも使える。
$f_x, f_y$はスケーリングとしての役割。
$c_x, c_y$は画像座標の原点を左上にする役割がある。
-
歪み係数
5つの係数を持つ配列$(k_1, k_2, p_1, p_2[, k_3])$。
上記の内部行列だけではカメラのレンズによる歪みを考慮できていない。
歪み係数はその歪みを考慮するための係数。
$k_3$は指定しなければ0になる。 -
参考