开发工具:Visual Studio 2017
开发技术:OpenCV,C++
这是一个基于opencv和vc++开发的一个石头剪刀布小游戏,游戏启动后首先点击玩家出图按钮,电脑会自动打开摄像头对玩家出图进行图像抓取和计算分析,然后点击电脑出图,电脑是根据生成一个随机数随机出一个图,最后点击PK得到玩家和电脑的比赛结果,整个项目的难点就在玩家出图画面的自动识别,用到了如下算法基于OpenCV的手势识别(剪刀、石头、布):
1 读取视频中的每一帧
2 图片预处理去噪(高斯滤波)
3 用CrCb颜色空间Cr分量+Otsu法检测皮肤
4 形态学处理(开运算)
5 Canny边缘检测获得得到二值化图像
6 利用findContours函数查找轮廓
7 寻找最大面积的轮廓,即为手势轮廓
8 利用凸包检测获取手势轮廓的凸包轮廓
9 利用手势轮廓与其凸包轮廓面积比,周长比的关系识别不同手势