所以我正在创建一个识别国际象棋动作的程序.到目前为止,我已经实施了相当多的算法来提供最好的结果.我到目前为止所发现的是,对图像进行无失真(使用无失真),然后应用直方图均衡算法,最后使用goodFeaturesToTrack算法(我发现这比哈里斯角点检测更好)的组合产生相当不错的效果结果.这里的目标是让每个广场的每个角落都有一个点.这样,当我应用canny边缘检测时,我可以处理单个方块.

总结上面的链接,我们的想法是找到最左上角,最右上角,最左下角和最右下角的点,并将它们之间的距离除以8.从那里你会想出可能的点,并将它们与实际上在板上的点进行比较.如果其中一个点不匹配,只需替换该点.
我也考虑过某种模式,比如查找相邻点之间的距离并将它们存储在列表中.然后我会执行模式操作以找出最可能的距离并使用它来绘制点.
正如你所看到的,这些点在大多数方块上都相当准确(尽管有些随机点不符合我的要求).我的问题是你认为在棋盘上找到所有角落的最佳方法是什么(我对所有想法都持开放态度)你能给我一些详细的描述(足以引导我朝正确的方向或更多如果你选择:)?此外,(这是次要问题)您是否有任何关于如何进行以便最佳识别移动的建议?我正在尝试实现多种方式,并且我将比较方法以获得最佳结果!谢谢.