配置openni2.2
方法一:
使用后期维护的一个版本
https://github.com/occipital/OpenNI2
具体可以参考安装说明
方法二:
用原版的 编译后的库文件
在解压缩之后 运行 install.sh
会生成环境变量文件
Environment variables
cat OpenNIDevEnvironment >> ~/.bashrc
cat NiTEDevEnvironment >> ~/.bashrc
OPENNI2_INCLUDE: full path to OpenNI2/Include
OPENNI2_REDIST: full path to OpenNI2/arch-Release
NITE2_INCLUDE: full path to NiTE-OS-arch-2.x
NITE2_REDIST64 or NITE2_REDIST: full path to NiTE-OS-arch-2.x/Redist
DeviceOpen using default: no devices found
Press any key to continue . . .
Follow the installation instructions for OpenNI2 and NiTE2 by running the respective install.sh scripts. These scripts will create two files called OpenNIDevEnvironment and NiTEDevEnvironment. To copy their content permanently into your .bashrc, do:
At the end of this process, you will have these environment variables:
where OS = Linux, arch = x64 or x86.
如果运行不了,请看这个部分
我的是Ubuntu16.04 可能是系统版本的问题
对于以上的方法一 我一直没有出现问题,编译之后即可打开NIview
但是对于方法二,一直提示找不到设备
bliss:~/OpenNI_NITE/OpenNI-Linux-x64-2.2/Tools$ ./NiViewer
openDevice failed:
DeviceOpen using default: no devices found
Press any key to continue . . .
查找了USB设备
$ lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 093a:2521 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 002: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
Bus 002 Device 007: ID 1d27:0601 ASUS
于是开始怀疑是动态链接库不对应
这里参考了:
https://codeyarns.com/2014/05/06/depthsense-error-some-dll-files-are-missing/?nsukey=Gn3%2BCsCBZVu23RHawJ24BGiVjymJIE%2FhzLTCNdmAhrwujK8Jd5WzltM1Y7psCJNugNH2Cb531tIJ%2BJOzwqJChSXoah3HoTfqHw6svFd4apSftpFfBaLfGg9Kl8ig5Oe2AAF6ANvU5F4OYVR6Yb5l8tov0fqn44jZUyeEIRxqEV9cBYNebH%2F79N1AzfZJp6pg
试了试 查看应用和对应的库文件
$ ldd NiViewer
linux-vdso.so.1 => (0x00007ffc6af45000)
libglut.so.3 => /usr/lib/x86_64-linux-gnu/libglut.so.3 (0x00007fc2a4155000)
libGL.so.1 => /usr/lib/nvidia-367/libGL.so.1 (0x00007fc2a3ec6000)
libOpenNI2.so => ./libOpenNI2.so (0x00007fc2a3c49000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc2a38c1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc2a35b8000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc2a33a0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc2a2fd7000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc2a2dba000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc2a2bb1000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fc2a2877000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fc2a2667000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007fc2a2460000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc2a225c000)
libGLX.so.0 => /usr/lib/nvidia-367/libGLX.so.0 (0x00007fc2a202b000)
libGLdispatch.so.0 => /usr/lib/nvidia-367/libGLdispatch.so.0 (0x00007fc2a1d41000)
/lib64/ld-linux-x86-64.so.2 (0x000055f96523b000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fc2a1b1f000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fc2a190c000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fc2a1708000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fc2a1501000)
可见 动态库都对应上了,下面试着查看一下二进制库文件的对应情况
$ ldd /libxxxxxx.so
libudev.so.0 => not found
定位库文件
于是我们把需要的库和现存的库设置映射关系
配置opencv2.4.13 可以参考官方网站
http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html
配置libfreenect
参考官方指南 https://github.com/OpenKinect/libfreenect2/blob/master/README.md#linux
在安装配置中,尽量不使用Ubuntu14.04 而是其他
最后,要配置Kinect2和openni2,nite2
需要将libfreenect2/build/lib中的libfreenect2-openni2.so 和 libfreenect2-openni2.so.0放置在OpenNI2\Tools\OpenNI2\Drivers中
然后运行OpenNI2\Tools\NiViewer
例如,加入在
之后运行路径中Tool文件夹中的NiViewer即可