- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Kinect开发教程二
Kinect开发教程二:OpenNI读取深度图像与彩色图像并显示
2012Apr17PM 11:14
[Kinect OpenNI 开发技术教程]|?Posted by?yuanloo|?Links?cnkinect |?2Comments
细心的朋友肯定已经发现Kinect上长了三只眼睛,其中一个是彩色摄像头,另外两个深度摄像头,一个负责发射红外光,一个负责接收,这样,我们便能通过Kinect得到一幅彩色图像和一幅深度图像。如果大家对Kniect眼睛的技术细节感兴趣,请点击这里。
???????小斤的第一个范例,便是通过OpenNI得到彩色和深度图像咯,代码不长,其中一部分参考了Heresky童鞋的文章《透過 OpneNI 合併 Kinect 深度以及彩色影像資料》,此外,小斤补充了OpenCV的显示部分,使范例更为直观。
[cpp]?view plaincopy
#include?stdlib.h??
#include?iostream??
#include?string??
//【1】??
#include?XnCppWrapper.h??
#include?opencv/cv.h??
#include?opencv/highgui.h??
??
using?namespace?std;??
using?namespace?cv;??
??
void?CheckOpenNIError(?XnStatus?result,?string?status?)??
{???
????if(?result?!=?XN_STATUS_OK?)???
????????cerr??status???Error:???xnGetStatusString(?result?)??endl;??
}??
??
int?main(?int?argc,?char**?argv?)??
{??
????XnStatus?result?=?XN_STATUS_OK;????
????xn::DepthMetaData?depthMD;??
????xn::ImageMetaData?imageMD;??
??
????//OpenCV??
????IplImage*??imgDepth16u=cvCreateImage(cvSize(640,480),IPL_DEPTH_16U,1);??
????IplImage*?imgRGB8u=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);??
????IplImage*??depthShow=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);??
????IplImage*?imageShow=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,3);??
????cvNamedWindow(depth,1);??
????cvNamedWindow(image,1);??
????char?key=0;??
??
????//【2】??
????//?context???
????xn::Context?context;???
????result?=?context.Init();???
????CheckOpenNIError(?result,?initialize?context?);????
??
????//?creategenerator????
????xn::DepthGenerator?depthGenerator;????
????result?=?depthGenerator.Create(?context?);???
????CheckOpenNIError(?result,?Create?depth?generator?);????
????xn::ImageGenerator?imageGenerator;??
????result?=?imageGenerator.Create(?context?);???
????CheckOpenNIError(?result,?Create?image?generator?);??
??
????//【3】??
????//map?mode????
????XnMapOutputMode?mapMode;???
????mapMode.nXRes?=?640;????
????mapMode.nYRes?=?480;???
????mapMode.nFPS?=?30;???
????result?=?depthGenerator.SetMapOutputMode(?mapMode?);????
????result
文档评论(0)