Kinect获取深度图和深度数据

Kinect获取深度图和深度数据做关于深度信息处理的,正好实验室配备了kinect2代,就想着先用kinect获取深度信息来处理,之后换其他设备只要有深度信息就直接往后推进就行,不过网上教程虽然多,但是第一次总会栽进坑中,记录一波,下回重来的时候长个教训。配置,参考https://blog.csdn.net/qq_37059483/article/details/77855398#commentsedit因为现在很多版本…

大家好,又见面了,我是你们的朋友全栈君。

做关于深度信息处理的,正好实验室配备了kinect2代,就想着先用kinect获取深度信息来处理,之后换其他设备只要有深度信息就直接往后推进就行,不过网上教程虽然多,但是第一次总会栽进坑中,记录一波,下回重来的时候长个教训。

  1. 配置参考Kinect SDK
    因为现在很多版本都相对比较(额,过去式吧)这个是关于kinect v2+Windows10+VS2017(博主和微软官网都要求的VS2012或者13,但是我电脑之前配的17,是可以用的)。下载Kinect for Windows SDK2.0, 官网下载 直接安装,安装的时候不需要连接kinect设备,但是安装之后一定要重启电脑(因没有重启,之后一直出现错误)重启,重启,重启!重要的事情说三遍!!!
  2. 重启之后插入kinect USB3.0(接口没有写3.0啊,就是带点蓝色的那个USB),插上电源,就会自动安装驱动。在设备管理器里确定kinect设备已经安装好了,之后在开始处打开我们刚刚安装好的SDK Browser v2.0,但是我这里因为之前没有重启的缘故,在打开Samples C#的时候出现这样的问题,左下角示例,其实解决方案重启下电脑就好,但是自己菜啊!
    Kinect not available
  3. SDK配置成功之后,要自己实现编程的话,要配置下。在之前配置opencv成功的那个项目里继续配置了kinect VS中配置 我的是VS2017版本没得问题
  4. 考虑深度信息,在搜索栏里输入kinect获取深度信息,资料很多,代码也层出不穷。但是很多的都是直接获深度信息图,关于深度数据后面再讨论,这个说几个问题。
    A. 有的代码粘过来会出现“无法打开Nuiapi.h文件”,这是因为你配置的版本是kinect v2,而那个无法打开的文件是v1系列里面的头文件,v2不包含也不是配置的问题了,应该就是不支持,建议换代码 获取深度图代码代码测试可以直接出来深度图,那些黑的地方是无法检测到的位置,噪声还是很明显的。(v1相比于v2更多是调用NUI的方法)
    深度图
    C. 微软上关于kinect v2 的官方文档 官网Kinect v2文档 关于代码中的一些函数接口,在我们打开的SDK Browser v2.0也可以直接get到
    在这里插入图片描述
    D. Kinect Sensor类(属性的功能了解下),代码里主要就是这类在用
    Kinect Sensor类的属性
    E. 关于HRESULE
    百科上的解释:函数返回值。32位,其最高位(bit)如果是0表示成功,1表示错误。具体参见 MSDN(微软开发者网络) 之”Structure of COM Error Codes”说明。我们在程序中如果需要判断返回值,则可以使用比较运算符号;switch开关语句;也可以使用VC提供的宏: HRESULT hr = 调用组件函数;
    返回值判断
    F. 有的代码里有ConvertMat函数,实现转换depth图像到cv::Mat,这是因为
    在这里插入图片描述
    基本都是关于代码,看文档知道有哪些接口怎么用就行
  5. 之前怎么搜索都是直接深度图depth map显示,但我实际上想要获取到深度数据,也就是物体距离传感器的深度值Z,在搜索时选择kinect获取三维坐标
    步骤
    参照代码,直接运行,可以出来深度图,在深度图上点击就可以出现该位置的三维坐标信息
    代码链接
    深度信息获取
    方括号里面是像素坐标x,y,最后一个就是需要的深度Z值,单位是毫米。大小为0的地方,是该位置处侦测不到像素点的深度,同时三维坐标文本信息保存在相应项目文件夹下。要转化为世界坐标系网上也有很多教程,不过考虑到之后要实现的任务,后面可能会考虑用Unity+Kinect获取到场景中的每个像素的深度值,再考虑shader实虚实遮挡的可能性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145957.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • WINRAR 去除广告[通俗易懂]

    WINRAR 去除广告[通俗易懂]WinRAR是目前市面上最优秀的压缩文件的软件之一。我个人非常喜欢的一款软件,以前还好,注册了就没广告了,现在这广告没完没了,注册了还是打开一次弹一次广告,究竟为啥?无意中使用了英文版的,发现并没广告,故去除广告最好的方法是用繁体中文版的,再注册,注册方法如下繁体版去官网下载https://www.rarlab.com/直接给下载页面吧,万一看不懂英语https://www.rarlab.com/d

  • 上传文件块client实现

    上传文件块client实现

  • 描述基于基尼系数法构建决策树的步骤_决策树 基尼系数

    描述基于基尼系数法构建决策树的步骤_决策树 基尼系数决策树的基尼系数计算过程1、基尼指数的计算在介绍具体的计算之前,先从一个例子入手吧。先看看下面这个数据,我们需要通过前三列的特征来推断出最后一列是yes,no1、数据ChestPainGoodBloodCirculationBlockedArteriesHeartDiseaseNoNoNoNoYesYesYesYesYesYesNoNoYesNo???Yesetc…etc…etc…etc…

    2022年10月13日
  • Matlab:语音信号处理与滤波

    Matlab:语音信号处理与滤波文章目录语音信号的采集对语音信号进行频谱分析设计数字滤波器利用滤波器进行滤波语音信号的采集首先利用win自带的录音机(没有的话手机录也行),录下一段语音信号,时间40秒左右。运用MATLAB对语音进行采样[x,fs]=audioread(‘D:\1234.mp3’);plot(x);出现如下的图对语音信号进行频谱分析处理语音信号的时域波形图对语音信号进行快速傅立叶变换,得到信…

  • Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离具体解释[通俗易懂]

    Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离具体解释

  • jsp web应用开发_JSP页面

    jsp web应用开发_JSP页面第1章动态网站开发基础1.        动态网页是指服务器端运行的程序或者网页,它们会随不同客户,不同时间,返回不同的内容。 2.        随着Internet技术的兴起,B/S结构是对C/S结构的一种变化或者改进的结构。在这种结构下,程序完全放在应用服务器上,并通过应用服务器同数据库服务器进行通信。 3.        开发JSP动态网站的步骤如下:a)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号