您的位置:首页 > 运维架构

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

2017-02-22 17:40 507 查看

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


可见 动态库都对应上了,下面试着查看一下二进制库文件的对应情况



定位库文件


$ 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[/code] 

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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv