<th id="vp9v5"></th>
<progress id="vp9v5"><video id="vp9v5"></video></progress>
<th id="vp9v5"></th><span id="vp9v5"></span>
<span id="vp9v5"></span>
<th id="vp9v5"></th>
<strike id="vp9v5"><noframes id="vp9v5"><th id="vp9v5"></th>
<th id="vp9v5"></th>
<span id="vp9v5"><noframes id="vp9v5"><th id="vp9v5"><noframes id="vp9v5"><th id="vp9v5"></th><strike id="vp9v5"><noframes id="vp9v5"><ruby id="vp9v5"></ruby>
歡迎來到技術文庫! | 幫助中心 技術提升企業競爭力!
技術文庫
全部分類
  • 化工機械>
    石油標準 機械標準 閥門標準
    化工機械
    石油標準 機械標準 閥門標準 管件接頭 法蘭標準 鋼鐵標準 金屬冶金 鍋爐標準 特種設備 重型機械 緊固件標 泵類標準 壓縮機標 換熱器標 聯軸器標 過濾器標 人孔手孔 密封墊片 氣體貯罐 軸承齒輪 儀器儀表 氣動液壓 油脂油品 焊接標準 鑄造鍛造 計量標準 涂料染料 化工原料 熱處理標 無損檢測 檢驗檢測 管道工程 規章規范 機械制圖 其他標準 工業自動化
  • 國外標準>
    JIS標準 BS標準 ASME標準
    國外標準
    JIS標準 BS標準 ASME標準 DIN標準 EN標準 ISO標準 ANSI標準 NF標準 KS標準 CSA標準 其他標準
  • 行業標準>
    煤礦能源 鐵路標準 船舶標準
    行業標準
    煤礦能源 鐵路標準 船舶標準 電氣電力 電子信息 汽車標準 航空民航 紡織標準 家用電器 包裝儲運 質量管理 醫藥衛生 通信標準 交通標準 煙草標準 輕工標準 公安消防 檢驗檢疫 核工業標準 環保氣象 土地測繪 水利標準 林業標準 勞動安全 文體教育 廣播影視 稀土標準 合格評定 軍用標準 地方標準 其他標準 橡膠塑料 貿易標準 海洋標準 地震標準 密碼行業標準 認證認可標準 旅游標準 金融標準 民政標準 團體標準 團體標準
  • 管理文獻>
    經營企劃 財務管理 生產管理
    管理文獻
    經營企劃 財務管理 生產管理 質量管理 倉儲管理 銷售管理 代理連鎖 工程管理 信息管理 行政管理 經典理論 管理咨詢 經營戰略 管理決策 資本運營 組織管理 品牌管理 市場營銷 廣告經營 項目管理 成本管理 物流管理
  • 建筑標準>
    通用標準 建筑機械 建材標準
    建筑標準
    通用標準 建筑機械 建材標準 城建標準 路橋標準 給水排水 安裝設計 工程結構 施工工藝 混凝土標準 門窗玻璃 材料驗收 規章規范 地方其他
  • 書簽 分享 收藏 舉報 版權申訴 / 28

    Kinect+OpenNI學習筆記之12(簡單手勢所表示數字識別)

  • 上傳人: j***
  • 文檔編號:3192642
  • 上傳時間:2017-06-26
  • 文檔格式:DOC
  • 文檔頁數:28
  • 文檔大?。?96.50KB
  • 配套講稿:

    如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。

    特殊限制:

    部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創性部分享有著作權。

    關 鍵  詞:
    kinect openni 學習 筆記 12 十二 簡單 手勢 表示 數字 識別 辨認
    資源描述:

    《Kinect+OpenNI學習筆記之12(簡單手勢所表示數字識別)》由會員分享,可在線閱讀,更多相關《Kinect+OpenNI學習筆記之12(簡單手勢所表示數字識別)(28頁珍藏版)》請在技術文庫上搜索。

    1、實驗總結:由本次實驗的操作過程可以看出,識別效果抗干擾能力比較差差。因此后續的工作是建立一個手勢識別的數據庫,尋找一個好的手部特征向量,和一個好的分類器。這有可能將是本人研究生畢業論文的研究方向,加油!void COpenNI:CBGestureProgress(GestureGenerator &generator, const XnChar *strGesture, const XnPoint3D *pPosition, XnFloat fProgress, void *pCookie)void COpenNI:HandCreate(HandsGenerator &rHands, Xret。

    2、urn hand_generator_;bool COpenNI:CheckError(const char *error)if(status_ != XN_STATUS_OK) cerr hand_generator_.StartTracking(*pEndPosition);bool COpenNI:Start()status_ = context_.StartGeneratingAll();if(CheckError(Start generating error!) return false;return true;bool COpenNI:UpdateData()status_ = c。

    3、ontext_.WaitNoneUpdateAll();if if(CheckError(Create hand generaotr error!) return false;/產生人體 nodestatus_ = user_generator_.Create(context_);if(CheckError(Create gesturen generator error!) return false;/視角校正status_ context_.SetGlobalMirror(true);/設置鏡像xmode_.nXRes = 640;xmode_.nYRes = 480;xmode_.nFPS。

    4、 = 30;/產生顏色 nodestatus_ = image_generator_.Create(context_);if(CheckError(Create image generator error!) /*手部銷毀的回調函數*/static void XN_CALLBACK_TYPE HandDestroy(HandsGenerator& rHands, XnUserID xUID, XnFloat fTime, void* pCookie);XnStatus status_;Context context_;XnMapOutputMode xmode_;UserGenerator u。

    5、s std:map hand_points_; /為了存儲不同手的實時點而設置的std:map hands_track_points_; /為了繪畫后面不同手部的跟蹤軌跡而設定的private:/*該函數返回真代表出現了錯誤,返回假代表正確*/bool CheckError(const char* error);/*表示有人體進入的回調函數*/static void XN_CAL#include #include #include #include #include #include using namespace xn;using namespace std;class COpenNIpub。

    6、lic:COpenNI();COpenNI();/*OpenNI 的內部初始化,屬性設置*/bool Initial();/*啟動 OpenNI 讀取 Kinect 數據*/bo number_result = 5;if(number_result !=0 & number_result != 1 & number_result != 2 & number_result != 3 & number_result != 4 & number_result != 5)number_result = -1;/*在手勢識別圖上顯示匹配的數字*/ circle(hand_recognition_imag。

    7、e, Point(itUser-second.X, itUser-second.Y), 3, Scalar(0, 255, 255), 3, 8);circle(hand_recognition_image, Point(itUser-second.X, itUser-second.Y + 25), 3, Sc /*統計在中心點 2 以上凸點的個數*/if(approx_poly_curvehulli.y SEGMENT_POINT2_DISTANCE & dis2 = 0) convex_assist_above_point2+;convex_number_above_point2+;/ /。

    8、*對求出的多邊形擬合 findContours(hand_segment_mask, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);/找出 mask 圖像的輪廓Mat hand_recognition_image = Mat:zeros(color_image.rows, color_image.cols, CV_8UC3);for(int i = hands_roi.at(itUser-first % MAX_HANDS_NUMBER).y = YRES;imshow(color image, color_image);/*獲取并顯示深度圖像。

    9、*/Mat depth_image_src(openni.depth_metadata_.YRes(), openni.depth_metadata_.XRes Mat color_image;cvtColor(color_image_src, color_image, CV_RGB2BGR);Mat hand_segment_mask(color_image.size(), CV_8UC1, Scalar:all(0);for(auto itUser = openni.hand_points_.cbegin(); itUser != unsigned int point_y1 = 0;uns。

    10、igned int point_y2 = 0;int number_result = -1;bool recognition_flag = false; /開始手部數字識別的標志vector color_array;/采用默認的 10 種顏色color_array.push_back(Scalar(255, 0, 0);ccopenni 類采用前面博文設計的,這里給出主函數代碼部分。main.cpp:#include #include opencv2/highgui/highgui.hpp#include opencv2/imgproc/imgproc.hpp#include #include。

    11、 copenni.cpp#include #define DEPTH_SCALE_FACTOR 255./4 實驗主要部分代碼及注釋:本次實驗程序實現過程和上面的系統流程圖類似,大概過程如下:1. 求出手部的掩膜2. 求出掩膜的輪廓3. 求出輪廓的多變形擬合曲線4. 求出多邊形擬合曲線的凸包集,找出凸點5. 求出多變形擬合曲線的凹陷集,找出凹點6. 利用上面的凸凹點和手部中心點的幾何關系來做簡單的數字手勢識別 數字“5”的識別結果:數字“4”的識別結果:數字“3”的識別結果:數字“2”的識別結果:數字“1”的識別結果:參數 3 是一個含有 4 個元素的結構體的集合,如果在 c+的版本中,該參數。

    12、可以直接用 vector來代替,Vec4i 中的 4 個元素分別表示凹陷曲線段的起始坐標索引,終點坐標索引,離凸包集曲線最遠點的坐標索引 以及此時的最遠距離值,這 4 個值都是整數。在 c 版本的 opencv 中一般不是保存的索引,而是坐標值,如下所示:struct CvConvexityDefectCvPoin表示在 1969 行的位置出錯,也就是 CV_Assert( ptnum 3 );出錯,說明出錯時此處的 ptnum 3。簡單的說就是用 convexityDefects()函數來對多邊形曲線進行凹陷檢測時,必須要求參數 1 曲線本身至少有 2 個點(也不知道這樣分析對不 對)。因此。

    13、本人在本次程序 convexityDefects()函數前加入了 if(Mat(approx_poly_c不過這里需要重新對這 3 個參數做個詳細的說明:第 1 個參數雖然寫的是 contour,字面意思是輪廓,但是本人實驗過很多次,發現如果該參數為目標通過輪廓檢測得 到的原始輪廓的話,則程序運行到onvexityDefects()函數時會報內存錯誤。因此本程序中采用的不是物體原始的輪廓,而是經過多項式曲線擬合 后的輪廓,即多項式曲線,這樣程序就會順利地運行得很好。http:/www.xinxi其中輪廓的提取,多邊形擬合曲線的求法,凸包集和凹陷集的求法都是采用 opencv 中自帶的函數。手勢。

    14、數字的識別是利用凸包點以及凹陷點和手部 中心點的幾何關系,簡單的做了下邏輯判別了(可以肯定的是這種方法很爛),具體的做法是先在手部定位出 2 個中心點坐標,這 2 個中心點坐標之間的距離閾值由 程序設定,其中一個中心點就是利用 OpenNI 跟蹤得到的手部位置。有了這 2 個中心點的坐標,在程序前言這篇文章是本人玩 kinect 時做的一個小實驗,即不采用機器學習等類似AI 的方法來做簡單的手勢數字識別,當然了,該識別的前提是基于本人前面已提取出手部的博文 Robert Walter 手部提取代碼的分析的基礎上進行的。由于是純數學形狀上來判別手勢,所以只是做了個簡單的 05 的數字識別系統,其手勢的分割部分效果還不錯(因為其核心代碼是由 OpenNI 提供的),手勢數字識別時容易受。

    展開閱讀全文
      技術文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
    0條評論

    還可以輸入200字符

    暫無評論,趕快搶占沙發吧。

    關于本文
    本文標題:Kinect+OpenNI學習筆記之12(簡單手勢所表示數字識別)
    鏈接地址:http://www.roomav.net/p-3192642.html
    關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們
    手機版 | MIP | 粵公網安備 44060602000677號 | 經營許可證(粵ICP備16048919號)| 本站法律顧問陳鑫輝律師(13807302170)
    ?2008-2020 by Guangdong Foushan Jswku.com Inc. All Rights Reserved.
    收起
    下載幫助
    侵權處理
    上傳問題
    展開
    97色色
    <th id="vp9v5"></th>
    <progress id="vp9v5"><video id="vp9v5"></video></progress>
    <th id="vp9v5"></th><span id="vp9v5"></span>
    <span id="vp9v5"></span>
    <th id="vp9v5"></th>
    <strike id="vp9v5"><noframes id="vp9v5"><th id="vp9v5"></th>
    <th id="vp9v5"></th>
    <span id="vp9v5"><noframes id="vp9v5"><th id="vp9v5"><noframes id="vp9v5"><th id="vp9v5"></th><strike id="vp9v5"><noframes id="vp9v5"><ruby id="vp9v5"></ruby>