新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何基于Dragoboard 410c開發板設計簡單手型識別方案?

        如何基于Dragoboard 410c開發板設計簡單手型識別方案?

        作者: 時間:2018-08-03 來源:網絡 收藏

        手勢交互是未來人機交互領域發展的一個重要方向,本文將參考使用Opencv實現靜態手勢識別玩轉石頭剪刀布一文,教大家如何在Dragoboard 410c上使用Python腳本語言實現簡單的手型識別,通過從USB攝像頭獲取手型圖像,然后識別出石頭-剪刀-布三個手型。

        本文引用地址:http://www.104case.com/article/201808/385318.htm


        具體實現步驟如下:

        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]=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_length110):

        #print ’rock‘;

        return 1;

        else:

        #print ’paper‘;

        return 2;

        到這里我們就完成了整個手型識別的核心部分,具體的代碼較長,直接附件http://pan.baidu.com/s/1kUKSxoV,用該代碼運行就可以進行手型檢測,效果如下圖所示,雖然不準確,但是基本上可以檢測出三種不同的手型:




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 濉溪县| 禄劝| 集贤县| 石首市| 奉新县| 卢氏县| 策勒县| 汉川市| 额敏县| 珠海市| 嘉峪关市| 界首市| 台前县| 永定县| 越西县| 德江县| 沙雅县| 定边县| 冕宁县| 怀宁县| 秦皇岛市| 襄城县| 布尔津县| 澄迈县| 望江县| 平谷区| 重庆市| 丰镇市| 华容县| 印江| 梁山县| 宁强县| 山西省| 建宁县| 阆中市| 盐池县| 海淀区| 嘉荫县| 岳阳市| 武隆县| 大英县|