利用python+opencv实现手势识别(含源码,亲测)

本文介绍了一个基于摄像头输入的手势识别系统实现,通过图像处理技术,包括背景消除、图像分割、边缘检测等,来识别和追踪手部动作。系统使用Python编程,并调用了OpenCV、NumPy、Math等库进行图像处理和数学运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先提前安装相应模块
如:

pip install pyserial    //python2
pip3 install pyserial   //python3
import cv2 as cv
import numpy as np
import math
import time
import serial

capture = cv.VideoCapture(0)

# video = "http://admin:admin@10.242.200.134:8081/"  # admin是账号:admin是密码 后面是局域网
# capture = cv.VideoCapture(video)


# 获得欧几里距离
def _get_eucledian_distance(vect1, vect2):
    distant = vect1[0] - vect2[0]
    dist = np.sqrt(np.sum(np.square(distant)))
    # 或者用numpy内建方法
    # vect1 = list(vect1)
    # vect2 = list(vect2)
    # dist = np.linalg.norm(vect1 - vect2)
    return dist


def gesture_recognition():

    while True:
        ret, frame = capture.read()  # 读取摄像头
        # frame = cv.flip(frame, 1)
        fgbg = cv.createBackgroundSubtractorMOG2()  # 利用BackgroundSubtractorMOG2算法消除背景
        # fgmask = bgModel.apply(frame)
        fgmask = fgbg.apply(frame)
        # kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
        # res = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
        kernel = np.ones((5, 5), np.uint8)
        fgmask = cv.erode(fgmask, kernel, iterations=1)  # 膨胀
        res = cv.bitwise_and(frame, frame, mask=fgmask)
        ycrcb = cv.cvtColor(res, cv.COLOR_BGR2YCrCb)  # 分解为YUV图像,得到CR分量
        (_, cr, _) = cv.split(ycrcb)
        cr1 = cv.GaussianBlur(cr, (5, 5<
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值