资源简介
Python+CNN+Tensorflow识别手势,目前做到了0-7的手势。文件为源代码和训练集。主要是调用OpenCV,预处理的主要步骤为:去噪 -> 肤色检测 -> 二值化 -> 形态学处理 -> 轮廓提取,其中最麻烦的两项为肤色检测和轮廓提取。去噪音:使用双边滤波器,该滤波器考虑了图像的空间关系,也考虑图像的灰度关系。双边滤波同时使用了空间高斯权重和灰度相似性高斯权重,确保了边界不会被模糊掉。然后,肤色检测和二值化处理采用YCrCb颜色空间的Cr分量+Otsu法阈值分割算法针对YCrCb中Cr分量的处理,对CR通道单独进行Otsu处理,Otsu方法opencv里用threshold,Otsu算法是对图像的灰度级进行聚类。
代码片段和文件信息
import cv2
import numpy as np
import os
# 创建目录结构
if not os.path.exists(“data“):
os.makedirs(“data“)
os.makedirs(“data/train“)
os.makedirs(“data/test“)
os.makedirs(“data/train/0“)
os.makedirs(“data/train/1“)
os.makedirs(“data/train/2“)
os.makedirs(“data/train/3“)
os.makedirs(“data/train/4“)
os.makedirs(“data/train/5“)
os.makedirs(“data/train/6“)
os.makedirs(“data/train/7“)
os.makedirs(“data/test/0“)
os.makedirs(“data/test/1“)
os.makedirs(“data/test/2“)
os.makedirs(“data/test/3“)
os.makedirs(“data/test/4“)
os.makedirs(“data/test/6“)
os.makedirs(“data/test/7“)
# 训练或测试
mode = ‘train‘
directory = ‘data/‘+mode+‘/‘
cap = cv2.VideoCapture(0)
while True:
_ frame = cap.read()
# 模拟镜像
frame = cv2.flip(frame 1)
# 获取现有图像的计数
count = {‘zero‘: len(os.listdir(directory+“/0“))
‘one‘: len(os.listdir(directory+“/1“))
‘two‘: len(os.listdir(directory+“/2“))
‘three‘: len(os.listdir(directory+“/3“))
‘four‘: len(os.listdir(directory+“/4“))
‘five‘: len(os.listdir(directory+“/5“))
‘six‘: len(os.listdir(directory + “/6“))
‘seven‘: len(os.listdir(directory + “/7“))
}
# 将每一组的计数打印到屏幕上
cv2.putText(frame “MODE : “+mode (10 50) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “IMAGE COUNT“ (10 100) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “ZERO : “+str(count[‘zero‘]) (10 120) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “ONE : “+str(count[‘one‘]) (10 140) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “TWO : “+str(count[‘two‘]) (10 160) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “THREE : “+str(count[‘three‘]) (10 180) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “FOUR : “+str(count[‘four‘]) (10 200) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “FIVE : “+str(count[‘five‘]) (10 220) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “SIX : “+str(count[‘six‘]) (10 240) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
cv2.putText(frame “SEVEN: “+str(count[‘seven‘]) (10 260) cv2.FONT_HERSHEY_PLAIN 1 (0255255) 1)
# 感兴趣区域坐标
x1 = int(0.5*frame.shape[1])
y1 = 10
x2 = frame.shape[1]-10
y2 = int(0.5*frame.shape[1])
# 画ROI
# 递增/递减1是对边界框的补偿
cv2.rectangle(frame (x1-1 y1-1) (x2+1 y2+1) (25500) 1)
# 提取ROI
roi = frame[y1:y2 x1:x2]
roi = cv2.resize(roi (64 64))
cv2.imshow(“frame“ frame)
#_ mask = cv2.threshold(mask 200 255 cv2.THRESH_BINARY)
#kernel = np.ones((1 1) np.uint8)
#img = cv2.dilate(mask kernel iterations=1)
#img = cv2.erode(mask kernel iterations=1)
# 拍照后进行处理!
roi = cv2.cvtColor(roi cv2.COLOR_BGR2GRAY)
_ roi = cv2.threshold(roi 120 255 cv2.THRESH_BINA
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 174 2020-02-28 07:05 手势识别\.idea\inspectionProfiles\profiles_settings.xm
文件 199 2020-04-11 15:04 手势识别\.idea\misc.xm
文件 319 2020-02-28 07:05 手势识别\.idea\modules.xm
文件 415 2020-04-11 15:04 手势识别\.idea\number-sign-recognition-master.iml
文件 8178 2020-05-11 14:35 手势识别\.idea\workspace.xm
文件 101140 2020-05-25 16:25 手势识别\1.jpg
文件 24396 2020-04-11 14:56 手势识别\venv\Lib\tcl8.6\init.tcl
文件 124 2020-04-11 14:56 手势识别\venv\pyvenv.cfg
文件 639 2020-04-11 14:56 手势识别\venv\sc
文件 1455 2020-04-11 14:56 手势识别\venv\sc
文件 389 2020-04-11 14:56 手势识别\venv\sc
文件 196760 2020-04-11 14:56 手势识别\venv\sc
文件 42136 2020-04-11 14:56 手势识别\venv\sc
文件 57496 2020-04-11 14:56 手势识别\venv\sc
文件 3942552 2020-04-11 14:56 手势识别\venv\sc
文件 42136 2020-04-11 14:56 手势识别\venv\sc
文件 26776 2020-04-11 14:56 手势识别\venv\sc
文件 769688 2020-04-11 14:56 手势识别\venv\sc
文件 1640960 2020-04-11 14:56 手势识别\venv\sc
文件 1955328 2020-04-11 14:56 手势识别\venv\sc
文件 872600 2020-04-11 14:56 手势识别\venv\sc
文件 87888 2020-04-11 14:56 手势识别\venv\sc
文件 26264 2020-04-11 14:56 手势识别\venv\sc
文件 94360 2020-04-11 14:56 手势识别\venv\sc
文件 129176 2020-04-11 14:56 手势识别\venv\sc
文件 31384 2020-04-11 14:56 手势识别\venv\sc
文件 321688 2020-04-11 14:56 手势识别\venv\sc
文件 198808 2020-04-11 14:56 手势识别\venv\sc
文件 1450648 2020-04-11 14:56 手势识别\venv\sc
文件 153240 2020-04-11 14:56 手势识别\venv\sc
............此处省略2882个文件信息
- 上一篇:Sublime Text238239
- 下一篇:Python3源代码.rar
相关资源
- Python3源代码.rar
- Sublime Text238239
- Python 强化学习 DQN Flappy Bird
- python2环境的opencv库
- zw_hljwkwm-10721414-零基础入门学习Pytho
- Python for Finance.中文版(Yves Hilpisch)
- opencv_python-3.3.0-cp35-cp35m-win_amd64.whl
- 《贝叶斯思维:统计建模的Python学习法
- Python程序设计_车万翔译_课后全部答案
- opencv_python-4.1.0.25-cp37-cp37m-win_amd64.wh
- Python-利用TensorFlow中的深度学习进行图
- python深度学习pdf+源码案例
- simplecv实用机器视觉+OpenCV-Python-Totur
- Python3.7 免安装版
- 冲顶大会/芝士超人/花椒直播...答题助
- Serial assistant.rar
- Python金融大数据分析 完整.pdf版
- 《Python3程序开发指南 Programming in Py
- Introduction to Machine Learning with Python_正
- PYTHON数据可视化编程实战PDF
- python3.4+pywin32 32位
- 深入浅出Python(中文版)
- 阿里云大学马哥python资料.zip
- opencv_python-4.1.2-cp37-cp37m-win_amd64.whl
- Selenium 2自动化测试实战 基于Python语言
- python实现飞机大战
- opencv-python 3.4.3.18
- python开发键盘钢琴源代码及打包程序
- tensorflow-1.10.0-cp27-cp27m-win_amd64.whl
- 黑马程序员Python入门教程讲义及源码
评论
共有 条评论