Kinect+OpenNI学习笔记之(不需要骨骼跟踪的人体手部分割).docVIP

  • 4
  • 0
  • 约1.21万字
  • 约 14页
  • 2017-11-10 发布于江苏
  • 举报

Kinect+OpenNI学习笔记之(不需要骨骼跟踪的人体手部分割).doc

KinectOpenNI学习笔记之(不需要骨骼跟踪的人体手部分割)

Kinect+OpenNI学习笔记之9(不需要骨骼跟踪的人体手部分割)      前言   手势识别非常重要的一个特点是要体验要好,即需要以用户为核心。而手势的定位一般在手势识别过程的前面,在上一篇博文Kinect+OpenNI学习笔记之8(Robert Walter手部提取代码的分析)?中已经介绍过怎样获取手势区域,且取得了不错的效果,但是那个手势部位的提取有一个大的缺点,即需要人站立起来,当站立起来后才能够分隔出手。而手势在人之间的交流时,并不一定要处于站立状态,所以这不是一个好的HCI。因此本文介绍的手势部位的提取并不需要人处于站立状态,同样取得了不错的效果。 ?   实验说明   其实,本实验实现的过程非常简单。首先通过手部的跟踪来获取手所在的坐标,手部跟踪可以参考本人前面的博文:Kinect+OpenNI学习笔记之7(OpenNI自带的类实现手部跟踪)。当定位到手所在的坐标后,因为该坐标是3D的,因此在该坐标领域的3维空间领域内提取出手的部位即可,整个过程的大概流程图如下:    ?   OpenCV知识点总结:   调用Mat::copyTo()函数时,如果需要有mask操作,则不管源图像是多少通道的,其mask矩阵都要定义为单通道,另外可以对一个mask矩阵画一个填充的矩形来达到使mask矩阵中对应ROI的位置的值为设定值,这样就不需要去一一扫描赋值了。   在使用OpenCV的Mat矩阵且需要对该矩阵进行扫描时,一定要注意其取值顺序,比如说列和行的顺序,如果弄反了,则经常会报内存错误。 ? ?   实验结果   本实验并不要求人的手一定要放在人体的前面,且也不需要人一定是处在比较简单的背景环境中,本实验结果允许人处在复杂的背景环境下,且手可以到处随便移动。当然了,环境差时有时候效果就不太好。   下面是3张实验结果的截图,手势分隔图1:    ?   手势分隔图2:    ?   手势分隔图3:    ?   实验主要部分代码即注释(附录有工程code下载链接): main.cpp: #include iostream #include opencv2/highgui/highgui.hpp #include opencv2/imgproc/imgproc.hpp #include opencv2/core/core.hpp #include copenni.cpp #include iostream #define DEPTH_SCALE_FACTOR 255./4096. #define ROI_HAND_WIDTH 140 #define ROI_HAND_HEIGHT 140 #define MEDIAN_BLUR_K 5 int XRES = 640; int YRES = 480; #define DEPTH_SEGMENT_THRESH 5 using namespace cv; using namespace xn; using namespace std; int main (int argc, char **argv) { COpenNI openni; int hand_depth; Rect roi; roi.x = XRES/2; roi.y = YRES/2; roi.width = ROI_HAND_WIDTH; roi.height = ROI_HAND_HEIGHT; if(!openni.Initial()) return 1; namedWindow(color image, CV_WINDOW_AUTOSIZE); namedWindow(depth image, CV_WINDOW_AUTOSIZE); namedWindow(hand_segment, CV_WINDOW_AUTOSIZE);//显示分割出来的手的区域 if(!openni.Start()) return 1; while(1) { if(!openni.UpdateData()) { return 1; } /*获取并显示色彩图像*/ Mat color_image_src(openni.image_metadata.YRes(), openni.image_metadata.XRes(), CV_8UC3, (char *)openni.image_metadata.Data()); Mat color_i

文档评论(0)

1亿VIP精品文档

相关文档