为了让kinect可以在我的ubuntu上用opencv读出来,按照别人的教程安装libfreenect+openni2,中间遇到各种错误,果然可以相信的人只有自己,所以我还是记录一下搭建环境的全过程以备后用.
1.安装依赖包
sudo apt-get install git g++ cmake libxi-dev libxmu-dev libusb-1.0-0-dev pkg-config freeglut3-dev build-essential cmake
tips:cmake 最低版本3.1 默认安装的cmake2.8需要删除然后手动安装3.1版本(http://blog.csdn.net/geek_tank/article/details/70175905)
2.从github上拿到libfreenect和openni2的源码,解压在home目录下
3.先安装freenect
cd libfreenect
mkdir build
cd build
cmake .. -DBUILD_OPENNI2_DRIVER=ON
make
4.把生成的libFreenectDriver.so 复制到Openni相应的文件夹里
cp -L ~/libfreenect/build/lib/OpenNI2-FreenectDriver/libFreenectDriver.so
5.usb连接kinect, lsusb 会显示
结果以上并不能在linux opencv中使用, 想要在opencv中使用,需要按照opencv官网教程
https://docs.opencv.org/2.4.10/doc/user_guide/ug_kinect.html
使用openni+SensorKinect, 源码从github拿
git clone https://github.com/OpenNI/OpenNI.git
git clone https://github.com/avin2/SensorKinect.git
先装OpenNI后装SensorKinect, 安装下载的文件夹里的README文件安装,在安装SensorKinect的时候有个坑,解决方法参照
https://github.com/avin2/SensorKinect/pull/5/files#diff-181b87ab5e036090aa9a6cb65e715212
安装的时候如果按照README里的教程找不到install.sh文件就进入下一层文件夹里找
安装好之后,需要重新用源码编译opencv, 用cmake-gui,把build with Openni选上,configure,然后设置Openni的库, SensorKinect的bin文件的路径. 安装设置好之后基本就可以用opencv的videocapture读取kinect图像了.
目前还是有一些问题的, kinect的一些参数用不了,不能直接videocapture cap()拿彩色图像,不能设定Mode_present, 需要grab()之后 retrieve(CAP_OPENNI_BGR_IMAGE)才能迂回拿到.感觉还是哪里有问题