树莓派+opencv+xtion/kinect
来源:互联网 发布:淘宝食用农产品标准 编辑:程序博客网 时间:2024/05/18 21:49
1. 安装xtion/kinect 驱动
1.1. 安装支持库
sudo apt-get updatesudo apt-get install g++ python libusb-1.0-0-dev freeglut3-devsudo apt-get install doxygen graphviz mono-completesudo apt-get install openjdk-7-jdk
1.2. 下载驱动
git clone https://github.com/OpenNI/OpenNI.git
git clone git://github.com/avin2/SensorKinect.git (如果你的是kinect 下载此项)
git clone https://github.com/PrimeSense/Sensor.git (如果你的是xtion下载此项)
分别修改OpenNI 和Sensor
两个文件夹下的Platform.Arm 文件,将其中的
-mfloat-abi=softfp 改为 -mfloat-abi=hard
操作如下图
最后到 software/OpenNI/Platform/Linux/Bin/Arm-Release目录执行(其中的software为自己建立的文件夹)
cd ~/software/OpenNI/Platform/Linux/Bin/Arm-Releasesudo ./Sample-NiCRead
执行完毕,如果遇到 usb transfer timeout 的情况,则是树莓派的usb供电不足,不能启动xtion/kinect
解决方法:
cd /bootsudo vim config.txt
在最后一行加入
max_usb_current=1
重启
2. 安装opencv
sudo apt-get install libcv-dev
安装中如果遇到 Failed to fetch http://xxx.deb, 如下图所示的情况
解决方法:
执行:
1. wget http://xxx.deb
2. sudo dpkg -i xxx.deb
3. 重新执行
sudo apt-get install libcv-dev
3. 使用opencv+openni 读取xtion的数据(彩色图和深度图)
新建loadimage.cpp
#include <stdlib.h> #include <iostream> #include <string> #include <XnCppWrapper.h> #include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp> using namespace std; using namespace cv; void CheckOpenNIError( XnStatus result, string status ) { if( result != XN_STATUS_OK ) cerr << status << " Error: " << xnGetStatusString( result ) << endl; } int main( int argc, char** argv ) { XnStatus result = XN_STATUS_OK; xn::DepthMetaData depthMD; xn::ImageMetaData imageMD; namedWindow("depth",1); namedWindow("image",1); char key=0; // context xn::Context context; result = context.Init(); CheckOpenNIError( result, "initialize context" ); // creategenerator xn::DepthGenerator depthGenerator; result = depthGenerator.Create( context ); CheckOpenNIError( result, "Create depth generator" ); xn::ImageGenerator imageGenerator; result = imageGenerator.Create( context ); CheckOpenNIError( result, "Create image generator" ); //map mode XnMapOutputMode mapMode; mapMode.nXRes = 640; mapMode.nYRes = 480; mapMode.nFPS = 30; result = depthGenerator.SetMapOutputMode( mapMode ); result = imageGenerator.SetMapOutputMode( mapMode ); depthGenerator.GetAlternativeViewPointCap().SetViewPoint( imageGenerator ); result = context.StartGeneratingAll(); Mat cvDepthImg; Mat cvBGRImg; context.WaitAndUpdateAll( ); while( (key!=27) && !(result = context.WaitNoneUpdateAll( ))) { //get meta data depthGenerator.GetMetaData(depthMD); imageGenerator.GetMetaData(imageMD); //OpenCV output Mat cvDepthRawImg(depthMD.FullYRes(), depthMD.FullXRes(), CV_16UC1, (char *)depthMD.Data()); cvDepthRawImg.convertTo(cvDepthImg, CV_8U, 255.0/(depthMD.ZRes())); imshow("depth", cvDepthImg);Mat cvRGBImg(imageMD.FullYRes(), imageMD.FullXRes(), CV_8UC3, (char *)imageMD.Data()); cvtColor(cvRGBImg, cvBGRImg, CV_RGB2BGR); imshow("image", cvBGRImg); key=cvWaitKey(20); } //destroy destroyWindow("depth"); destroyWindow("image"); context.StopGeneratingAll(); context.Release(); return 0; }
新建makefile
CC = g++TARGET = loadimageexport CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/niSRCS = loadimage.cppOBJS = $(SRCS:.cpp=.o)# 库文件DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui -lOpenNI# 链接可执行文件$(TARGET):$(OBJS) $(CC) -o $@ $^ $(DLIBS)clean: rm -rf $(TARGET) $(OBJS)# 编译规则 $@代表目标文件 $<代表第一个依赖文件%.o:%.cpp $(CC) -o $@ -c $<
执行
make
0 0
- 树莓派+opencv+xtion/kinect
- Asus WAVI Xtion: 我不是山寨 Kinect
- 深度图转点云(Xtion/Kinect/OB等)
- opencv 调用openni图像-xtion
- Kinect +NI+OPENCV
- Kinect+OpenNI+OpenCV+VS2010
- Kinect+OpenNI+OpenCV使用
- 华硕Xtion Pro开发环境搭建(1)-OpenCV配置
- 采用opencv读取xtion pro live的数据
- 玩OpenNI的必不可少的工具是微软的Kinect或者华硕的Xtion
- 借助软件 KSAN3D,用Kinect 或 xtion 扫描物体实现360完整模型
- turtlebot(hydro)学习笔记七:ASUS Xtion pro live替换kinect
- ROS下订阅topic,显示并保存Kinect(Xtion pro live )深度点云图
- ROS下订阅topic,显示并保存Kinect(Xtion pro live )深度摄像机的RGB图像
- 从Xtion(Kinect)生成的PCD文件中读取点云数据
- Kinect桥接OpenCV代码简介Kinect Bridge With OpenCV
- kinect for windows 2.0+opencv
- kinect+opencv之环境配置
- USB学习-虚拟串口
- node.js之koa2快速项目目录分析
- 重定位
- 2017年4月1日
- Python3 (入门1) HelloWorld
- 树莓派+opencv+xtion/kinect
- 先进先出页面淘汰算法(FIFO)
- 内存分配
- 电商那些年,我摸爬打滚出的高并发架构实战精髓(续)
- Android Studio生成自定义jar包
- hdu1730 sg函数!
- 递归递推练习 E
- 操作系统常考知识点总结
- 递推递归练习 中的O题