根据nestk库开发自己的软件


Nestk是RGB Demo中演示程序使用的核心库。 它旨在轻松集成到现有的基于cmake的软件中,并快速访问Kinect功能。

该库建立在OpenCV和QT之上,用于图形部分。 它的一部分也取决于PCL。 它包含或寻找所需的所有其他库。 特别地,包括libfreenect。

它可以用作系统上安装的经典外部库,但最简单的方法是将其包含在其中以将其包含为项目的子目录。

教程开始

这是一个简单的教程开始。 你可以在github上获得完整的代码。 假设你想创建一个名为mysuperdemo的新项目。 然后从github中放入nestk目录或从rgbdemo的版本中提取它:

mkdir mysuperdemo
cd mysuperdemo
git clone https://github.com/rgbdemo/nestk.git
请注意,如果您的项目使用git,您可能需要将其添加为子模块。

那么只需创建一个C Make Lists.txt文件,如下所示:

cmake_minimum_required(VERSION 2.6)
工程设置如下:

PROJECT(mysuperdemo)

SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)

# Default values
SET(NESTK_USE_FREENECT 1)
SET(NESTK_USE_OPENNI 1)

ADD_SUBDIRECTORY(nestk)
## nestk/UseNestk.cmake.in defines variable to use nestk.
## It itself includes nestk/deps/cmake/UseEmbeddedNestkDeps.cmake that
## contains most of the cmake find packages commands.
INCLUDE("${nestk_BINARY_DIR}/UseEmbeddedNestk.cmake")

ADD_EXECUTABLE(mysuperdemo mysuperdemo.cpp)
TARGET_LINK_LIBRARIES(mysuperdemo nestk)
最后在mysuperdemo.cpp中输入你的程序:

#include 
#include 
#include 

using namespace ntk;
using namespace cv;

int main()
{
  FreenectGrabber grabber;
  grabber.initialize();
  // Set camera tilt.
  grabber.setTiltAngle(15);
  grabber.start();

  // Postprocess raw kinect data.
  // Tell the processor to transform raw depth into meters using baseline-offset technique.
  FreenectRGBDProcessor processor;
  processor.setFilterFlag(RGBDProcessor::ComputeKinectDepthBaseline, true);

  // OpenCV windows.
  namedWindow("color");
  namedWindow("depth");
  namedWindow("depth_as_color");

  // Current image. An RGBDImage stores rgb and depth data.
  RGBDImage current_frame;
  while (true)
  {
    grabber.waitForNextFrame();
    grabber.copyImageTo(current_frame);
    processor.processImage(current_frame);

    // Display the color image
    imshow("color", current_frame.rgb());

    // Show the depth image as normalized gray scale
    imshow_normalized("depth", current_frame.depth());

    // Enable switching to InfraRead mode.
    unsigned char c = cv::waitKey(10) & 0xff;
    if (c == 'q')
      exit(0);
  }

  return 0;
}
要编译它(在具有调试信息的释放模式下),请执行以下操作:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make
cd bin
./mysuperdemo

文档
目前还没有文档。 尽管代码部分已经完成,但您可以在nestk / samples中查找一堆示例,并在nestk / tests中查看大量功能的测试。 如果要启用样本和测试构建,则需要分别启用NESTK_BUILD_SAMPLES和NESTK_BUILD_TESTS cmake变量。

你可能感兴趣的:(kinect)