网易首页 > 网易号 > 正文 申请入驻

Python实现手势识别功能

0
分享至

  点击上方 "Python人工智能技术" 关注,星标或者置顶

  22点24分准时推送,第一时间送达

  后台回复“大礼包”,送你特别福利

  

编辑:技术君 | 来源:blog.csdn.net/qq_45874897

  Pythn人工智能技术(ID:coder_experience)第466 次推文

  上一篇:都2021了,Python 最强Web框架,早就不是Django和Flask了!

  正文

  网上搜到了一些关于手势处理的实验,我在这儿简单的实现一下,主要运用的知识就是opencv,python基本语法,图像处理基础知识。

  最终实现结果:

  获取视频(摄像头)

  这部分没啥说的,就是获取摄像头。

  
cap = cv2.VideoCapture("C:/Users/lenovo/Videos/1.mp4")#读取文件#cap = cv2.VideoCapture(0)#读取摄像头while(True):ret, frame = cap.read() key = cv2.waitKey(50) & 0xFFif key == ord('q'):breakcap.release()cv2.destroyAllWindows()


肤色检测

  这里使用的是椭圆肤色检测模型

  在RGB空间里人脸的肤色受亮度影响相当大,所以肤色点很难从非肤色点中分离出来,也就是说在此空间经过处理后,肤色点是离散的点,中间嵌有很多非肤色,这为肤色区域标定(人脸标定、眼睛等)带来了难题。如果把RGB转为YCrCb空间的话,可以忽略Y(亮度)的影响,因为该空间受亮度影响很小,肤色会产生很好的类聚。这样就把三维的空间将为二维的CrCb,肤色点会形成一定得形状,如:人脸的话会看到一个人脸的区域,手臂的话会看到一条手臂的形态。

  
def A(img):
YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) #转换至YCrCb空间(y,cr,cb) = cv2.split(YCrCb) #拆分出Y,Cr,Cb值cr1 = cv2.GaussianBlur(cr, (5,5), 0)_, skin = cv2.threshold(cr1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) #Ostu处理res = cv2.bitwise_and(img,img, mask = skin)return res
轮廓处理

  轮廓处理的话主要用到两个函数,cv2.findContours和cv2.drawContours,这两个函数的使用使用方法很容易搜到就不说了,这部分主要的问题是提取到的轮廓有很多个,但是我们只需要手的轮廓,所以我们要用sorted函数找到最大的轮廓。

  
def B(img):
#binaryimg = cv2.Canny(Laplacian, 50, 200) #二值化,canny检测h = cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) #寻找轮廓contour = h[0]contour = sorted(contour, key = cv2.contourArea, reverse=True)#已轮廓区域面积进行排序#contourmax = contour[0][:, 0, :]#保留区域面积最大的轮廓点坐标bg = np.ones(dst.shape, np.uint8) *255#创建白色幕布ret = cv2.drawContours(bg,contour[0],-1,(0,0,0),3) #绘制黑色轮廓return ret
全部代码

  搜索公众号顶级架构师后台回复“面试”,获取一份惊喜礼包。

  
""" 从视频读取帧保存为图片"""import cv2import numpy as npcap = cv2.VideoCapture("C:/Users/lenovo/Videos/1.mp4")#读取文件#cap = cv2.VideoCapture(0)#读取摄像头
#皮肤检测def A(img):
YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) #转换至YCrCb空间(y,cr,cb) = cv2.split(YCrCb) #拆分出Y,Cr,Cb值cr1 = cv2.GaussianBlur(cr, (5,5), 0)_, skin = cv2.threshold(cr1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) #Ostu处理res = cv2.bitwise_and(img,img, mask = skin)return res
def B(img):
#binaryimg = cv2.Canny(Laplacian, 50, 200) #二值化,canny检测h = cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) #寻找轮廓contour = h[0]contour = sorted(contour, key = cv2.contourArea, reverse=True)#已轮廓区域面积进行排序#contourmax = contour[0][:, 0, :]#保留区域面积最大的轮廓点坐标bg = np.ones(dst.shape, np.uint8) *255#创建白色幕布ret = cv2.drawContours(bg,contour[0],-1,(0,0,0),3) #绘制黑色轮廓return ret

while(True):
ret, frame = cap.read()#下面三行可以根据自己的电脑进行调节src = cv2.resize(frame,(400,350), interpolation=cv2.INTER_CUBIC)#窗口大小cv2.rectangle(src, (90, 60), (300, 300 ), (0, 255, 0))#框出截取位置roi = src[60:300 , 90:300] # 获取手势框图
res = A(roi) # 进行肤色检测cv2.imshow("0",roi)
gray = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY)dst = cv2.Laplacian(gray, cv2.CV_16S, ksize = 3)Laplacian = cv2.convertScaleAbs(dst)
contour = B(Laplacian)#轮廓处理cv2.imshow("2",contour)
key = cv2.waitKey(50) & 0xFFif key == ord('q'):breakcap.release()cv2.destroyAllWindows()

  你还有什么想要补充的吗?

  

免责声明:本文内容来源于网络,文章版权归原作者所有,意在传播相关技术知识&行业趋势,供大家学习交流,若涉及作品版权问题,请联系删除或授权事宜。

  技术君个人微信

  添加技术君个人微信即送一份惊喜大礼包

  → 技术资料共享

  → 技术交流社群

  --END--

  往日热文:

  他是第一个因人脸识别错误被关监狱的人,证据仅仅是1张驾照照片

  有趣的 Python 图片制作,用 QQ 好友头像拼接出里昂

  一小段Python代码,破解加密zip文件的密码

  你见过的最全面的Python重点

  Python程序员深度学习的“四大名著”:


  这四本书着实很不错!我们都知道现在机器学习、深度学习的资料太多了,面对海量资源,往往陷入到“无从下手”的困惑处境。而且并非所有的书籍都是优质资源,浪费大量的时间是得不偿失的。给大家推荐这几本好书并做简单介绍。

  获得方式:

  2.后台回复关键词:名著

  ▲长按扫描关注,回复名著即可获取

  你在看吗?一起成长

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐

0-1!欧冠决赛豪门轰然倒下:创17年耻辱,39岁少帅缔造英超历史

搜达足球
2021-05-13 05:38:50

菅义伟真的怕了?当着全世界鞠躬道歉,“取消奥运会”在日炸锅

海拔新观察
2021-05-12 18:52:30

这81家A股上市公司“筹码集中+机构重仓”!股价或迎来拉升

投资快报
2021-05-13 16:07:15

以色列动真格了!哈马斯司令被斩首,16名军官被炸身亡,战斗激烈

美洲报姐
2021-05-13 13:29:08

2021年养老金上调,有人已涨420元,那么他养老金是多少呢?看看

我的社保大课堂
2021-05-13 17:05:28

杜峰朱芳雨酝酿大交易,MVP或单换周琦,胡妈妈或重回老家

偶像来了le
2021-05-13 16:24:02

“牛粪饼”卖到我国?60元2盒都会一抢而光?印度太自信了!

国际大视野
2021-05-13 13:36:49

600年前中国抗日神器,差点被韩国申遗,现已成全球军队主力装备

军武次位面
2021-05-13 11:00:25

火车上,60岁大妈想换女生下铺,旁人起哄,女生一开口,乘客愣了

荒野的捕猎者
2021-05-13 10:05:39

“惊天一跳”前,15勇士经历了什么?

新民周刊
2021-05-12 21:42:08

莫迪要转移矛盾?印度再对华砸下三记重拳,中企撤离表示不再回来

花花带你去旅行
2021-05-13 10:43:19

山东明起大雨连下三天!周末要“泡汤”了!出行请注意安全!

海报新闻
2021-05-13 16:48:28

A股反垄断第一枪,“插座大王”盘中逼近跌停,高瓴、社保踩雷

数据宝
2021-05-13 14:46:11

马英九彻底怒了?炮轰回归“九二共识”,岛内已敲响警钟

无线泉州
2021-05-12 17:06:08

健身小姐姐很自信,穿灰色瑜伽裤出街,一般人可不行

燃情时尚
2021-05-12 14:40:46

日本:就算公开永不松动螺母原理,也没国家能仿成;我国成功超越

倾城之殇
2021-05-12 17:10:29

喇叭裤加露脐背心,一般不敢尝试的紫色,被小姐姐穿出了高级感

仙女旅行说
2021-05-13 12:28:46

大长腿小姐姐穿超短迷彩瑜伽裤,形状真明显,青春有活力

陌颜时尚
2021-05-13 15:28:15

德指责匈阻欧盟发对华声明,专家:能用一切手段施压,但德国不想

田柳 Talk
2021-05-13 18:10:39

谭松韵李沁一起上跑男9,同样是30岁,生图下的差距我却看愣了

八卦红尘君
2021-05-13 16:49:08
2021-05-13 20:21:08
程序员小乐
程序员小乐
有趣有内涵
2363文章数 8162关注度
往期回顾 全部

科技要闻

阿里第四财季营收1874亿元,净亏损54.79亿

头条要闻

局势正失控!巴以7年来最严重冲突 双方都誓言严厉报复

头条要闻

局势正失控!巴以7年来最严重冲突 双方都誓言严厉报复

体育要闻

尼克斯锁定东部前6 8年来首进季后赛

娱乐要闻

养眼!吴磊和热巴拍大片 CP感十足

财经要闻

汽车要闻

战斗感爆棚 MG6 XPOWER有纯正TCR赛车基因

态度原创

教育
亲子
健康
数码
公开课

教育要闻

国外的留学生,仍在假装好好生活

亲子要闻

孩子这6个小动作,竟是高智商的表现

筛查结直肠癌有哪些手段

数码要闻

中国技嘉贬低“中国制造”?请问你有什么资格?

公开课

哈佛医学院推荐:这样吃,改善各种眼部疾病