前言
上个学期申请了一个计算机视觉方向的大创项目,所以趁这个寒假学习一些基本知识。作为入门的实践项目我选择了用OpenCV(Python)来实现简单的手势识别。
准备工作
需要用到的库有:cv2,numpy,copy,math
以及一台有摄像头的电脑
步骤
1.定义摄像头,捕捉图像
a
.设置摄像头的参数(尺寸,位置)
b
.从摄像头得到图片
c
.对图像进行双边滤波(目的是使图片平滑一些),并进行翻转(目的是成为镜像)
d
.截取下一个矩形区域,那个区域就是手势识别的区域(目的是避免去识别一些无关紧要的东西)
这个过程需要用到的api
cv2.VideoCapture() :得到一个相机
camera.read() 从相机中读取到图像
cv2.rectangle() 画一个矩形
cv2.imshow() 展示图片
cv2.bilateralFilter() 双边滤波
cv2.flip() 翻转
2.去除背景,获得手部的轮廓
a
.等待键盘输入,确定捕获背景
这里是手动确定背景,也可以改成等待一段时间自动获取
b
.确定好背景后,我们可以通过一个算法在新图像中将背景剔除,得到前景,在这个项目里,就是我们的手
c
.然后对前景进行处理,先是转化为灰度图,然后进行高斯滤波去噪,最后进行二值化处理(就是非黑即白的图片)
这个过程需要用到的a