OpenCV3ではopencv_contributeというリポジトリにOpenCVを使用して作成されたライブラリがモジュールとして収録されている。 この中にAR向けマーカー認識ライブラリのArUcoがある。
opencv_contrib/modules/aruco
にはCMakeLists.txtが存在するが、これはArUcoそのものをビルドするためのものであるため、
サンプルのビルドには使用できない。
次のファイルをopencv_contrib/modules/aruco/samples
に置く。
ここでは、create_board.cpp
とcalibrate_camera.cpp
をビルドしている。
サンプルの実行例を下記に示す。
$ ./create_board -w=4 -h=3 -d=10 -l=100 -s=30 -m=30 --si test.png $ ./calibrate_camera -w=4 -h=3 -d=10 -l=0.03 -s=0.01 --ci=1 ./test.xml
パラメータは適当。
create_board
でキャリブレーションに使用するマーカーボードを作成。
calibrate_camera
でキャリブレーションを実行する。
create_boardのサイズ指定がピクセル単位なのに対し、calibrate_cameraのサイズ指定はメートル単位となっている。 これはキャリブレーションを印刷したボードで行うことを想定しているためだろう。