# hand_StaticLib **Repository Path**: cnlycs/hand_static-lib ## Basic Information - **Project Name**: hand_StaticLib - **Description**: 手势识别手势识别手势识别手势识别手势识别手势识别 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-02-28 - **Last Updated**: 2024-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前提配置: opencv,python10,opencv-python,mediapipe,math,numpy 配置可能有些复杂,请看[使用教程](https://blog.csdn.net/qq_40939325/article/details/129260630?spm=1001.2014.3001.5501), label一共为[0,1,2,3,4,5],如果返回-1即为没有检测到手 # 接口设计: |函数声明|参数|返回值|说明| |--|--|--|--| |`PyObject* Init_Hand_Model(); `|无需参数|返回`PyObject*`|模型配置初始化(包括推理引擎),返回推理函数的指针| |cv::Mat Hand_Infer(cv::Mat img, PyObject* pInfer,int *res);|img为opencv中Mat类型,即要进行推理的图片;pInfer为上面函数的返回值,res为int类的指针,可以引用查看推理返回手势的结果|返回值为,推理后的图片关键点以及标注|无| |int hand_infer_by_camera();|无|无|使用该函数可实时进行手势识别仅仅是Demo| 注: 使用之前需要调用Py_Initialize();,结束以后需要调用Py_Finalize(); 分别是启动python解释器和释放解释器资源 # 使用demo ``` //初始化python解释器, Py_Initialize(); //初始化加载推理配置,该函数和上面的函数初始化只需要一次 PyObject* pInfer = Init_Hand_Model(); //读取要推理的图片 Mat img; img= cv::imread("your path"); cv::flip(img, img, 1); //准备推理的参数,也是返回结果 int* res = new int; //进行图片推理,返回推理后的手势关键点,该函数里面只设置了识别置信度最大1只手,如需要增加的话,可以设置参数。 Mat com = Hand_Infer(img, pInfer, res); //展示推理后的图片 cv::imshow("com", com); //展示推理结果 cout << *res; //如果确定结束该功能,使用下面函数,释放python解释器和指针即可 Py_DECREF(pInfer); Py_Finalize(); ```