前言
棋盘格中角点检测方法是相机标定中必不可少的步骤之一。Opencv中的函数
bool findChessboardCorners(InputArray image, Size patternSize, OutputArray corners, int flags=CALIB_CB_ADAPTIVE_THRESH+CALIB_CB_NORMALIZE_IMAGE )
就可以轻松实现棋盘格角点检测结果。如下图所示
具体使用方法参考如下链接
http://blog.youkuaiyun.com/u011651743/article/details/51099543
但是,这种方法虽然简单,但是在实际使用中有如下问题:
1、 需要提前指定棋盘格尺寸。这在很多自动化应用中是很难做到的。
2、 鲁棒性差。棋盘格如果有干扰(比如轻微的遮挡)就会使得检测失败,而且棋盘倾斜角度较大也会检测失败。具体测试见上述链接。
3、 无法处理一张图片包含多张棋盘的情况。
基于此,今天介绍的是一种新的检测方法。主要参考论文《Automatic Camera and Range Sensor Calibration using a single Shot》。可以针对性地解决上述问题。
优点:
1、 不需要提前指定棋盘格数目。
2、 鲁棒性好。因为是基于生长的算法,所以如果出现干扰,就会绕过干扰,生长出最大的棋盘。
3、 可以检测一个图片里包含多张棋盘的情况。
缺点: