Algorithm 在图像中查找棋盘

Algorithm 在图像中查找棋盘,algorithm,opencv,Algorithm,Opencv,因此,我最初认为在图像中查找棋盘应该很简单,因为它是一个很容易定义的对象。然而,这并不容易,我想知道是否有人知道棋盘查找器“cvFindChessboardCorners”在OpenCV中是如何工作的。我试着用谷歌搜索,但还没找到算法。我猜可能是这样的: 1) 二值化 2) 打开和关闭以消除小簇 A) 2) 查找哈里斯角 3) 创建图像中所有点之间的距离矩阵 4)...? B) 2) 查找霍夫变换 3) 检查所有有效线的相交位置。如果4条或更多的线在一点相交,那么这些线就是棋盘的一部分

因此,我最初认为在图像中查找棋盘应该很简单,因为它是一个很容易定义的对象。然而,这并不容易,我想知道是否有人知道棋盘查找器“cvFindChessboardCorners”在OpenCV中是如何工作的。我试着用谷歌搜索,但还没找到算法。我猜可能是这样的:

1) 二值化
2) 打开和关闭以消除小簇

A)
2) 查找哈里斯角
3) 创建图像中所有点之间的距离矩阵
4)...?

B)
2) 查找霍夫变换
3) 检查所有有效线的相交位置。如果4条或更多的线在一点相交,那么这些线就是棋盘的一部分。这包括无穷远处的点。
4)?


有人确切地知道吗?

很漂亮。。。复杂:)如果你想确切地知道,opencv的源代码应该是可以查看的地方——在opencv 2.2中,它位于
modules/calib3d/src/calibinit.cpp
第219行。它还有一个
DEBUG_CHESSBOARD
compile开关,可以查看它是如何工作的