# 2023-China-National-University-Students-Opt-Sci-Tech-Competition-machine-vision-part
2023光电赛小车题树莓派+无畸变摄像头(备用小畸变摄像头)视觉方案
## 藏宝图识别
1.在摄像头帧缓冲区读取一张图片A。
2.使用灰度转换、高斯滤波、自适应阈值分割方法,得到二值图B。
3.识别定位点
①对于二值图B的所有轮廓,保留所有面积在[20,6000]像素范围内,轮廓角点等于4、外接矩形宽高比在0.8和1.2之间、与另一个轮廓有质心互相包含关系,且质心足够接近的封闭轮廓。对于质心互相包含关系的轮廓,保留面积较大的轮廓,这些轮廓即是可能的定位点框。
②如果①中轮廓的数目不等于4,返回步骤1。
4.透视变换
要透视变换,必须构建仿射矩阵;要构建仿射矩阵,需确保原图像点和目标图像点一一对应。设3中得到轮廓的中心点,为原图像待转换的点。根据横纵坐标的相对关系,对轮廓中心点进行左上-右上-左下-右下排序,与目标图像的四个同顺序点对应起来,得到仿射矩阵,进而对图像A做透视变换,得到图像C。
5.宝藏识别
对于图像C,转化为灰度图,并在定位点四角组成的区域内使用霍夫圆检测,当识别圆数量不为8时,返回步骤1。当识别圆数量为8时,对圆心在图像C的坐标进行放缩、平移变换,如果有一个变换后的圆心坐标范围不属于0<=x,y<=9,那么返回步骤1。
5.跳出循环,进入路径规划部分。
## 骨牌识别
### 第一版
1.建立骨牌上四种颜色(红、蓝、黄、绿)的LAB阈值范围。
2.当小车到达藏宝点,跳过5帧。
3.读入摄像机一帧照片,依次识别是否为蓝真、蓝假、红真、红假骨牌。如果识别成功,分别返回1、2、3、4,根据不同情况判断小车是否需要冲撞,并进入路径规划部分。如果识别不成功,重复执行步骤3。
#### 判断骨牌的方法
对于一个骨牌,我们假设它是某类型骨牌(如红真),即假设其上有特定的两种颜色A、B。在有此骨牌的帧缓冲区图像I中,在图像I上寻找颜色A面积大于50像素、且宽高比在[0.3,3]范围上的色块。如果没有找到色块,那么对于骨牌的假设错误。如果骨牌上有颜色A,那么对于颜色B,经过同样的找色块并判断步骤。如果颜色A和B都找到了,如果两色块中心距离在200之内,则可以断定它是具有颜色A和B的、我们假设的骨牌。
### 第二版
1.建立骨牌上两种颜色(红、绿)的LAB阈值范围。
2.当小车到达藏宝点,跳过5帧。
3.读入摄像机一帧照片,判断图中是否有红色、绿色色块(色块判断逻辑见“第一版”判断骨牌方法),通过判断的结果确定骨牌类型,同样分别返回1、2、3、4。
## 备注
在骨牌识别第一版代码中,对于小畸变摄像头,才需要两个最大轮廓的中心距离在“200”之内。无畸变摄像头的值可兼容,或为保险起见选取25~50。
## 文件功能说明
dominoes_operaition.py 为骨牌处理函数,包含找最大色块、判断宝藏,以及画图(已注释掉,如果要画图还需要需要调换找最大色块函数的返回值等操作,具体详见代码注释)函数
test_jewelv1.py和test_jewelv1.py里的jewel函数分别对应骨牌识别第一版和第二版逻辑,调用dominoes_operaition.py
map_operation_v7.py 为藏宝图识别函数
threshold_chooser_v2.py 为阈值选择器
没有合适的资源?快使用搜索试试~ 我知道了~
2023光电赛小车题树莓派+无畸变摄像头(备用小畸变摄像头)视觉方案.zip
共7个文件
py:5个
md:1个
license:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 54 浏览量
2023-08-23
17:16:41
上传
评论
收藏 11KB ZIP 举报
温馨提示
全国大学生电子设计竞赛(National Undergraduate Electronics Design Contest),试题,解决方案及源码。计划或参加电赛的同学可以用来学习提升和参考。程序均是实战案例,经过测试可直接运行。 全国大学生电子设计竞赛(National Undergraduate Electronics Design Contest),试题,解决方案及源码。计划或参加电赛的同学可以用来学习提升和参考。程序均是实战案例,经过测试可直接运行。
资源推荐
资源详情
资源评论
收起资源包目录
2023光电赛小车题树莓派+无畸变摄像头(备用小畸变摄像头)视觉方案.zip (7个子文件)
res
dominoes_operation.py 4KB
threshold_chooser_v2.py 4KB
map_operation_v7.py 11KB
LICENSE 1KB
test_jewelv2.py 1KB
test_jewelv1.py 931B
README.md 4KB
共 7 条
- 1
资源评论
白话机器学习
- 粉丝: 1w+
- 资源: 7671
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 在不同操作系统下编译Android源码需要更改一些Android源码的配置项,脚本用于自动化更改配置项.zip
- 基于vue3的春节烟花许愿代码.zip学习资料
- YoloV8.2.10的YOLOV8的Segmentation权重文件
- YoloV8.2.10的YOLOV8的Pose权重文件
- 2002 年 Python 周模板 - 4 月 25 日至 29 日 LINUXTips.zip
- 烟花爆炸效果学习代码.zip学习资料开发
- 微信抢红包助手.zip学习资料参考资料程序
- YoloV8.2.10的YOLOV8的Classification权重文件
- 探索Python科学计算:SciPy库的深入指南
- 深入解析栈溢出:原因、影响与解决方案
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功