Какая библиотека облаков точек поддерживает синтаксический анализ одного 3D-видеопотока?

У меня есть статичный (с незначительным шумом, как движущаяся трава) объект (скажем, статуя/памятник). У меня есть ардрон, похожий на квадрокоптер, которым я управляю. Он отправляет мне поток 720p с одной камеры. Может ли какая-нибудь библиотека PCL превратить этот видеопоток в облако точек с правильной глубиной?


person DuckQueen    schedule 21.07.2014    source источник
comment
смотреть напр. здесь, чтобы оценить объем необходимой работы.   -  person berak    schedule 31.07.2014


Ответы (2)


Я считаю, что для создания облака точек вам понадобится цветное изображение и изображение глубины (также известное как карта глубины< /а>). Камера, которую вы используете, должна быть способна создавать изображение глубины, что, как я полагаю, обычно делается с помощью инфракрасного света. Microsoft Kinect является примером камеры, которая использует инфракрасное излучение для создания изображения глубины.

Вы можете проверить пример ofxKinect для получения дополнительной информации. Это дает пример облака точек, созданного с помощью kinect.

person aled1027    schedule 30.07.2014

Легко получить облако точек из примеров библиотеки Processing SimpleOpenNI.

Ниже приведен код, который я написал для получения облака точек от Kinect в процессе обработки:

//Code for Getting Point Cloud

import SimpleOpenNI.*;

import processing.opengl.*;

SimpleOpenNI kinect;

void setup()
{

  size( 1024, 768, OPENGL);

  kinect = new SimpleOpenNI( this );

  kinect.enableDepth();

}

void draw()
{

  background( 0);

  kinect.update();

  //translate( width/2,  height/2, -1000);

  rotateX( radians(180));

 stroke(255);

  PVector[] depthPoints = kinect.depthMapRealWorld();

  //the program get stucked in the for loop it loops 307200 times and I don't have any points output

  for( int i = 0; i < depthPoints.length ; i+=5)
  {

    PVector currentPoint = depthPoints[i];
  if (currentPoint.z < 2000.0)
    {
      point(currentPoint.x,  currentPoint.y, currentPoint.z );
    //print("currentPoint :", currentPoint );
    }
  }

}

Вы можете покрыть свой Монумент с помощью Kinect. Но если вам нужно преобразовать выход RGB в данные глубины, это невозможно, потому что Kinect проецирует инфракрасный свет на объекты для расчета глубины, что невозможно при использовании потоковых данных. Даже если вы используете камеру с Kinect, вы можете использовать только исходящий от нее поток RGB. Для глубины лучше всего использовать датчик Kinect. Для лучших результатов используйте новый Kinect версии 2. Ура!!

person Neutrino    schedule 31.07.2014