欢迎来到技术文库! | 帮助中心 技术提升企业竞争力!
技术文库
全部分类
  • 化工机械>
    石油标准 机械标准 阀门标准
    化工机械
    石油标准 机械标准 阀门标准 管件接头 法兰标准 钢铁标准 金属冶金 锅炉标准 特种设备 重型机械 紧固件标 泵类标准 压缩机标 换热器标 联轴器标 过滤器标 人孔手孔 密封垫片 气体贮罐 轴承齿轮 仪器仪表 气动液压 油脂油品 焊接标准 铸造锻造 计量标准 涂料染料 化工原料 热处理标 无损检测 检验检测 管道工程 规章规范 机械制图 其他标准 工业自动化
  • 国外标准>
    JIS标准 BS标准 ASME标准
    国外标准
    JIS标准 BS标准 ASME标准 DIN标准 EN标准 ISO标准 ANSI标准 NF标准 KS标准 CSA标准 其他标准
  • 行业标准>
    煤矿能源 铁路标准 船舶标准
    行业标准
    煤矿能源 铁路标准 船舶标准 电气电力 电子信息 汽车标准 航空民航 纺织标准 家用电器 包装储运 质量管理 医药卫生 通信标准 交通标准 烟草标准 轻工标准 公安消防 检验检疫 核工业标准 环保气象 土地测绘 水利标准 林业标准 劳动安全 文体教育 广播影视 稀土标准 合格评定 军用标准 地方标准 其他标准 橡胶塑料 贸易标准 海洋标准 地震标准 密码行业标准 认证认可标准 旅游标准 金融标准 民政标准 团体标准 团体标准
  • 管理文献>
    经营企划 财务管理 生产管理
    管理文献
    经营企划 财务管理 生产管理 质量管理 仓储管理 销售管理 代理连锁 工程管理 信息管理 行政管理 经典理论 管理咨询 经营战略 管理决策 资本运营 组织管理 品牌管理 市场营销 广告经营 项目管理 成本管理 物流管理
  • 建筑标准>
    通用标准 建筑机械 建材标准
    建筑标准
    通用标准 建筑机械 建材标准 城建标准 路桥标准 给水排水 安装设计 工程结构 施工工艺 混凝土标准 门窗玻璃 材料验收 规章规范 地方其他
  • 书签 分享 收藏 举报 版权申诉 / 28

    Kinect+OpenNI学习笔记之12(简单手势所表示数字识别)

  • 上传人: j***
  • 文档编号:3192642
  • 上传时间:2017-06-26
  • 文档格式:DOC
  • 文档页数:28
  • 文档大小:396.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(简单手势所表示数字识别)
    链接地址:https://www.jswku.com/p-3192642.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    手机版 | MIP | 粤公网安备 44060602000677号 | 经营许可证(粤ICP备16048919号)| 本站法律顾问陈鑫辉律师(13807302170)
    ©2008-2020 by Guangdong Foushan Jswku.com Inc. All Rights Reserved.
    收起
    下载帮助
    侵权处理
    上传问题
    展开