用opencv识别手势
实现原理
用opencv库拍摄一帧图片,用mediapipe库识别人手和标识点,然后用opencv在视频上添加标识的信息,最后用opencv合成一个动态视频输出
代码
import cv2
import mediapipe as mp
class handDetector(): # 经典OOP
# 设置初始条件
def __init__(self, mode=False, maxHands=2, detectionCon=0.5, trackCon=0.5):
self.mode = mode
self.maxHands = maxHands # 最多同时出现几只手
self.detectionCon = detectionCon # 检测可信度
self.trackCon = trackCon # 跟踪可信度
self.mpHands = mp.solutions.hands # 用mediapipe找手
self.hands = self.mpHands.Hands(self.mode, self.maxHands,
self.detectionCon, self.trackCon)
self.mpDraw = mp.solutions.drawing_utils
# 在图片里里找到手并返回这一帧图片
def findHands(self, img, draw=True):
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 数字化视频输入
self.results = self.hands.process(imgRGB) # 处理视频找手
if self.results.multi_hand_landmarks: # 如果找到了手上的标识点