教你用OpenCV和Python实现手掌检测和手掌计数

点击上方码农的后花园”,选择星标” 公众号

  精选文章,第一时间送达

最近号主由于某些原因,并没有定期更新,但是一直记着你们呢,你们只要记住号主与你们同在就好啦~  好久不见,甚是想念~  

号主想要开一个关于OpenCV系列教程,后期定期更新,如果觉得可以的话,请点赞支持一下哦!话不多说,开始今天的干货篇。

  • Python3

  • numpy函数库

  • OpenCV-Python

  • Windows10 + Anaconda+Pycharm

OpenCV-Python的下载安装

第一步:配置永久镜像源

用户文件夹下新建一个pip文件夹,记事本新建一个pip.txt文件,配置阿里云镜像,保存后修改pip.txt后缀名为pip.ini.

第二步:下载安装

在Pycharm中,打开Terminal,切换到你想要下载安装的虚拟环境中(不会的话,看我的Python系列教程),然后输入如下命令,即可快速下载安装OpenCV-Python。

1.导入OpenCV库并读取手掌图片

2.图像处理

3.手掌轮廓绘制

根据二值化后的图像,我们可以很明显的看到手掌边缘和图像的边缘,使用OpenCV中的findCountours函数能够帮助我们有效的找到目标的轮廓。

4.手掌凸包检测

这里的凸包是指由手掌轮廓点最外层由线连起来的轮廓的凸边形,这里凸点是由指尖和手腕底部两端点构成。

5.手掌凸缺陷检测

如下图所示,defects最后代表的是两个手指之间的凹陷处,对于我们刚刚检测到的凸包而言是缺陷,手掌与凸包检测轮廓线的任何偏离的地方都可以视为凸缺陷。

这里defects会包含每两根手指凹进去的点和两根手指指尖两点组成三角形数据的3个点(起点start、终点end、最远点far),还会返回到最远点的距离。

6.手指个数计数

利用我们的凸缺陷检测可以得到,如上面代码,我们得到每根手指两两组成的凹三角形的三点,就可以分别计算下图中三角形三边的a,b,c。

 

又由余弦定理:

我们就可以依次计算出两两手指之间的角度 r, 当角度 r<90度时,我们就将其当做手指,cnt +=1,从而达到手指计数。

最终检测结果:

好啦,这期就到这里了,手掌检测和计数原代码, 后台回复关键字:项目实战,即可获取下载使用,下期见啦~

更多优质内容?等你点在看

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值