python识别_Python手势识别与控制

本文介绍了使用Python和OpenCV库实现手势识别与控制的方法,包括图像处理、摄像头数据采集、背景减除、人体皮肤检测、凹点检测和余弦定理计算手势。通过创建BackgroundSubtractorMOG2对象进行背景消除,检测图像中的凸点,根据凹点计算手势(如拳头、剪刀、三、四、布),并结合PyAutogui库进行手势控制,例如网页滚动。
摘要由CSDN通过智能技术生成

Python手势识别与控制

概述

本文中的手势识别与控制功能主要采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库, 可以运行在Linux, Windows, Android和Mac-OS操作系统上. 它轻量级而且高效---由一系列 C 函数和少量 C++ 类构成, 同时提供了Python, Ruby, MATLAB等语言的接口, 实现了图像处理和计算机视觉方面的很多通用算法.

本文主要使用了OpenCV的视频采集, 图像色域转换, 颜色通道分割, 高斯滤波, OSTU自动阈值, 凸点检测, 边缘检测, 余弦定理计算手势等功能.

准备工作

安装 Python-OpenCV 库

pip install opencv-python -i https://mirrors.ustc.edu.cn/pypi/web/simple

利用 -i 为pip指令镜像源, 这里使用电子科技大学的源, 速度比官方源更快.

安装 Numpy 科学计算库

pip install numpy -i https://mirrors.ustc.edu.cn/pypi/web/simple

安装 PyAutogui 库

pip install pyautogui -i https://mirrors.ustc.edu.cn/pypi/web/simple

图像的基本操作

import numpy as np

import cv2

imname = "6358772.jpg"

# 读入图像

'''

使用函数 cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,或者给函数提供完整路径.

警告:就算图像的路径是错的,OpenCV 也不会提醒你的,但是当你使用命令print(img)时得到的结果是None。

'''

img = cv2.imread(imname, cv2.IMREAD_COLOR)

'''

imread函数的第一个参数是要打开的图像的名称(带路径)

第二个参数是告诉函数应该如何读取这幅图片. 其中

cv2.IMREAD_COLOR 表示读入一副彩色图像, alpha 通道被忽略, 默认值

cv2.IMREAD_ANYCOLOR 表示读入一副彩色图像

cv2.IMREAD_GRAYSCALE 表示读入一副灰度图像

cv2.IMREAD_UNCHANGED 表示读入一幅图像,并且包括图像的 alpha 通道

'''

# 显示图像

'''

使用函数 cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,

其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字.

'''

cv2.imshow("image", img) # "image" 参数为图像显示窗口的标题, img是待显示的图像数据

cv2.waitKey(0) #等待键盘输入,参数表示等待时间,单位毫秒.0表示无限期等待

cv2.destroyAllWindows() # 销毁所有cv创建的窗口

# 也可以销毁指定窗口:

#cv2.destroyWindow("image") # 删除窗口标题为"image"的窗口

# 保存图像

'''

使用函数 cv2.imwrite() 来保存一个图像。首先需要一个文件名,之后才是你要保存的图像。

保存的图片的格式由后缀名决定.

'''

#cv2.imwrite(imname + "01.png", img)

cv2.imwrite(imname + 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值