C# 之 OpenCvSharp使用(五子棋的棋子、颜色识别)
前言
作者:浪子花梦,一个有趣的程序员 ~
今天我们来学习一下如何的使用 OpenCvSharp 对图片的一个简单的处理,让我们一起装× 吧,哈哈哈 ~文章学习于 赵老师的 五子棋课 ^ _ ^
.
前言文章如下所示(教会你如何获取进程的截图):
C# 之 鼠标点击进程 —— 截取图片
手把手使用 OpenCvSharp
-
首先, 安装 OpenCvSharp 库(第二个也要安装):
-
准备需要处理的图片(获取图片方法已经在上文展示过):
我们的任务就是识别上面的棋子 + 位置 + 颜色
-
我们现在不在绘图工具中打开图片,而是在一个新的窗口中打开图片,方法如下所示:
其中,Mat boardMat = BitmapConverter.ToMat(bitmap1); 这一行代码,是把图片转换为 矩阵格式,各种各样的操作都是基于这个类实现的,比如上面的显示图片代码,将图片在新的窗口下显示出来 . . .
如下所示: -
因为这个棋盘上面的所有元素会为棋子的识别造成影响,所以我们需要对这个棋子做一个模糊化处理,实现代码如下所示:
效果如下所示: -
转换为灰度图片,进行棋子识别:
效果如下所示:我们发现许多的棋子并没有识别出来,所以我们需要换一种方式来识别旗子,定位棋子的位置 . . .
-
识别棋子位置,并且识别其颜色,代码如下所示:
输出其位置 + 图片:
效果如下所示:
我们发现棋子的位置与颜色已经识别成功 . . .
到此为止,我们下期再见 ~