PCL学习(二)常见图形的可视化

代码

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
viewer.setBackgroundColor (1, 1, 1);
pcl::PointXYZ ball;
ball.x = 1.0;
ball.y = 0;
ball.z = 0;
viewer.addSphere (ball, 10, “sphere”, 0);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果
PCL学习(二)常见图形的可视化

  • 立方体

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
viewer.addCube(0, 0.1, 0, 0.1, 0, 0.1, 1, 0, 0, “cube”, 0);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果
PCL学习(二)常见图形的可视化

  • 圆形

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
pcl::ModelCoefficients circle_coeff;
circle_coeff.values.resize(3);
circle_coeff.values[0] = 1;
circle_coeff.values[1] = 1;
circle_coeff.values[2] = 1;
viewer.addCircle(circle_coeff, “circle”, 0);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果
PCL学习(二)常见图形的可视化

  • 直线

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
pcl::PointXYZ p1, p2, p3, p4;
p1.x = 0; p1.y = 0; p1.z = 0;
p2.x = 1; p2.y = 0; p2.z = 0;
viewer.addLine(p1, p2, 0, 1, 0, “line1”, 0);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果
PCL学习(二)常见图形的可视化

  • 矩形

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
pcl::PointXYZ p1, p2, p3, p4;
p1.x = 0; p1.y = 0; p1.z = 0;
p2.x = 1; p2.y = 0; p2.z = 0;
viewer.addLine(p1, p2, 0, 1, 0, “line1”, 0);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果

PCL学习(二)常见图形的可视化

  • 平面

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
pcl::ModelCoefficients plane;
plane.values.push_back(0.0);
plane.values.push_back(0.0);
plane.values.push_back(1.0);
plane.values.push_back(0.0);
viewer.addPlane(plane, “plane”, 0);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果
PCL学习(二)常见图形的可视化

  • 圆锥

#include <pcl/visualization/cloud_viewer.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>

void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
pcl::ModelCoefficients cone;
cone.values.push_back(0);
cone.values.push_back(0);
cone.values.push_back(0);
cone.values.push_back(0.0);
cone.values.push_back(1.0);
cone.values.push_back(0.0);
cone.values.push_back(5.0);
viewer.addCone(cone, “cone”);
}

int main ()
{
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
pcl::visualization::CloudViewer viewer (“My Cloud Viewer”);
viewer.runOnVisualizationThreadOnce (viewerOneOff);
while (!viewer.wasStopped ())
{
}
return 0;
}

效果
PCL学习(二)常见图形的可视化