windows 下 qt 显示 点云
实现要确保 qt 配置了pcl 和vtk
创建项目








创建txt 修改为 pri


添加 include(1.pri 的路径) 重新构建

就在1.pri 添加pcl 环境 和 lib

INCLUDEPATH += F:/jmqt/PCL_1.11.1/include/pcl-1.11 \F:/jmqt/PCL_1.11.1/3rdParty/VTK/include/vtk-8.2 \F:/jmqt/PCL_1.11.1/3rdParty/Boost/include/boost-1_74 \F:/jmqt/PCL_1.11.1/3rdParty/Eigen/eigen3 \F:/jmqt/PCL_1.11.1/3rdParty/FLANN/include \F:/jmqt/PCL_1.11.1/3rdParty/OpenNI2/include \F:/jmqt/PCL_1.11.1/3rdParty/Qhull/include \LIBS += F:/jmqt/PCL_1.11.1/lib/*.lib \F:/jmqt/PCL_1.11.1/3rdParty/Qhull/lib/*.lib \F:/jmqt/PCL_1.11.1/3rdParty/Boost/lib/*.lib \F:/jmqt/PCL_1.11.1/3rdParty/VTK/lib/*.lib \
配置完成开始设计界面

添加一个按钮
把wigdet 提升 QVTKWidget



下面 查看是否提升成功

按钮转到槽


开始运行

搜索 dll 并且 进行复制





在次运行 发现 空白 并且 闪退

解决添加 头文件
#include
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);

添加一些头文件
#include
#include "QDebug"
#include
#include
#include
#include
#include //pcd 读写类相关的头文件。
#include
#include //PCL中支持的点类型头文件。
#include
#include
#include "vtkRenderWindow.h"
#include
#include
//消除vtk 警告——不弹出vtkOutputWindow窗口VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingFreeType);
//声明std
using namespace std;

vtkOutputWindow::SetGlobalWarningDisplay(0);//强制消除警告
在按钮里面 写 初始化+ 功能

void MainWindow::on_pushButton_clicked()
{pcl::PointCloud::Ptr cloud;boost::shared_ptr viewer;cloud.reset(new pcl::PointCloud);viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));viewer->addPointCloud(cloud, "cloud");//声明+初始化vtkui->widget->SetRenderWindow(viewer->getRenderWindow());viewer->setupInteractor(ui->widget->GetInteractor(), ui->widget->GetRenderWindow());ui->widget->update();QString fileName = QFileDialog::getOpenFileName(this, "Open PointCloud", ".", "Open PCD files(*.pcd)");pcl::io::loadPCDFile(fileName.toStdString(), *cloud);viewer->updatePointCloud(cloud, "cloud");viewer->resetCamera();ui->widget->update();}
运行

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
