ほぼ OpenCV: Camera Calibration and 3D Reconstruction をまとめ直しただけのもの

すなわち
- はピクセル単位
- はピクセルのスケール
である。
ここでゆがみがある場合、 から への変換の間に を挟むことになる。すなわち
となる。
はゆがんだ座標系である。例えば
である。ここで は前と同じく
である。
OpenCV へのカメラ歪みパラメータの渡し方
画像座標系とカメラ座標系の相互変換
例えば、画像のピクセル位置 から三次元方向を求める (unproject) 際は、
- で変換し
- 逆問題を解いて から へ変換する
必要がある。これには、 undistortPoints: (u,v) から (x’,y’) を求めるundistortImagePoints: (u,v) から d=0 なカメラにおける (u,v) を求める?
などが役に立つ。
逆に、三次元方向から画像のピクセル位置を求める (project) 際は、
- で変換し
- 式に代入して から へ変換する (
cv2.projectPointsでrvecとtvecをゼロとし K と d だけ与える)
とよい。
キャリブレーション
内部キャリブレーションがうまくできたかどうかについては
https://kamino.hatenablog.com/entry/opencv_calibrate_camera#sec5
このチェックリストが参考になる
FoV
歪みがないカメラについて、縦の FoV(Angular FoV)は
で与えられる。 は画像の高さ(ピクセル)。
横も同様。