【计算机视觉40例】案例08:石头剪刀布手势识别
【导读】本文是专栏《计算机视觉40例简介》的第8个案例《石头剪刀布手势识别》。该专栏简要介绍李立宗主编《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书的40个案例。 目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。 大家可以在公众号“计算机视觉之光”回复关键字【案例08】获取本文案例的源代码及使用的测试图片等资料。 针对本书40个案例的每一个案例,分别录制了介绍视频。如果嫌看文字版麻烦,可以关注公众号“计算机视觉之光”直接观看视频介绍版。 |
手势识别演示如图1所示,针对图像内的手势给出对应的提示文字。
图1 石头剪刀布识别
本案例中,根据形状匹配完成“石头剪刀布”的识别。如图2所示,识别手势时,将与已知形状的相似度匹配值作为判断依据,与哪个已知模型最相似,就将结果识别为哪个模型所对应的手势。
图2 形状匹配
具体实现时,引入了形状匹配的概念。形状匹配用来计算两个形状之间的匹配值,通常情况下,两个对象越相似,其匹配值越小。OpenCV提供了函数cv2.matchShapes(),对两个对象的Hu矩进行比较。
针对图3,具有如下的匹配值:
- 相同图像(A,A)的matchShape= 0.0
- 相似图像(A,B)的matchShape= 0.0029017627247301114
- 不相似图像(A,C)的matchShape= 0.8283119580686752
图3 不同形状
从以上结果可以看出:
- 同一幅图像的Hu矩是不变的,二者差值为0。因此,图像A中的对象(手)和自身距离计算的结果为0;
- 图像在发生了平移、旋转和缩放前后,二者的距离较近。例如,图像A和图像B中的对象,B中的对象是对A中的对象进行缩放、旋转和平移后得到的,因此二者的差值较小,约为0.003。
- 不相似图像的差值较大。例如,图像A中的对象和图像C中的对象的差别较大,约为0.83。
根据上述距离来判定手势到底是属于石头剪刀布的哪一种。
在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第8章《手势识别》获取详细内容。
《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。
【计算机视觉40例】案例08:石头剪刀布手势识别相关推荐
- 【计算机视觉40例】案例07:数字手势识别
[导读]本文是专栏<计算机视觉40例简介>的第7个案例<手势识别>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)>一 ...
- 【计算机视觉40例】案例36:调用CNN实现人脸检测
[导读]本文是专栏<计算机视觉40例简介>的第36个案例<调用CNN实现人脸检测>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Pyth ...
- 【计算机视觉40例】案例40:识别性别与年龄
[导读]本文是专栏<计算机视觉40例简介>的第40个案例<识别性别与年龄>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)& ...
- 【计算机视觉40例】案例05:物体计数
[导读]本文是专栏<计算机视觉40例简介>的第5个案例<物体计数>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)>一 ...
- 【计算机视觉40例】案例30:EigenFaces人脸识别
[导读]本文是专栏<计算机视觉40例简介>的第30个案例<EigenFaces人脸识别>的简介,该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenC ...
- 【计算机视觉40例】案例26:姿势识别
[导读]本文是专栏<计算机视觉40例简介>的第26个案例<姿势识别>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)> ...
- 【计算机视觉40例】案例03:数字水印
[导读]本文是专栏<计算机视觉40例简介>的第3个案例<数字水印>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)>一 ...
- 【计算机视觉40例】案例19:行人检测
[导读]本文是专栏<计算机视觉40例简介>的第19个案例<行人检测>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python)> ...
- 【计算机视觉40例】案例29:LBPH人脸识别
[导读]本文是专栏<计算机视觉40例简介>的第29个案例<LBPH人脸识别>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(OpenCV-Python) ...
最新文章
- 把32位的SharePoint服务器场迁移到64位, 应该怎么做?
- 生活|全民AI时代:干洗店老板、高中生齐上阵
- 跳石头 NOIP2015 提高组 Day2 T1
- sqli-labs(40)
- 家用简单电线路图_家庭配电箱接线图解 家用配电箱安装方法
- printf函数输出超出int时怎么办
- 纪录安装tensorflow的又一次的坑
- 数十名工程师作战 5 天,阿里达摩院连夜研发智能疫情机器人
- Mac小知识:只需四步,教大家如何修改苹果电脑的DNS
- 12306bycloud,免费开源抢票软件,无需安装,全平台可用
- Python 3爬虫、数据清洗与可视化实战PDF高清完整版免费下载|百度云盘
- 怎么刷android10,安卓10的刷机教程,教你刷好Killer的精简包
- 一年级课程表(4月18日-4月22日)
- 一个Logo道出了DELL EMC存储的追求与梦想
- Gym - 101350E - Competitive Seagulls (博弈)
- Nginx下https模式下,不带www的域名无法自动跳转到带www域名的问题
- 物联网外设学习笔记-语音识别模块
- Python入门学习哪个视频好?
- 服务器如何向前端页面推送消息,后端向前端推送消息
- 用python刷微信阅读_使用python让微信读书自动翻页
热门文章
- mysql.exe 不是有效的32位程序
- 【转】OpenGL基础图形编程(一)
- javaweb-青橙项目-4-79
- on duplicate key update不生效_时尚弄潮儿们卡看过来!你有一份上海时尚周末逛吃买玩不完全攻略代签收!...
- BZOJ3351 [ioi2009]Regions
- html5 toggle,jQuery中如何实现toggle方法
- 市场调研-全球与中国K型热电偶市场现状及未来发展趋势
- 格式化的计算机数据就找不回来了,电脑被格式化了,硬盘文件恢复的回来吗?...
- 苹果认证Apple Store Connenct api的使用
- 计算机术语中Cache代表缓存,2012年3月计算机一级MsOffice选择题精选及答案详解(第六套)...