opencv:检测棋盘角的最佳方法

Posted

技术标签:

【中文标题】opencv:检测棋盘角的最佳方法【英文标题】:opencv: Best way to detect corners on chessboard 【发布时间】:2014-12-17 08:13:44 【问题描述】:

背景

所以我正在创建一个识别国际象棋动作的程序。到目前为止,我已经实现了相当多的算法来获得最好的结果。到目前为止,我发现不失真图像(使用 undistort ),然后应用直方图均衡算法,最后是 goodFeaturesToTrack 算法(我发现这比哈里斯角检测更好)的组合产生了相当不错的效果结果。这里的目标是用一个点来计算每个正方形的每个角落。这样,当我应用精明边缘检测时,我可以处理单个正方形。

示例

我的考虑

http://www.nandanbanerjee.com/index.php?option=com_content&view=article&id=71:buttercup-chess-robot&catid=78&Itemid=470

总结上面的链接,想法是找到最左上角、最右上角、最左下角和最右下角的点,并将它们之间的距离除以八。从那里你会想出可能的点,并将它们与实际在板上的点进行比较。如果其中一个点不匹配,只需替换该点。

我还考虑过某种模式,例如查找相邻点之间的距离并将它们存储在列表中。然后我会执行一个模式操作来找出最可能的距离并用它来绘制点。

问题

如您所见,这些点在大多数正方形上都相当准确(尽管有些随机点不符合我的要求)。我的问题是你认为找到棋盘上所有角落的最佳方法是什么(我对所有想法持开放态度),你能否给我一个稍微详细的描述(如果你选择的话,足以引导我走向正确的方向或更多:)?另外,(这是一个次要问题)您对如何进行以最好地识别动作有什么建议吗?我正在尝试实现多种方法,并将比较方法以获得最佳结果!谢谢。

【问题讨论】:

【参考方案1】:

请阅读这两个链接:

http://www.aishack.in/tutorials/sudoku-grabber-opencv-plot/

How to remove convexity defects in a Sudoku square?

【讨论】:

谢谢。我浏览了这些文章,它们提供了很好的见解。谢谢!

以上是关于opencv:检测棋盘角的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

如何检测一个棋盘角?

如何用opencv找到模糊角位置?

如何解释校准结果(OpenCV)

Python 如何使用 HoughLines 和 OpenCV 检测图像中的垂直线和水平线?

opencv相机标定

使用 OpenCV 进行三角形检测