
不幸的是,我知道对于cv.findChessboardCorners来说,这种质量并不是能够检测到角点的最佳方法,但是我正在尝试识别能够在ROI (棋盘)中找到角点的角点检测器。我试过哈里斯角探测器,但它没有检测棋盘角,但它检测到角字符角。
我能做些什么来探测广场的角落呢?注意:这是一个红外图像,它像一个灰色图像(1通道)。
发布于 2022-10-19 21:08:50
我真不知道opencv是怎么找到棋子的。所以也许它不太在意。但这不是棋盘。它有9列7行。
嗯,事实上,我刚在谷歌上搜索过,而且,是的,这很重要。Opencv想知道棋盘的尺寸。
在您的例子中,您必须指定patternSize=(8,6);(8,6),而不是(9,7),因为patternSize是内部角的数目(因此,对于真正的棋盘来说,它是(7,7))。也许你已经知道了。我们不知道,因为你还没发布任何密码。
发布于 2022-10-20 00:59:58
关于findChessboardCorners()故障:
对于findChessboardCorners(),OpenCV手册上写着:
这个函数需要周围的空白(就像正方形的边框,越宽越好),以使检测在各种环境中更加健壮。否则,如果没有边界,背景是黑暗的,外部黑色方块无法正确分割,因此方块分组和排序算法失败。
您的图像不符合该功能的要求。
对于不使用findChessboardCorners():
如果我想用自己的算法找到角..。
我不会尝试哈里斯等,因为我不想找到所有可以称为“角落”的东西。
由于我只想检测棋盘模式的角点,所以我将考虑排除其他不必要的角的需求。也就是说,我会考虑“街角图像的特征是什么?”
例如:
。
然后,在此基础上构造检测器。
https://stackoverflow.com/questions/74131454
复制相似问题