自前でやっていた円パターン認識処理と同様の処理を行う関数cv::findCirclesGrid()がOpenCV2.3で新たに提供されたようなので試してみました.
OpenCVのカメラ校正はそもそも「普通の」カメラの校正を想定してある感じなのですが,もし,ある程度歪曲のある画像からも検出してくれるならば広角や魚眼のカメラ校正にも使えるかも,と期待しつつ,手持ちの魚眼画像を与えて実験.
結果は,↓のように,(ちょっと円の中心からずれた位置に結果が出てる気もしますが)
・ある程度の歪曲
・パターンボード面上に明るさ変化
がある画像でも認識できている! ワオ!
…と思いきや,こちらの画像↓や,自前処理の結果例に使った画像等では失敗してしまうようです.
↑の画像はボード姿勢がカメラに対して斜めすぎるのが良くないのかもしないと思い,よりperspective distortionにロバストになるというオプションCALIB_CB_CLUSTERINGを指定してみましたが,やはり結果は変わらず.
成功する画像と失敗する画像の境界がいまいち不明ですが,魚眼画像だとちょっと傾いた姿勢だったりすると厳しいようです.
うーん,残念.
by nakiusagi3
- Newer: JASA共創・協業フォーラムに参加させて頂きました
- Older: OpenCV2.3インストール作業メモ