本发明涉及计算机图像识别技术,具体涉及一种基于图像处理的中国象棋识别系统及方法。

背景技术:

数字图像处理技术在机器感知领域应用十分广泛,主要目标是通过一些图像处理技术从图像中提取信息,该信息类似于人们采用语言和文字解释图像内容的过程,使用图像处理技术的典型问题是自动字符识别、产品装配线和检测的工业机器视觉、军师识别、指纹自动处理、卫星图像的机器处理等。

数字图像处理技术图像预处理技术、图像滤波、图像还原、图像压缩、图像的形态学处理等,图像处理函数库主要有MATLAB图像处理库、OPENCV库以及各种图像处理软件自带函数库。

技术实现要素:

为了克服现有技术存在的缺点与不足,本发明提供一种基于图像处理的中国象棋识别系统及方法。

本发明采用传统的中国象棋,在不修改和添加任何信息的情况下,能够对中国象棋的棋子进行识别和定位,并且保存棋局的演变过程。

本发明采用如下技术方案:

一种基于图像处理的中国象棋识别系统,包括象棋棋盘及棋子,还包括摄像头、图像背景板、显示装置及图像处理装置,所述摄像头通过摄像头支架固定在图像背景板上,所述象棋棋盘放置在图像背景板上,并位于摄像头的视野范围,所述摄像头及显示装置分别与图像处理装置连接。

所述棋子的样式为文字加外环的形式,文字颜色为红黑两色。

一种基于图像处理的中国象棋识别系统,包括象棋棋盘及棋子,还包括摄像头、图像背景板、显示装置及图像处理装置,所述摄像头通过摄像头支架固定在图像背景板上,所述象棋棋盘放置在图像背景板上,并位于摄像头的视野范围,所述摄像头及显示装置分别与图像处理装置连接。

所述棋子的样式为文字加外环的形式,文字颜色为红黑两色。

一种中国象棋识别系统的识别方法,包括如下步骤:

S1图像处理装置接收摄像头图像数据,然后对图像进行灰度化和二值化处理;

S2识别象棋棋子;

S3定位棋盘,通过棋盘网格定位棋盘位置,通过识别棋子“帅”和“将”的位置,确定棋盘的角度;

S4确定象棋棋子的初始状态,形成象棋棋子的初始状态表,所述状态表包括棋子名、棋子颜色、当前位置及是否可用;

S5根据前后两帧图像的棋子状态判断棋局是否进行操作,将象棋棋子的操作过程用链表的数据结构形式保存,链表的元素包括:棋子名,棋子颜色,初始位置,结束位置,同时修改对应棋子的状态。

识别象棋棋子的过程具体如下:

得到二值化后的图像,通过边缘检测函数,查找到满足约束条件的边缘,确定边缘序列,根据边缘序列的周长进一步确定棋子轮廓,将轮廓转换为最小外接矩形,将矩形内的图像数据截取后,缩放到固定像素得到象棋棋子图像;

根据图像颜色区别双方棋子,计算象棋棋子图像的多层饱和度,将每层的饱和度数据按从外向内或者从内向外的顺序排列,形成棋子图像的特征向量;

然后与样本空间进行对比,求取特征向量对于所有样本向量的欧氏距离;

最后根据最小欧氏距离原则对图像进行识别得到象棋的名字。

所述圆形度公式如下:

其中为l边缘序列的长度,为S边缘序列围成的面积。

所述多层饱和度等于固定宽度的矩形环中颜色像素点的数量与矩形环的面积之比,其中,最内层为第1层。

Pi=sum(p1)/Si,(p1∈Li)

式中Pi为第i层饱和度分量,p1为第i层中带有目标颜色的像素点sum(p1)为第i层中带有目标颜色的像素点总数,Si为第i层像素点总数,计算公式如下。

Si=(2*i*width)2-(2*(i-1)*width)2

=4(2i-1)width2

其中width为矩形环宽度。

S3中定位棋盘,通过棋盘网格定位棋盘位置,具体为:

对灰度化和二值化处理后的图像进行边缘检测,棋盘的棋格特征为一个矩形,通过边缘序列的矩形判断和周长特征来识别棋盘的棋格特征,棋格特征包括:棋格的边长和棋格的角度

边长用来确定棋盘的步长,角度对图像进行旋转变换来校正图像,从而方便确定象棋的位置。

本发明的有益效果:

(1)本发明能够通过摄像头读取棋盘信息,定位棋子在棋盘中的位置,并能够识别棋子的类型,并将棋子的变化转化为操作量,从而实现对棋局演变过程的监控,将虚拟与现实结合,比纯虚拟象棋或现实象棋更具趣味性。

(2)本发明设计的识别算法,可以实现对任意角度的棋子文字进行识别和定位。

(3)与传统的基于棋子初始位置的方法相比,本发明不仅能够实现这类功能,还能够对象棋残局进行监控,其自由度更大。

(4)与其他类型的多角度文字识别方法相比,本发明设计的算法,在不改传统象棋样式的基础上实现,不影响象棋的视觉效果,能够减小算法的数据量,识别速度更快。

附图说明

图1是本发明的系统结构图;

图2是本发明象棋棋子图像识别过程图;

图3是本发明象棋棋子名字的识别过程图;

图4是本发明多层饱和度分量计算方法示意图;

图5是本发明的棋盘识别流程图;

图6是本发明棋局状态的识别流程图。

具体实施方式

下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例

如图1所示,一种基于图像处理的中国象棋识别系统,包括象棋棋盘6及棋子,摄像头1、图像背景板2、显示装置4及图像处理装置5,

所述摄像头支架3的一端固定在所述图像背景板上,另一端用于固定摄像头。所述中国象棋棋盘放置于所述图像背景板上,所述摄像头设置于所述图像背景板的侧上方,用于采集位于所述图像背景板上的所述中国象棋棋盘的图像。

适当调整所述摄像头的高度以及拍摄角度,以便于可以整体采集所述图像背景板上的中国象棋棋盘的图像为准。

所述棋子的样式为文字加外环的形式,文字颜色为红黑两色。

一种上述中国象棋识别系统的识别方法,包括如下步骤:

S1摄像头采集棋盘图像,传输到图像处理装置,然后对图像依次进行灰度化和二值化处理;

S2识别象棋棋子,如图2所示,具体为:

通过边缘检测函数查找到满足约束条件的边缘,由于象棋边缘为环状结构,因此约束条件可以根据圆形度进行约束,同时根据边缘序列的周长来进一步确定棋子轮廓,圆形度公式如下:

其中为l边缘序列的长度,为S边缘序列围成的面积。

根据圆形度确定边缘序列,将目标边缘转换为最小外接矩形,并且将矩形内的图像数据截取后,缩放到固定像素得到象棋棋子的图像。

如图3所示,根据图像的颜色区别双方棋子,计算棋子图像的多层饱和度,将每次的饱和度数据按从外向内或者从内向外的顺序排列,形成棋子图像的特征向量;

然后与样本空间进行对比,求取特征向量对于所有样本向量的欧氏距离;

最后根据最小欧氏距离原则对图像进行识别,得到具体象棋的名字,如果特征向量和“将”的样本匹配度最高,则判断棋子是“将”。

如图4所示,所述计算棋子图像的多层饱和度,具体如下:

分层饱和度等于固定宽度的矩形环中颜色像素点的数量与矩形环的面积之比,其中,最内层为第1层。

Pi=sum(p1)/Si,(p1∈Li)

式中Pi为第i层饱和度分量,p1为第i层中带有目标颜色的像素点。sum(p1)为第i层中带有目标颜色的像素点总数,Si为第i层像素点总数,计算公式如下。

Si=(2*i*width)2-(2*(i-1)*width)2

=4(2i-1)width2

其中width为矩形环宽度。

S3如图5所示,定位棋盘,通过棋盘网格定位棋盘位置,通过识别棋子“帅”和“将”的位置,确定棋盘的角度;

首先通过对棋盘的边缘检测,棋盘的棋格特征为一个矩形,可以通过边缘序列的矩形判断和周长特征来识别棋盘的棋格特征,棋格特征包括:棋格的边长和棋格的角度,边长可以用来确定棋盘的步长,角度可以对图像进行旋转变换来校正图像,从而方便确定象棋的位置。通过上一步骤检测出棋子“帅”和“将”的位置,根据两个棋子的位置和棋格角度可以确定棋盘的角度。

S4确定象棋棋子的初始状态,形成象棋棋子的初始状态表,所述状态表包括棋子名、棋子颜色、当前位置及是否可用;

如图6所示,S5根据前后两帧图像的棋子状态判断棋局是否进行操作,将象棋棋子的操作过程用链表的数据结构形式保存,链表的元素包括:棋子名,棋子颜色,初始位置,结束位置,同时修改对应棋子的状态。

通过显示装置实时显示棋盘的状态。

本发明的实现采用OPENCV图像处理API函数库和VS2012集成开发环境。OPENCV是一个开源的图像处理函数库,由C和C++语言开发,包括图像处理库和机器视觉算法库两部分组成,能够跨平台使用,OPENCV提供的函数能够方便程序员调用函数库实现图像算法,并为图像算法的实现提供多种接口,图像处理接口和矩阵类运算接口,同时还涵盖了许多高级数学函数例如傅里叶变换、积分运算、差分运算等。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

matlab识别中国象棋棋盘,一种基于图像处理的中国象棋识别系统及方法与流程相关推荐

  1. matlab血糖预测,一种基于VMD-PACF-BP模型的动态血糖在线预测方法与流程

    本发明属于血糖预测技术领域,尤其涉及一种基于VMD-PACF-BP模型的动态血糖在线预测方法. 背景技术: 目前,中国患有糖尿病人数已成为在世界上拥有糖尿病患者最多的国家.为了降低糖尿病患者长期处于高 ...

  2. matlab模式识别提取特征向量,一种基于小波特征向量提取的手机检测方法与流程...

    本发明涉及到手机检测领域,尤其涉及到一种基于小波特征向量提取的手机检测方法. 背景技术: 随着保密要求的不断提高,很多场合严禁携带手机.录音笔.录像机等电子产品,亟需一种设备可以检测出该类电子产品.目 ...

  3. matlab 野值剔除,一种基于多项式拟和的野值剔除方法与流程

    本发明涉及一种基于多项式拟和的野值剔除方法,适用于通信. 导航等测控系统领域. 背景技术: 在通信.导航等测量数据中往往包含了大量的严重偏离被测量真 值的数据点,这些异常数据就称为野值.尽管野值数量较 ...

  4. 湍流退化图像复原如何使用matlab,一种基于相关最大性的湍流退化图像复原方法与流程...

    本发明涉及退化图像复原方法,特别涉及一种大气湍流图像复原问题,属于多帧湍流图像复原领域. 背景技术: 在中远距离成像系统中,由于风速.温度等影响造成的大气湍流现象,使得传播介质折射率不规则变化,导致光 ...

  5. 皮肤范围检测matlab思路,一种基于S21相位的无创血糖浓度检测方法与流程

    本发明属于微波无创血糖检测技术领域,涉及血糖浓度的检测评估. 背景技术: 社会经济不断发展,随之而来的快速的生活节奏.不健康的饮食习惯.久坐缺乏适当运动的生活方式等都增加了糖尿病的发病率.糖尿病作为一 ...

  6. matlab计算潮差程序,一种基于FVCOM模型的可视化潮汐潮流预报方法与流程

    本发明涉及潮汐预报技术领域,特别是涉及一种基于FVCOM模型的可视化潮汐潮流预报方法. 背景技术: 潮汐预报对一定海区在未来一定时间内的潮汐涨落情况进行的推算和预报.预报内容包括逐日的高潮和低潮高度及 ...

  7. matlab 零速检测,一种基于车辆零速检测的惯性导航误差修正方法与流程

    本发明涉及车载导航与定位领域,尤其是涉及一种基于车辆零速检测的惯性导航误差修正方法. 背景技术: 惯性导航系统(inertialnavigationsystem,ins)能根据惯性传感器(陀螺仪.加速 ...

  8. matlab plv,一种基于微状态的脑功能网络构建方法与流程

    本发明涉及脑功能网络研究技术领域,更具体而言,涉及一种基于微状态的脑功能网络构建方法. 背景技术: 复杂网络作为近年来一种新兴的数据分析方法,被应用于各个方面.由于大脑是一个十分复杂的系统,不同神经元 ...

  9. 极坐标梯度公式_一种基于极坐标系梯度变化的类圆环边缘检测方法与流程

    本发明涉及图形处理技术领域,具体地说是一种基于极坐标系梯度变化的类圆环边缘检测方法. 背景技术: 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点.图像属性中 ...

最新文章

  1. 遍历map几种方式及应用
  2. CentOS开机启动脚本的顺序
  3. 兼容浏览器将NodeList对象转换为数组
  4. Swaks-smtp瑞士军刀(smtp邮件)
  5. Windows高级编程学习笔记(三)
  6. 基于modelsim的十个Verilog入门试验程序(2)(JK触发器+环形计数器)—程序+测试代码+波形+结果分析
  7. 蓝桥杯 ALGO-101 算法训练 图形显示
  8. DataReader,DataTable利用泛型填充实体类
  9. python绘图代码大全_python绘图代码总结
  10. RINEX 3.04
  11. Maven 教程:IDEA开发环境中maven 项目配置JDK9,JDK10,JDK11,JDK12..等EA版本的配置方法 系列教程二
  12. 微信小程序实验一 ——— 简单计算器与秒表
  13. 机器学习与分布式机器学习_机器学习-什么是机器学习?
  14. 海康硬盘录像机管理员密码初始化方法
  15. 买木头 (二分)题解
  16. ubuntu mysql mysqldb_告诉你在Ubuntu上安装MySQLdb的方法及命令
  17. 台式计算机无线网经常掉线,电脑无线网老是掉线怎么办?教你解决掉线问题
  18. 联想340c笔记本cpu能升级吗_笔记本电脑可以升级CPU吗
  19. 编译原理及其实践教程(第二版)总结
  20. 科力锐助力政务云统一灾备中心建设

热门文章

  1. 笑出腹肌,程序员从不撒谎,但注释却会
  2. 慢啃《编程珠玑》【持续更新ing……】
  3. WEB API新增整理(三)
  4. C语言int类型和float浮点型数据在内存中的存储方式
  5. 华为HCIE安全之常用的局域网攻击
  6. 【软件】DVDStyler报错找不到VOB文件
  7. 移动开发搭建本地商城接口
  8. java 线程池超时_线程池中如何控制超时时间?
  9. Final Cut Pro V10.6.5 MAC 专属视频后期工具
  10. 最好用的房屋租赁软件(租赁行业)