Red de conocimiento informático - Material del sitio web - Cómo crear una imagen de profundidad a partir de una nube de puntos

Cómo crear una imagen de profundidad a partir de una nube de puntos

Primero, abra el archivo de código denominado range_image_creation.cpp en la carpeta Ejemplo 1 del Capítulo 9 del CD-ROM de este libro distribuido por PCL (Point Cloud Learning) China.

Notas explicativas

El siguiente es un análisis de declaraciones clave en el código fuente abierto.

#include lt; pcl/range_image/range_image.hgt; //Archivo de encabezado de imagen de profundidad

int main (int argc, char** argv) {

pcl::PointCloudlt; pcl:.pointXYZgt; pointCloud; //definir el objeto de nube de puntos

for (float y=-0.5f; ylt;=0.5f; y =0.01f) { // bucle para generar datos de puntos

for (float z=-0.5f; zlt; =0.5f; z =0.01f) {

pcl::PointXYZ point;

punto.x = 2.0f - y

punto.y = y

punto.z = z

pointCloud.points.push_back; (point); // Bucle para agregar datos de puntos al objeto de nube de puntos

}

}

pointCloud.points.push_back(point); Bucle para agregar datos de puntos al objeto de nube de puntos

}

}

pointCloud.points.push_back(point); // Bucle para agregar datos de puntos; En el objeto de nube de puntos

width = (uint32_t) pointCloud.points.size();

pointCloud.height = 1 //Establece la información del encabezado del objeto de nube de puntos<; /p >

Este programa primero crea un conjunto de datos como el contenido de datos de la nube de puntos y luego establece la información del encabezado. Todo el proceso de implementación genera una nube de puntos rectangular.

float angularResolution = (float) ( 1.0f * (M_PI/180.0f)); // 1 grado de radianes

float maxAngleWidth = (float) (360.0f * (M_PI) / 180.0f)); // 360.0 grados de radianes

float maxAngleWidth = (float) (360.0f * (M_PI/180.0f)); // 1 grado de radianes