【学科实践实验六】围棋棋盘棋子实时识别与定位的思路、可能出现的问题以及解决方案

算法设计与分析之棋盘算法  开始算法学习的第一节,不断更新中...include//用一个二位整形数组Board表示棋盘。Board【0】【0】是棋盘的左上角方格。tile是算法中的一个全局整形变量,用来标识L型骨牌的编号,处置为零。//tr:左上方格行号;//tc:左上方格列号;//dr:特殊方格行号//dc:特殊方格列号;//时间复杂度:T(k)={k=0 O(1);k>0 4T(k-1)+O(1);}程序 阅读详情

实验要求

  • 学习掌握利用opencv实现基础的图像采集及处理
  • 围棋棋盘棋子实时识别与定位
  • 主要任务:定位棋子位置及识别棋子颜色
  • 给出某行列是何颜色棋子
    • 扩展:当出现五子联排时,给出提示信息

关于OpenCV的安装

有朋友跟我说ta的OpenCV安装总是不成功。可能会出现的原因如下:

  1. numpy版本落后
    更新numpy版本后再尝试安装
pip install numpy --upgrade   
  1. 下载OpenCV时用的官方源
    使用官方源会导致下载及其缓慢,可能是几kb/s
    解决方法:更换成镜像源,此处以阿里源为例
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

在命令行中执行完这一条指令后再重新执行pip intsall opencv-python安装

关于opencv读写中文路径报错

如果使用opencv的库函数读取图片,中文路径会导致无法正确读取,以下为解决方案

读

其中File_path为图片所在文件夹路径,imgeName为文件名(eg. chessboard.png)

def cv_imread(
中国象棋局面识别 -1.象棋棋盘的识别 因为是学习测试阶段.为了让opencv的霍夫变换识别 过程更直观一些.我们让它把识别到的线直接在图上画出来.(这也是我之前看别人代码和配图困惑的地方,配的图能直接在被识别的图上画线,而代码却没有体现如何画的),如何画呢?中国象棋棋盘有横的线和竖的线(也还有斜的线--士走的那个叉线).由横线和竖线连起来看,它可以理解为一个表格.所以这节也可以说是中国象棋棋盘表格的识别.总体思路就是通过霍夫变换(HoughLines)从棋盘抓图中获取线段出来.过滤掉斜线.和一些挨得过近识别到的重叠的线.。直接边沿检测也OK。 阅读详情

相关推荐

用OpenCV编程计算围棋棋盘黑白子总数

今天柯洁开始对战AlphaGo,虽然对围棋一窍不通,但这种大事我也在关注,知道胜负与最后棋盘上黑白子的数量有关。当我看到结局的棋盘时,黑白棋子那么多,一时也看不出来谁多谁少,就想着编个程序来计算一下。程序很简单,就给大家分享一下,对OpenCV初学者或许有些帮助吧。     先在网上找到了一个围棋图片,图片如下 由于黑白子颜色反差非常明显,只需要将原图转化为灰度图,再用合适的阈值进

MrLee的博客 7240

OpenCV开发笔记(七十六):相机标定(一):识别棋盘并绘制角点

知道图像畸变矫映射的原理之后,那么如何得到相机的内参是矫正的第一步,内参决定了内参矩阵(中心点、焦距等),用内参矩阵才能计算出投影矩阵,从而将原本畸变的图像矫正为平面投影图像。本篇描述了相机成形的原理,并绘制出识别的角点。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 1万+

计算机博弈竞赛核心:棋类参数、博弈树剪枝与评估函数

完全信息动态博弈是计算机博弈的经典问题,其核心在于对局面的形式化表示与搜索决策。通过棋盘参数、着法生成、博弈树展开和Alpha-Beta剪枝,程序能够在有限深度内降低指数级搜索规模;评估函数则将子力、位置、机动性和特殊规则量化为可比较分数,决定叶子节点的取舍。这类方法不仅服务于象棋、国际象棋、五子棋等棋类AI,也广泛迁移到路径规划、对抗决策与规则约束处理。围绕棋类参数分类、博弈树与剪枝、棋局评估和软件模块分工的梳理,有助于建立计算机博弈竞赛的答题骨架和工程实现路径。

weixin_29048775的博客 213

计算机博弈入门:从博弈树到Alpha-Beta剪枝与MCTS

完全信息动态博弈是棋类AI的数学基础:盘面没有隐藏信息,程序可以围绕局面、合法着法、评估与搜索构建博弈树。其原理是在组合爆炸的状态空间中进行有偏采样,用极大极小/负极大值回传分数,并通过Alpha-Beta剪枝、置换表和迭代加深在有限时间内逼近更优着法;剪枝率高度依赖着法排序,评估函数则决定搜索能否收敛到可靠判断。对于评估难以量化的围棋,蒙特卡罗树搜索以胜率统计替代静态估值。技术价值在于把规则差异压缩为着法生成与终局判据,把通用搜索机制复用于中国象棋、国际象棋、五子棋等场景,并用perft校验规则引擎,最终

weixin_29531177的博客 346

深度排查:网讯网卡WX1860AL4千兆网口降速百兆的硬件陷阱

本文详细剖析了网讯网卡WX1860AL4千兆网口降速至百兆的硬件故障排查过程。通过分析千兆以太网硬件原理,提供从网线、供电到PCB走线、焊接残留的标准化检修流程,并分享两种典型硬件陷阱(线序错误与焊锡短路)的实战修复案例,为硬件工程师解决类似传输速率问题提供系统性的诊断思路与方法。

a3b4c5的博客 1110

西门子S7-1200控制伺服/步进电机方法与接线(全)

西门子S7-1200控制伺服/步进电机方法与接线(全) 伺服/步进电机在非标自动化控制中十分常用,但作者发现在各类开源网站上很少有人做西门子1200PLC控制伺服/步进电机的教程,于是今天想着跟大家分享一下。 本文共分为一下几个四个内容。 文章目录西门子S7-1200控制伺服/步进电机方法与接线(全)前言一、准备二、接线1.PLC接线:2.伺服接线:3. 步进电机的接线:三、代码组态代码四、可能出现的问题 前言 工程控制常用到三项异步电机、直流电机等,但他们都无法准确的控制电机角度;于是有了步进电机、

weixin_46060068的博客 7万+

《探秘 BME680温度湿度气压气体传感器模块:环境感知的卓越之选》:此文为AI自动生成

BME680 是一款由博世公司推出的集成环境传感器模块,在环境监测和物联网等领域中发挥着重要作用。它能够同时测量温度、湿度、气压和气体浓度等多个环境参数,为各种应用提供准确可靠的环境数据。该模块采用小巧的封装形式,便于集成到各种设备中,无论是智能家居、可穿戴设备还是工业监测系统,都能轻松适配。例如,在智能家居系统中,BME680 模块可以监测室内环境参数,如温度、湿度、气压和空气质量等。通过与智能家居控制器或智能手机应用程序的连接,用户可以实时了解室内环境状况,并根据需要进行调整。

zheng_ruiguo的专栏 1865

Pytorch中CrossEntropyLoss()详解

交叉熵主要是用来判定实际的输出与期望的输出的接近程度。举个例子:在做分类训练的时候,如果一个样本属于第 K 类,那么这个类别所对应的输出节点的输出值应该为1,而其他节点的输出都为0,即 [0,0,1,0,….0,0] ,这个数组也就是样本的 Label,是神经网络最期望的输出结果。我们用交叉熵损失函数来衡量网络的实际输出与正确标签的差异,利用这种差异经过反向传播去更新网络参数。交叉熵:它主要刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分布就越接近。

flyingluohaipeng的博客 3861

c语言实现语音检测vad_壹鸽技术科普·智能语音客服系统中的前端语音处理技术...

随着智能客服机器人产业的迅速发展,尤其是伴随着人工智能AI的风潮,预计在2020年我国智能客服市场将达到万亿级别。在智能客服机器人领域中对电话信道语音进行端点检测处理的应用正在不断扩展和深化。目前语音端点检测(Voice Active Detection,简称VAD)的主要任务是准确快速判决出待处理的语音信号有话还是无话,作为自动语音识别(Automatic Speech Recognition,...

weixin_36431018的博客 507

华为OD机试双机位C卷-虚拟文件系统(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【虚拟文件系统】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【虚拟文件系统】。

qq_45776114的博客 476

万字详解YOLOv8网络结构Backbone/neck/head以及Conv、Bottleneck、C2f、SPPF、Detect等模块

YOLOv8是由Ultralytics开发的最先进的目标检测模型,推升了速度、准确性和用户友好性的界限。YOLO这一缩写代表“你只看一次”(You Only Look Once),通过在一次网络传递中同时预测所有边界框,提升了算法的效率和实时处理能力。相比之下,其他一些目标检测技术需要经过多个阶段或过程来完成检测。YOLOv8在流行的YOLOv5架构上进行了扩展,在多个方面提供了改进。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 14万+

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11‘ not found (required by node) 解决方案

本文主要介绍了node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11’ not found (required by node) ,希望能对使用nodejs的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: SQL格式化软件 Sql Pretty Printer4.0.1安装
下一篇: Flask项目在Pycharm中设置局域网访问
快苏排序OAO
博客等级 码龄5年 273粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快苏排序OAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值