pycharm中库安装+opencv手势识别

pycharm中库安装+opencv手势识别

python开发编译环境搭建

近期需要使用PYNQ开发板做一手势识别的项目,在此做一些学习笔记,供随时翻阅及他人参考。

  1. 安装pycharm

  2. python及opencv安装可参考:链接: link.

  3. 国内常用的源及cmd命令行下如何换源 :链接: link.

  4. pycharm中如何换源及库的安装

    进入设置的该路径下,点击“+”,其中Package下即为该python3.9环境下已经安装过的库及工具包
    进入该路径

点击红色箭头所示按钮,进入下载源添加及删除界面:
在这里插入图片描述
图中所示下载源均可自行添加,建议将常用的全部添加上,以保证需要的包均可搜索到
在这里插入图片描述
添加好下载源后,即可在以下界面搜索需要的库及工具包,如果添Install失败,可尝试其余的源:
在这里插入图片描述

若还是报类似以下的错误,可尝试以下解决办法
在这里插入图片描述
按照图中所示步骤,重新添加Sytem Interpreter,选择python路径为系统python安装路径下的.exe文件,本机安装的python版本为python3.9.7。采用该处理方法的原因是可能python解释器类型设置为了Virtualenv Environment,而不是Sytem Interpreter,亲测有效!
在这里插入图片描述

百度API申请流程

可参考链接: link.
说明 使用该功能需要在百度智能云上实名注册,可领取免费调用资源,包括手势识别,驾驶行为分析,人体关键点识别等功能,但是调用量受限制,一般一种功能为5k或1w次,就是说调用其函数一次计数一次(while中会调用多次
支持的24类手势列表:拳头、OK、祈祷、作揖、作别、单手比心、点赞、Diss、我爱你、掌心向上、双手比心(3种)、数字(9种)、Rock、竖中指。
程序如下

import os
import cv2
from aip import AipBodyAnalysis
from aip import AipSpeech
from threading import Thread
import time
from playsound import playsound
import matplotlib.pyplot as plt
""" 你的 APPID AK SK """
APP_ID = '25799898'  
API_KEY = 'Iy5lTo13t1IctxTkXzS8c2Hl'
SECRET_KEY = '1rOq6rWioKnuqIorHKwdGI7aicG639Gq'
''' 调用'''

hand = {'One': '数字1', 'Five': '数字5', 'Fist': '拳头', 'Ok': 'OK',
        'Prayer': '祈祷', 'Congratulation': '作揖', 'Honour': '作别',
        'Heart_single': '比心心', 'Thumb_up': '点赞', 'Thumb_down': 'Diss',
        'ILY': '我爱你', 'Palm_up': '掌心向上', 'Heart_1': '双手比心1',
        'Heart_2': '双手比心2', 'Heart_3': '双手比心3', 'Two': '数字2',
        'Three': '数字3', 'Four': '数字4', 'Six': '数字6', 'Seven': '数字7',
        'Eight': '数字8', 'Nine': '数字9', 'Rock': 'Rock', 'Insult': '竖中指', 'Face': '脸'}
        
# 手势识别
gesture_client = AipBodyAnalysis(APP_ID, API_KEY, SECRET_KEY)

capture = cv2.VideoCapture(0)  # 0为默认摄像头


def camera():
    while True:
        # 获得图片
        ret, frame = capture.read()
        # cv2.imshow(窗口名称, 窗口显示的图像)
        # 显示图片
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) == ord('q'):
            break


Thread(target=camera).start()  # 引入线程防止在识别的时候卡死


def gesture_recognition():
    # 第一个参数ret 为True 或者False,代表有没有读取到图片

    # 第二个参数frame表示截取到一帧的图片

    while True:
        try:
            ret, frame = capture.read()

            # 图片格式转换
            image = cv2.imencode('.jpg', frame)[1]
            gesture = gesture_client.gesture(image)  # AipBodyAnalysis内部函数
            words = gesture['result'][0]['classname']

            # voice(hand[words])
            print(hand[words])

        except:
            if cv2.waitKey(1) == ord('q'):
                break

gesture_recognition()

注意:需要在程序里修改APPID AK SK,设置为你从百度申请到的API的具体参数(记得申请免费调用资源,否则会出现调用失败的情况

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值