我正在尝试使用QT创建一个简单的应用程序来显示点云。但是,PCL可视化工具在
处崩溃pviz.addPointCloud<pcl::PointXYZ>(cloud_xyz,"cloud1");
是否有我缺少的初始化?
#include <QApplication>
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <iostream>
#include <thread>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
pcl::visualization::PCLVisualizer pviz ("test_viz");
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_xyz (new pcl::PointCloud<pcl::PointXYZ>);
for (float y = -0.5f; y <= 0.5f; y += 0.01f)
{
for (float z = -0.5f; z <= 0.5f; z += 0.01f)
{
pcl::PointXYZ point;
point.x = 2.0f - y;
point.y = y;
point.z = z;
cloud_xyz->points.push_back (point);
}
}
cloud_xyz->width = cloud_xyz->points.size ();
cloud_xyz->height = 1;
std::cerr<<"Cloud Gen";
pviz.addPointCloud<pcl::PointXYZ>(cloud_xyz,"cloud1");
std::cerr<<"Cloud Add";
pviz.setBackgroundColor(0, 0, 0.1);
pviz.initCameraParameters();
return a.exec();
}
这只是一个演示程序,因此我只是想添加点云,我没有将它保存在循环或单独的线程中。