win10+vs2017+安装openni2读取oni文件
参考博客:https://blog.csdn.net/ding977921830/article/details/74428743
1.OPENNI安装
在官网上可以下载对应版本的OpenNI,按照提示进行安装。
安装过程中,安装程序会自动建立了OpenNI的环境变量,如果没有自动建立,那么环境变量的值要根据自己实际安装位置来新建变量,见图:
建议:如果要使用openni2+Kinect2.0开发,openni2最好装在默认目录(系统盘),不然可能依然检测不到设备。
2.打开vs2017,建立一个win32控制台应用程序,添加一个cpp文件。
3.VS环境配置
如果只需要临时使用openni的环境,右击项目名称(或解决方案),选择属性,对项目属性进行配置。
若是要经常使用openni的环境,可以直接选择:视图->其他窗口->属性管理器->debug x64->Microsoft.Cpp.x64.user(如果使用32位环境,更改Win32即可)双击打开属性页。
- VC++目录->包含目录,添加$(OPENNI2_INCLUDE64)(或选择对应路径)
- VC++目录->库目录,添加$(OPENNI2_LIB64)(或选择对应路径)
- 链接器->输入->附加依赖项,添加OpenNI2.lib
4.遇到问题及解决方案
- 问题1:因为计算机中丢失OpenNI2.dll,尝试重新安装该程序以解决问题。
方法:从安装目录中找到OpenNI2.dll文件,复制粘贴到C:\Windows\SysWOW64 目录下
- 问题2:0x00007FFD0691FA60 (opencv_world344d.dll)处(位于 openNI.exe 中)引发的异常: 0xC0000005: 读取位置 0x000002C31BC64090 时发生访问冲突。
方法:将openni的安装目录下文件Redist的所有文件复制粘贴到工程的Debug目录下。
- 问题3:使用sprintf写文件报错。
方法:右键工程名–>属性–>C/C++–>预处理器–>预处理器定义,编辑右边输入框加入: _CRT_SECURE_NO_WARNINGS
5.特别说明
读写oni文件电脑不需要连接Kinect设备,也不存在Kinect2与openni不兼容的问题,虽然运行openni2的sample或NiViewer会显示 ”no devices found”,但依然可以读取oni文件。
如果使用OpenCV做可视化,OpenCV搭建和openni类似,不再累述。OpenCV不用使用环境变量,直接选择到对应文件夹即可。
总结一下,vs的环境搭建基本都是这三步,添加包含目录,添加库目录,添加附加依赖项,其他的各种方法基本都是修改的这三个的子类,会直接从这三个父类继承值。