请各位注意是kinect V2,kinect有两个版本,V1和V2
一、安装
1、Download libfreenect2 source
git clone git@github.com:DongdongBai/libfreenect2.git
cd libfreenect2
2、Download upgrade deb files
cd depends; ./download_debs_trusty.sh
3、Install build tools
sudo apt-get install build-essential cmake pkg-config
4、先安装Nvidia显卡驱动和cuda,然后源码编译Opencv(本步骤的顺序不可以颠倒,因为Opencv在编译时会查找显卡驱动的版本(是使用集成显卡还是独立显卡呢,以及独立显卡驱动的版本),如果先装Opencv,则Opencv会使用系统的默认的继承显卡驱动,后面安装Nvidia驱动将导致Opencv无法正常使用)
5、Install libusb. The version must be >= 1.0.20.
sudo dpkg -i debs/libusb*deb
6、Install TurboJPEG
sudo apt-get install libturbojpeg libjpeg-turbo8-dev
7、 Install OpenGL
sudo dpkg -i debs/libglfw3*deb
sudo apt-get install -f
sudo apt-get install libgl1-mesa-dri-lts-vivid
如果最后一步出现依赖错误,直接忽略,无需做任何处理
8、Build
cd ..
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2 -DENABLE_CXX11=ON
make
make install
9、执行Cmake时出现
CMake Warning at CMakeLists.txt:405 (ADD_LIBRARY):
Cannot generate a safe runtime search path for target freenect2 because
files in some directories may conflict with libraries in implicit
directories:
runtime library [libOpenCL.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/usr/local/cuda-7.5/lib64
Some of these libraries may not be found correctly.
CMake Warning at CMakeLists.txt:451 (ADD_LIBRARY):
Cannot generate a safe runtime search path for target freenect2-openni2
because files in some directories may conflict with libraries in implicit
directories:
runtime library [libOpenCL.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/usr/local/cuda-7.5/lib64
Some of these libraries may not be found correctly.
CMake Warning at examples/CMakeLists.txt:76 (ADD_EXECUTABLE):
Cannot generate a safe runtime search path for target Protonect because
files in some directories may conflict with libraries in implicit
directories:
runtime library [libOpenCL.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/usr/local/cuda-7.5/lib64
Some of these libraries may not be found correctly.
解决方法:在项目的cmake_modules文件夹中的FindOpenCL.cmake中添加下面两句话即可(本教程中clone源代码的CMakeLists.txt已经做了更改,不回出现上述问题,请放心使用):
SET(OpenCL_INCLUDE_DIR /usr/local/cuda/include/ )
SET(OpenCL_LIBRARY /usr/local/cuda-7.5/lib64/libOpenCL.so)
10、编译时如果出现以下错误:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h(432): error: identifier "nullptr" is undefined
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h(432): error: expected a ";"
/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h(190): error: expected a ";"
/usr/include/c++/4.8/exception(63): error: expected a ";"
/usr/include/c++/4.8/exception(68): error: expected a ";"
/usr/include/c++/4.8/exception(76): error: expected a ";"
/usr/include/c++/4.8/exception(83): error: expected a ";"
/usr/include/c++/4