点击上方“码农的后花园”,选择“星标” 公众号
精选文章,第一时间送达
最近号主由于某些原因,并没有定期更新,但是一直记着你们呢,你们只要记住号主与你们同在就好啦~ 好久不见,甚是想念~
号主想要开一个关于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,从而达到手指计数。
最终检测结果:
好啦,这期就到这里了,手掌检测和计数原代码, 后台回复关键字:项目实战,即可获取下载使用,下期见啦~
更多优质内容?等你点在看