说我们有一个8x9的棋盘,而函数cv::findChessboardCorners可以毫无问题地识别它,我的问题是为什么该功能不能在同一图像中识别出较小的棋盘,所以我在for循环中尝试将其减小函数可以识别例如说5x4和4x5但不是6x7的棋盘吗?
知道为什么会这样吗?
我已经尝试调试该程序,但我不了解 calibinit.hpp 中到底发生了什么
提前致谢 !
最佳答案
我认为主要的问题是您可能会感到模棱两可,因为很容易在较大的棋盘中找到不同的较小棋盘。
如果对包含棋盘的图像进行角点检测,则会发现规则的角点网格。
然后findChessboardCorners
需要找到一个与给定大小(x,y)的棋盘非常相似的结构。它将对将棋chess映射到通过角点检测找到的常规网格的不同可能性进行评级,并且这些评级非常相似。
因此,很难确定您要寻找的是黑板。