手部手势识别与目标特征匹配技术解析
手部手势识别
1. 手部区域轮廓确定
当我们要进行手部手势识别时,首先需要确定分割后的手部区域的轮廓。可以使用 OpenCV 中的 cv2.findContours 函数,该函数作用于二值图像,返回一组被认为是轮廓一部分的点。由于图像中可能存在多个轮廓,还可以检索整个轮廓层次结构。以下是示例代码:
def _find_hull_defects(self, segment):
contours, hierarchy = cv2.findContours(segment,
cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
因为不确定要找的是哪个轮廓,所以需要做一些处理。即使经过形态学闭运算后可能仍有小空洞,但可以假设找到的最大轮廓就是我们要找的手部轮廓。通过遍历轮廓列表,计算轮廓面积(使用 cv2.contourArea ),并只存储最大的轮廓:
max_contour = max(contours, key=cv2.contourArea)
2. 计算轮廓区域的凸包
确定最大轮廓后,就可以计算该轮廓区域的凸包。凸包基本上是轮廓区域的包络。可以直接从最大轮廓获取凸包:
hull = cv2.convexHul
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



