大家好,又见面了,我是你们的朋友全栈君。
做关于深度信息处理的,正好实验室配备了kinect2代,就想着先用kinect获取深度信息来处理,之后换其他设备只要有深度信息就直接往后推进就行,不过网上教程虽然多,但是第一次总会栽进坑中,记录一波,下回重来的时候长个教训。
C. 微软上关于kinect v2 的官方文档 官网Kinect v2文档 关于代码中的一些函数接口,在我们打开的SDK Browser v2.0也可以直接get到
D. Kinect Sensor类(属性的功能了解下),代码里主要就是这类在用
E. 关于HRESULE 百科上的解释:函数返回值。32位,其最高位(bit)如果是0表示成功,1表示错误。具体参见 MSDN(微软开发者网络) 之”Structure of COM Error Codes”说明。我们在程序中如果需要判断返回值,则可以使用比较运算符号;switch开关语句;也可以使用VC提供的宏: HRESULT hr = 调用组件函数;
F. 有的代码里有ConvertMat函数,实现转换depth图像到cv::Mat,这是因为
基本都是关于代码,看文档知道有哪些接口怎么用就行
参照代码,直接运行,可以出来深度图,在深度图上点击就可以出现该位置的三维坐标信息 代码链接
方括号里面是像素坐标x,y,最后一个就是需要的深度Z值,单位是毫米。大小为0的地方,是该位置处侦测不到像素点的深度,同时三维坐标文本信息保存在相应项目文件夹下。要转化为世界坐标系网上也有很多教程,不过考虑到之后要实现的任务,后面可能会考虑用Unity+Kinect获取到场景中的每个像素的深度值,再考虑shader实虚实遮挡的可能性。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145957.html原文链接:https://javaforall.cn