1

假设我们有一个 8x9 棋盘,并且函数 cv::findChessboardCorners 可以毫无问题地识别它,我的问题是为什么该函数不能在同一图像中识别尺寸较小的棋盘,我在 for 循环中尝试并减小了大小例如,函数可以识别 5x4 和 4x5 但不能识别 6x7 的棋盘?知道为什么会这样吗?

我已经尝试过调试程序,但我不明白calibinit.hpp中到底发生了什么

提前致谢 !

4

2 回答 2

1

我认为主要问题是您会产生歧义,因为很容易在较大的棋盘中找到不同的较小棋盘。

如果您对由棋盘组成的图像进行角点检测,您会发现一个规则的角点网格。然后findChessboardCorners需要找到一个与给定尺寸(x,y)的棋盘非常相似的结构。它将评估将棋盘映射到角点检测发现的规则网格的不同可能性,这些评级非常相似。因此,很难确定您正在寻找的棋盘是哪一个。

于 2013-08-15T11:39:28.077 回答
0

这是因为识别板必须有浅色边框。

于 2013-08-15T10:32:57.677 回答