QT vtk6.3+pcl1.8的配置以及简单使用

创建一个mainwindow工程,拖入VTK控件

1.配置(.pro文件) 添加相应路径

INCLUDEPATH += /usr/local/include/vtk-6.3 \ # vtk
               /usr/include/pcl-1.8 \       # pcl
               /usr/include/eigen3          # eigen3 (pcl need)
LIBS += /usr/local/lib/libvtk*.so \            # vtk lib
        /usr/lib/x86_64-linux-gnu/libpcl*.so \ # pcl lib
        /usr/lib/x86_64-linux-gnu/libboost*.so # boost (pcl need)

2.主函数(main文件) 初始化

#include <vtkAutoInit.h>
VTK_MODULE_INIT( vtkRenderingOpenGL );
VTK_MODULE_INIT( vtkInteractionStyle );

 3.主窗体(mainwindow.h 或者.cpp) 添加相应头文件

#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <vtkRenderWindow.h> 
//解决invalid static_cast from type 'vtkObjectBase* const' to type 'vtkRenderWindow*'

 4.主窗体构造函数中 读取点云并显示

// 创建以及关联    
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("Viewer",false)); // name noshow
viewer->setupInteractor(ui->qvtkWidget->GetRenderWindow()->GetInteractor (), ui->qvtkWidget->GetRenderWindow ());
ui->qvtkWidget->SetRenderWindow (viewer->getRenderWindow ());
// 读取以及显示
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr tmp( new pcl::PointCloud<pcl::PointXYZRGBA>() );
pcl::io::loadPCDFile("/home/gy/1.pcd", *tmp);
viewer->addPointCloud(tmp,"cs");

5.结果图片

 QT vtk6.3+pcl1.8的配置以及简单使用QT vtk6.3+pcl1.8的配置以及简单使用

上一篇:chrome与pdf的事情


下一篇:运用学过的设计原则和思想完善之前讲的性能计数器项目(下)