ubuntu16.04 编译和配置openni2 opencv2 libfreenect2(OpenKinect)

配置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


定位库文件

$ locate libudev.so
/lib/x86_64-linux-gnu/libudev.so.1
/lib/x86_64-linux-gnu/libudev.so.1.6.4
/usr/lib/x86_64-linux-gnu/libudev.so

于是我们把需要的库和现存的库设置映射关系

sudo ln -s /lib/x86_64-linux-gnu/libudev.so.1.6.4 /lib/x86_64-linux-gnu/libudev.so.0

配置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即可


 
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值