- 4
- 0
- 约1.21万字
- 约 14页
- 2017-11-10 发布于江苏
- 举报
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
您可能关注的文档
- ExtJs控件详解.doc
- GY高一月英语试题.doc
- ExtJs框架开发指南V.doc
- E旋转经典例题.doc
- ehzsuvy英语学习托福词组精选必备.doc
- g平面与空间直线.doc
- HACCP原理及应用指南.doc
- G类施工质量验收用表(G施工质量验收通用表格).doc
- HCS交换机配置步骤.doc
- HCLTPIPSEC办公网典型组网方案.doc
- 北京卷语文高考真题.doc
- 全套施工安全操作规程.docx
- 专题资料德汉公选面试培训资料.doc
- 爱会融化你心:小女孩与老人温情邂逅.pdf
- 六年级语文下册第四单元12为人民服务教案新人教版.doc
- 2025_2026学年高中语文第一单元2立在地球边上放号红烛峨日朵雪峰之侧致云雀同步基础专练含解析新人教版必修上册.docx
- 2026届高考英语一轮复习第一部分教材知识突破必修四Unit5Themeparks学案新人教版.doc
- 浙江省苍南县金乡卫城中学2025_2026学年高一语文下学期第一次月考试题含解析.doc
- 统考版2026届高考英语一轮复习选修8Unit23Conflict教师用书教案北师大版.doc
- 2026学年高二语文下学期入学考试试题一.doc
最近下载
- 乐购Hymall连锁超市-收银员排班工具使用作业规范.pdf VIP
- 黑龙江省教育学会示范性高中专业委员会2025届高三下学期第一次模拟考试 语文 含答案.docx VIP
- ISPE第五部分试车与确认课件.pptx VIP
- 【2026年春新教材】部编版小学二年级下册道德与法治全册教案(教学设计).docx
- 数学北师大版八年级下册多边形的内角和教学设计.docx VIP
- 守正创新担使命,凝心聚力启新程——校长在2026年春季学期全体教师开学大会上的讲话.docx
- 《体育课程与教学论》全套PPT课件.pptx VIP
- 第一章税收初阶资料.ppt VIP
- 数据接口安全管理制度.docx VIP
- 道路车辆 电气及电子设备的环境条件和试验 第3部分:机械负荷.docx VIP
原创力文档

文档评论(0)