基于opencv2的斗地主记牌器(python)

news/2024/11/17 4:35:10/

一、开发该系统软件环境及使用的技术说明

  • 开发环境:JetBrains PyCharm Community Edition 2019.2.5 x64
  • 远端仓库:GitHub
  • 语言版本:python3.7.0(Anaconda3)
  • 技术说明:
    • OpenCV 4.2.0.32
    • NumPy 1.16.5
    • PyQt5 5.15.0
    • PyWinMouse 1.0 (pyqt5的官方小demo)
    • win32api、win32con、win32gui、win32ui
    • 腾讯云文字识别接口
    • Python标准库

二、开发缘由

这个是数字图像处理的课程设计,用了三个星期,总算是把我的斗地主记牌器做出来了,灵感是来自于CSDN上的一篇文章:但他就写了个想法,我觉得挺有意思的,又恰好要做课程设计而且也涉及到了学习的内容,就着手做了起来。

在网上找了一圈,并没有发现完整的这种类型的斗地主记牌器,只好自己来。左手看别人博客,右手看看库函数,一点一点实现。虽然过程中也遇到了不少问题,但还是一一解决了。这次的课程设计让我学到了不少东西,从框架(虽然还是很乱,但毕竟第一次搞这种比较大的py代码,甚至可以说没有框架)、界面到各个小问题的认识和实现都有了一定的提高。我决定啦,专业方向选择人工智能一块,决心考研,读书深造,好好努力!

三、一些仍然存在的问题

测试发现:

  • 对于单牌、对子、顺子、连对、炸弹、3带1、3带2、4带2、飞机都有着较高的准确度
  • 对于飞机带两个对子的那种换行的牌型是无法进行识别的。会漏掉第二行的纸牌。
  • 若腾讯Ai无法识别出内容,会导致闪退
  • 网络问题导致解码失败,闪退
  • 在连对、顺子等特效播放的时间进行截图会导致识别结果错误甚至闪退
  • 大王小王无法区分
  • 对家出牌的王无法识别
  • 一些不为所知的错误导致的闪退

四、软件主体

软件主体为4个py文件

  • imageCapture图像截取(截取斗地主界面)
  • ImagePartition图像分割(截取纸牌部分)
  • Tencent(文字识别)
  • Mian2(pyqt5制作的用户交互界面)

五、原理(以手牌识别为例)

原始图像,从系统的截图api获取
原图
切片操作获取大致区域
在这里插入图片描述
通过参数获取图片在这里插入图片描述

转码,将RGB格式转为HSV格式用于掩码处理在这里插入图片描述

通过白色掩码提取白色区域
在这里插入图片描述
转回RGB模式后转为灰度图

使用闭运算消除内容物,寻找轮廓在这里插入图片描述

使用开运算消除外容物,降噪
在这里插入图片描述
使用cv2.findContours函数提出轮廓

根据上面得到的轮廓的上下左右的最大值构建矩形,在灰度图中使用切片操作直接获取结果
在这里插入图片描述
根据纸牌的比例进行切割
在这里插入图片描述
将结果返回到获取具体手牌函数(下面这个图不是上面的结果)
当然

六、源码

https://github.com/xiaooo-jian/Digital-image-processing-Final-Work

劳烦点个星星啦

参考博客

  • 安卓基于图像识别和CNN做出一个通用的斗地主记牌器(一)

  • C++ 纯 OpenCV 实现扑克牌实时识别

    springboot + maven实现的车牌识别及训练系统

    使用OpenCV的findContours获取轮廓并切割(python)

    Python实现屏幕截图的两种方式

    【python】【文字识别】利用腾讯云调用通用图片文字识别接口,识别图片中的文字

    Python中opencv所使用的图片格式与 base64转换


http://www.ppmy.cn/news/583558.html

相关文章

安卓基于图像识别和CNN做出一个通用的斗地主记牌器(一)

先放一个效果图,如下: 设计的主体思路: 1.图像的快速截取 2.图像的预处理 3.识别模型的设计和训练 4.图像匹配 5.业务逻辑的实现 其中,图像处理主要是基于安卓版opencv。识别模型是基于cnn神经网络。 难点 1.粘连图像的分…

因果推断阶段系列23[阶段2-5]----元学习器 meta-learners

因果推断阶段系列23[阶段2-5]----元学习器meta-learners 1. S-Learner(又名稳定学习器)2. T-Learner(T学习器)3. X-Learner(X学习器)小结参考文献简要回顾一下,前几节介绍了处理效应异质性,即确定不同个体对处理的反应方式。在这个框架中,估计对象是: τ ( x ) = E […

2023年第一届山东省职业技能大赛“网络安全”赛项B模块任务书

2023年第一届山东省职业技能大赛“网络安全”赛项B模块任务书 模块B-网络安全事件响应、数字取证调查和应用程序安全1竞赛项目简介:1.1 介绍:1.2 所需的设备、机械、装置和材料:1.3 评分方案:1.4 项目和任务的描述:2工作任务:2.1.1 数据包分析:2.1.2 Web 安全测试渗透测…

Intel官网资料下载链接

总链接: https://www.intel.com/content/www/us/en/programmable/documentation/lit-index.html eg: Pinout(TXT/EXCEL/PDF): https://www.intel.com/content/www/us/en/programmable/support/literature/lit-dp.html?1

intel官方的手册

最近在学习汇编语言,需要用到intel的手册,无论是csdn还是其他的,都要下载币,还不便宜,也很老的资料了。 直接到这个地址:https://software.intel.com/en-us/articles/intel-sdm下载吧,我下载的十…

inter-因特尔-官网

1:查询服务器CPU参数 2:去官网查询CPU指标 英特尔 | 数据中心解决方案、物联网和电脑创新

Intel SGX官网

SGX官网 SGX官网 常用链接 常用下载链接 SGX手册 《Intel_SGX_Developer_Guide》 《Intel_SGX_Developer_Reference_Linux_2.10_Open_Source》 《Intel Software Guard Extensions Programming Reference》