ubuntu18.04安装kinect驱动
https://github.com/OpenKinect/libfreenect2
opencv4.5
首先安装依赖
安装工具 sudo apt-get install build-essential cmake pkg-config 安装libusb sudo apt-get install libusb-1.0-0-dev 安装TurboJPEG sudo apt-get install libturbojpeg0-dev sudo apt-get intsall libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev
安装OpenGL
sudo apt-get install libglfw3-dev
安装OpenNI2
sudo apt-get install libopenni2-dev
安装
sudo apt-get install beignet-dev
git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2
mkdir build
cd build
cmake ..
make
sudo make install
sudo cp libfreenect2/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
进入build目录
./bin/Protonect
查看测试
安装 iai_kinect2
cd ~/catkin_ws/src/ git clone https://github.com/code-iai/iai_kinect2.git cd iai_kinect2 rosdep install -r --from-paths .
如果这里出错则
rosdep install --from-paths . --ignore-src -r
然后编译
该类错误之需要将 CV_IMWRITE_PNG_COMPRESSION 改为cv::IMWRITE_PNG_COMPRESSION 即可
/home/miao/catkin_ws/src/iai_kinect2/kinect2_calibration/src/kinect2_calibration.cpp: In constructor ‘Recorder::Recorder(const string&, const string&, const string&, const string&, Source, bool, bool, const Size&, float)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_calibration/src/kinect2_calibration.cpp:113:22: error: ‘CV_IMWRITE_PNG_COMPRESSION’ was not declared in this scope params.push_back(CV_IMWRITE_PNG_COMPRESSION); ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::initCompression(int32_t, int32_t, bool)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:464:28: error: ‘CV_IMWRITE_JPEG_QUALITY’ was not declared in this scope compressionParams[0] = CV_IMWRITE_JPEG_QUALITY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:466:28: error: ‘CV_IMWRITE_PNG_COMPRESSION’ was not declared in this scope compressionParams[2] = CV_IMWRITE_PNG_COMPRESSION; ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:468:28: error: ‘CV_IMWRITE_PNG_STRATEGY’ was not declared in this scope compressionParams[4] = CV_IMWRITE_PNG_STRATEGY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:469:28: error: ‘CV_IMWRITE_PNG_STRATEGY_RLE’ was not declared in this scope compressionParams[5] = CV_IMWRITE_PNG_STRATEGY_RLE; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::initCompression(int32_t, int32_t, bool)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:464:28: error: ‘CV_IMWRITE_JPEG_QUALITY’ was not declared in this scope compressionParams[0] = CV_IMWRITE_JPEG_QUALITY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:466:28: error: ‘CV_IMWRITE_PNG_COMPRESSION’ was not declared in this scope compressionParams[2] = CV_IMWRITE_PNG_COMPRESSION; ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:468:28: error: ‘CV_IMWRITE_PNG_STRATEGY’ was not declared in this scope compressionParams[4] = CV_IMWRITE_PNG_STRATEGY; ^~~~~~~~~~~~~~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:469:28: error: ‘CV_IMWRITE_PNG_STRATEGY_RLE’ was not declared in this scope compressionParams[5] = CV_IMWRITE_PNG_STRATEGY_RLE; ^~~~~~~~~~~~~~~~~~~~~~~~~~~
这个错误需要添加头文件#include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgproc/types_c.h>
/home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::receiveColor()’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1103:45: error: ‘CV_BGRA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_HD], CV_BGRA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1107:45: error: ‘CV_RGBA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_HD], CV_RGBA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1107:45: note: suggested alternative: ‘CV_RGB’ cv::cvtColor(tmp, images[COLOR_HD], CV_RGBA2BGR); ^~~~~~~~~~~ CV_RGB /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::processIrDepth(const cv::Mat&, std::vector<cv::Mat>&, const std::vector<Kinect2Bridge::Status>&)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1183:50: error: ‘CV_BGRA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_SD_RECT], CV_BGRA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1187:50: error: ‘CV_RGBA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_SD_RECT], CV_RGBA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1187:50: note: suggested alternative: ‘CV_RGB’ cv::cvtColor(tmp, images[COLOR_SD_RECT], CV_RGBA2BGR); ^~~~~~~~~~~ CV_RGB /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::processColor(std::vector<cv::Mat>&, const std::vector<Kinect2Bridge::Status>&)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1250:55: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_HD], images[MONO_HD], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1254:65: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_HD_RECT], images[MONO_HD_RECT], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1258:57: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_QHD], images[MONO_QHD], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1262:67: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_QHD_RECT], images[MONO_QHD_RECT], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::receiveColor()’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1103:45: error: ‘CV_BGRA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_HD], CV_BGRA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1107:45: error: ‘CV_RGBA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_HD], CV_RGBA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1107:45: note: suggested alternative: ‘CV_RGB’ cv::cvtColor(tmp, images[COLOR_HD], CV_RGBA2BGR); ^~~~~~~~~~~ CV_RGB /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::processIrDepth(const cv::Mat&, std::vector<cv::Mat>&, const std::vector<Kinect2Bridge::Status>&)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1183:50: error: ‘CV_BGRA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_SD_RECT], CV_BGRA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1187:50: error: ‘CV_RGBA2BGR’ was not declared in this scope cv::cvtColor(tmp, images[COLOR_SD_RECT], CV_RGBA2BGR); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1187:50: note: suggested alternative: ‘CV_RGB’ cv::cvtColor(tmp, images[COLOR_SD_RECT], CV_RGBA2BGR); ^~~~~~~~~~~ CV_RGB /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp: In member function ‘void Kinect2Bridge::processColor(std::vector<cv::Mat>&, const std::vector<Kinect2Bridge::Status>&)’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1250:55: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_HD], images[MONO_HD], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1254:65: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_HD_RECT], images[MONO_HD_RECT], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1258:57: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_QHD], images[MONO_QHD], CV_BGR2GRAY); ^~~~~~~~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_bridge/src/kinect2_bridge.cpp:1262:67: error: ‘CV_BGR2GRAY’ was not declared in this scope cv::cvtColor(images[COLOR_QHD_RECT], images[MONO_QHD_RECT], CV_BGR2GRAY);
在改文件添加#include <opencv2/imgproc/imgproc_c.h>
home/miao/catkin_ws/src/iai_kinect2/kinect2_viewer/src/viewer.cpp: In member function ‘void Receiver::imageViewer()’: /home/miao/catkin_ws/src/iai_kinect2/kinect2_viewer/src/viewer.cpp:279:84: error: ‘CV_AA’ was not declared in this scope cv::putText(combined, oss.str(), pos, font, sizeText, colorText, lineText, CV_AA); ^~~~~ /home/miao/catkin_ws/src/iai_kinect2/kinect2_viewer/src/viewer.cpp:279:84: note: suggested alternative: ‘CV_MSA’