基于Dragoboard 410c开发板的简单手型识别方案

手势交互是未来人机交互领域发展的一个重要方向,本文将参考使用opencv实现静态手势识别玩转石头剪刀布一文,教大家如何在dragoboard 410c开发板上使用python脚本语言实现简单的手型识别,通过从usb摄像头获取手型图像,然后识别出石头-剪刀-布三个手型。
具体实现步骤如下:
1)获取usb摄像头图像:
这里主要是通过opencv提供的python接口cv2,具体可以参考410c板获取usb摄像头图像一文,里面详细介绍了在dragonboard 410c上使用usb摄像头获取图像。
2)设置手势区域
在视频区域内设置一个手势区域,只有将手放入到该区域,系统才可以正确的识别手型,其他区域的系统不做处理,具体代码如下:
#设置手型区域
cv2.rectangle(img,(426,0),(640,250),(170,170,0))
#获取手型区域图像并保存
img = img[0:210,426:640]
cv2.imwrite(“wif.jpg”,img)
3)对检测区域进行图像处理,其核心代码如下:
img = cv2.imread(“wif.jpg”,0)
element = cv2.getstructuringelement(cv2.morph_rect,(11,11))
dilate = cv2.dilate(img, element)
erode = cv2.erode(img, element)
result = cv2.absdiff(dilate,erode);
retval, result = cv2.threshold(result, 40, 255, cv2.thresh_binary);
result = cv2.bitwise_not(result);
result =cv2.medianblur(result,23)
4)判断手型,其中部分核心代码如下:
if width[i]=40:
width_jiandao= false
width_length += width[i]
if width_jiandao==true and count==2:
return 1;
if(area 14000 or count>=3):
#print ’paper‘;
return 2;
if(width_length<110):
#print ’rock‘;
return 1;
else:
#print ’paper‘;
return 2;
到这里我们就完成了整个手型识别的核心部分,具体的代码较长,直接附件http://pan.baidu.com/s/1kuksxov,用该代码运行就可以进行手型检测,效果如下图所示,虽然不准确,但是基本上可以检测出三种不同的手型:

摩托罗拉Razr独屏幕铰链设计揭秘,采用垂直折叠的翻盖式方案
中芯国际对于“四季度 8英寸晶圆代工是否进行调价?
什么是摄像灯
国内首个人工智能职称评价标准发布 首次申报不受学历资历限制
电动调节阀的类型以及应用场景的介绍
基于Dragoboard 410c开发板的简单手型识别方案
快下载!Vista最新安全升级补丁发布
LCR表的测试原理和使用方法
新款循环冷却器与传统设备之间的区别是什么
三星新专利公开,显示出将AR Emoji应用到视频聊天的可能
哪有什么洪荒之力,成功都是一步步走出来的
云母电容的用途_云母电容特点
智慧城市的必然之选是什么
韩国半导体制造商开始在中国寻求替代厂家寻求“突围”
Linux MIPI CSI开发指南
采用东芝DTMOSIV超级结MOSFET来解决这些问题
设计并实现一个满足LRU约束的数据结构
MYSQL中读写分离有什么作用及基本架构说明
Dialog快速充电技术首度商用 支援华为专属协定
高效提升控制效率 | 基于ACM32 MCU的LED灯箱控制器方案