本文主要是介绍中国象棋局面识别 -1.象棋棋盘的识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
中国象棋棋盘有横的线和竖的线(也还有斜的线--士走的那个叉线).由横线和竖线连起来看,它可以理解为一个表格.所以这节也可以说是中国象棋棋盘表格的识别.总体思路就是通过霍夫变换(HoughLines)从棋盘抓图中获取线段出来.过滤掉斜线.和一些挨得过近识别到的重叠的线.
期望得到的目标值是
9根竖线(纵线),10根横线.
这里配张网上找的图以加深下直观印象.
因为是学习测试阶段.为了让opencv的霍夫变换识别 过程更直观一些.我们让它把识别到的线直接在图上画出来.(这也是我之前看别人代码和配图困惑的地方,配的图能直接在被识别的图上画线,而代码却没有体现如何画的),如何画呢?我开始用的是土办法.就是用画图板打开图片.然后使用pyautogui模块,让它辅助执行操作,把识别到的线给画在画图板上.因为电脑知道具体的坐标位置.而我们查看数据,只是一串数字.不够具体化直观化.
后面静下心来看了下opencv的文档,发现它直接有方法支持画线在上面并保存图片。
先对图片进行简单的切割。去除顶部和底部的二个对家的信息。
这里先hardcode一下了。实际使用时可以先用shape[:2] 得到图片的长宽信息。然后按比例切割。
这篇关于中国象棋局面识别 -1.象棋棋盘的识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!