Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm opencv:检测棋盘上角点的最佳方法 背景_Algorithm_Opencv - Fatal编程技术网

Algorithm opencv:检测棋盘上角点的最佳方法 背景

Algorithm opencv:检测棋盘上角点的最佳方法 背景,algorithm,opencv,Algorithm,Opencv,所以我正在创建一个识别国际象棋动作的程序。到目前为止,我已经实现了相当多的算法,以获得尽可能好的结果。到目前为止,我发现将图像不失真(使用不失真),然后应用直方图均衡化算法,最后是goodFeaturesToTrack算法(我发现这比harris角点检测更好)相结合,可以产生相当不错的结果。这里的目标是让每个正方形的每个角落都有一个点。这样,当我应用canny边缘检测时,我可以处理单个正方形 示例 我所考虑的 为了总结上面的链接,我们的想法是找到最左上方、最右上方、最左下方和最右下方的点,并

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

示例

我所考虑的

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

我还考虑了某种模式,比如查找相邻点之间的距离并将其存储在列表中。然后,我将执行模式操作,以计算出最可能的距离,并使用该距离绘制点

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

请阅读以下两个链接:


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