OpenCV_ cv::findCirclesGrid

キャリブレーショ ンのコードは大体こんな感じ。

  1. チェスボードのコーナ、サークルグリッドの中心を検出
    findChessboardCorners 関数findCirclesGrid 関数
  2. 検出した位置精度を高める。
    cornerSubPix 関数
  3. 検出した位置 ( 座標 ) を imagePoints に格納。
  4. チェスボードやサークルグリッドの数から objectPoints を用意。
  5. calibrateCamera ( objectPoints, imagePoints, … ) 関数を実行。

 

この findCirclesGrid について。

 

戻り値

bool

true
サークルグリッドの全ての円の中心が検出され、正しい順で並べられている。

false
全ての円の中心を検出できていない ( 1 つでも円が検出されないとNG )
または並べ替えに失敗 ( 0 を返す ) 。

 

 

 引数

第一引数
    Mat
    サークルグリッドの画像
    8 ビットでグレースケールまたはカラーでなければならない。

第二引数
    Size
    サークルグリッドの行と列。
    ↓では、Size(11, 4) となる。
   https://docs.opencv.org/2.4/_downloads/acircles_pattern.png

第三引数
    vecto r<Point2f>
    検出された中心が格納されるベクタ ー
    座標が配列として格納される。

第四引数
    int
    処理フラグ。円グリッドのパターンを指定。
    CALIB_CB_SYMMETRIC_GRID   → 円形対称パターン
    CALIB_CB_ASYMMETRIC_GRID → 円形対称パターン

f:id:koshinRan:20171207204507p:plain

 

 

こちらから。
http://ishidate.my.coocan.jp/opencv_17/opencv_17.htm
http://opencv.jp/opencv-2svn/cpp/calib3d_camera_calibration_and_3d_reconstruction.html#cv-findcirclesgrid
https://stackoverflow.com/questions/19849683/opencv-solvepnp-detection-problems
OpenCV カメラの歪みをなおすキャリブレーション C++ – yuki-sato.com
https://docs.opencv.org/3.3.1/d9/d0c/group__calib3d.html#gad1205c4b803a21597c7d6035f5efd775

 

以上。