基于Dragonboard 410c的简单手型识别

本文介绍了一种使用Python和OpenCV在Dragonboard410c开发板上实现的手型识别方法,能够从USB摄像头捕获图像并识别出石头、剪刀、布三种手势。

        手势交互是未来人机交互领域发展的一个重要方向,本文将参考http://lib.csdn.net/article/opencv/24642教大家如何在Dragoboard 410c开发板上使用Python脚本语言实现简单的手型识别,通过从USB摄像头获取手型图像,然后识别出石头-剪刀-布三个手型。

        

         具体实现步骤如下:

        1)获取USB摄像头图像:

         这里主要是通过Opencv提供的Python接口cv2,具体可以参考http://blog.csdn.net/andymfc/article/details/52875488,里面详细介绍了在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]<=20 or width[i]>=40:  
               width_jiandao= False  
               width_length += width[i]  
               if width_jiandao==True and count==2:  
               return 1;  
               if(area <8500):  
                #print 'stone;  
                return 0;  
                print "width_leng",width_length  
                 ......
                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,用该代码运行就可以进行手型检测,效果如下图所示,虽然不准确,但是基本上可以检测出三种不同的手型:

         


         参考文献:download.csdn.net/download/afd_326/2760525;http://lib.csdn.net/article/opencv/24642

       

         

        

         

        

       

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值