如何通过opennni用opencv3.0读取kinect数据

博主弱鸡一个,最近想利用kinect实现一个rgbd的稠密重建,但又不想基于ros(其实是还没怎么系统学),那咋办,就把kinect单独抽离出来呗。

网上搜了一下,发现大部分都是kinect2的,关于1的比较少,由于博主装这个也花了一天的时间(确实是个弱鸡啊QAQ),现在就来把里面的坑和步骤都说一下,以便后来人参考。

首先,你需要安装openni,sensor和NITE这三个包,博主一开始也是在网上找了几个人的看了下,发现有的要么是64位(博主32位),要么有的链接提供的过时了,下载下来的文件不全,关键博主还不知道是文件问题,在那里解压了半天一直解压错误,搞得博主都快炸了,所以在这里给大家提供一个官网的下载地址http://www.openni.ru/openni-sdk/openni-sdk-history-2/index.html  在这里你可以下载这三个包,博主选择的分别是最后三个1.5,5.1和1.5系列。

下载完后解压(不会的就百度把),然后先安装openni,不出意外会在文件夹里面找到.sh文件,然后sudo ./install.sh即可,接着安装sensor和NITE,都是按照上述方法做,这里没什么难度。于是你就安装完了openni的驱动了,接下来你可以在openni的文件夹里面的例子测试一下,具体在cd sample/bin/x86-release 然后启动里面的二进制文件./NiViewer,不出意外你可以看到你深度相机的画面了,如果报错,说什么sensor not be connect(大概是这句话吧),要么就是你的包不匹配,要么就是你的相机没供电,请注意深度相机不是简单的把usb连上就行。在这里,博主用官网给的系列版本试过,没有问题。ps,如果在解压的时候提示类似与java的错误,请安装sudo apt-get install openjdk-6-jdk,其实博主推荐大家尽量安装README里面做,很多报错的都能找到。。。

最后就是配置opencv啦,其实很简单就是把camke里面的with——openni 的配置改一下,把off改成on,但是博主一开始实在cmake里面直接改的,发现下cmake生成的log里显示openni没有配置好,这就很坑了,博主linux不是很懂啊,怎么办,疯狂百度,终于知道了,实在cmake时加这么一条语句。然后就是简单的make   sudo make install 啦。现在opencv的videocapture类就支持kinect啦

cmake -D/ WITH_OPENNI=ON /..

直接上opencv的测试代码
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
#include <pcl/point_types.h> 
#include <pcl/io/pcd_io.h> 
#include <pcl/visualization/pcl_visualizer.h>
using namespace cv;
using namespace std;
  
int main(int argc,char** argv) {  
      
  
    VideoCapture capture(900);  
 
  
  
    for(;;){  
        Mat depthMap ;  
        Mat rgbImage ;  
  
        capture.grab();  
  
        //Depth values in mm (CV_16UC1),d mm 
        capture.retrieve(depthMap,CV_CAP_OPENNI_DEPTH_MAP);  
          
        //color image (CV_8UC3)  
        capture.retrieve(rgbImage,CV_CAP_OPENNI_BGR_IMAGE);  
              
        imshow(rgb_wnd,rgbImage);  
        imshow(depth_wnd,depthMap);  
  
        if ( waitKey(30) >= 0 ) {  
            break ;  
        }  
    }  
    return 0 ;  
}  

注意里面的pcl博主由于做三维重建添加的,各位测试不需要,好了,关于如何用opencv使用kinect就到这里了,希望可以帮到你。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值