接上文配置成功后显示一个pcd文件的代码及效果
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_mainwindow.h"
#include <vtkRenderWindow.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <stdlib.h>
#include <memory.h>
#include <stdio.h>
#include <QTimer>
#include <vector>
class mainwindow : public QMainWindow
{
Q_OBJECT
public:
mainwindow(QWidget *parent = Q_NULLPTR);
~mainwindow();
private:
Ui::mainwindowClass ui;
pcl::visualization::PCLVisualizer::Ptr viewer;
void on_openButton_clicked();//定义槽函数
};
#include "mainwindow.h"
#include <QPushButton>
#include <QLineEdit>
mainwindow::mainwindow(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
ui.widget_3->SetRenderWindow(viewer->getRenderWindow());
viewer->setupInteractor(ui.widget_3->GetInteractor(), ui.widget_3->GetRenderWindow());
ui.widget_3->update();
connect(ui.pushButton, &QPushButton::clicked, this, &mainwindow::on_openButton_clicked);
}
mainwindow::~mainwindow()
{
}
void mainwindow::on_openButton_clicked()
{
//加载pcd文件
pcl::PointCloud<pcl::PointXYZ>::Ptr cloudPoints(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::loadPCDFile("rabbit.pcd", *cloudPoints);
//移除窗口点云
viewer->removeAllPointClouds();
//点云设置
//设置点云颜色
pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud_color(cloudPoints, 255, 255, 255);
//点云颜色渲染
viewer->addPointCloud(cloudPoints, cloud_color, "cloud");
//设置点云大小
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "cloud");
viewer->resetCamera();
ui.widget_3->update();
}
运行结果