基于python+opencv的网球识别

今年上报了一个大学生SRTP项目,准备用树莓派作为主控板实现一个智能捡网球机。由于opencv开发库提供了大量图像处理算法的接口,因此只要一定程度上熟悉python语法和opencv库,实现这个程序并不是特别麻烦。本文会主要写程序实现的过程,不会涉及到很多的理论性的知识,有兴趣深入了解的可以自行查找网络上的各种资料。


本项目以网球的颜色作为识别特征。

识别过程为:获取视频帧----转换到HSV颜色空间----规定阈值、切割图像----识别轮廓获得网球位置信息

获取视频帧:

在树莓派上搭载摄像头获取视频帧不用多提,连接上摄像头然后直接opencv调用即可。因为在树莓派上安装opencv可以能涉及到到需要重新编译等各种问题,想避免麻烦的同学可以尝试直接pip opencv-python。树莓派摄像头可以选择官方的CSI摄像头,我为了便于在电脑上进行分析和调试,选用了usb线传输的摄像头模块,这种模块某宝上很多,使用起来也很简单。

转换颜色空间:

在HSV颜色空间下进行颜色识别能够很好地降低调试难度,提高识别精度。就作者本人的理解,RGB空间下的三通道是互相独立互不关联的,而HSV空间下的三通道值之间具有一定的关系或者说是主次区别,更容易分级调试确定阈值和修正因环境光影响产生的阈值偏移问题,同时HSV空间更符合人的视觉习惯。

转换颜色空间可用opencv的cvtColor函数实现。

hsv_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

注意!!!经过cvtColor函数转换后的图像HSV三通道的取值范围与普遍认知下的HSV通道取值范围不同,可能是为了统一数据类型,opencv将原范围(h:0~360°, s:0~1, v:0~1)映射到了(h:0~180, s:0~255, v:0~255)的空间上。

规定阈值、切割图像:

在颜色空间转换完成后&#x

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值