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;
}
效果
- 立方体
#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;
}
效果
- 圆形
#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;
}
效果
- 直线
#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;
}
效果
- 矩形
#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;
}
效果
- 平面
#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;
}
效果
- 圆锥
#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;
}
效果