网站建设高端网站,地图上搜索不到的公司正规吗,东莞企业大全名录,云服务器价格对照表开发环境 ubuntu 20.04 VTK 8.2 编译VTK
下载源码 git clone --recursive https://gitlab.kitware.com/vtk/vtk.git 使用版本管理工具#xff0c;切换版本到8.2
更改编译选项#xff0c;这里使用cmake-gui进行配置
1、编译类型修改为Release
2、安装路径可以设置#xf…开发环境 ubuntu 20.04 VTK 8.2 编译VTK
下载源码 git clone --recursive https://gitlab.kitware.com/vtk/vtk.git 使用版本管理工具切换版本到8.2
更改编译选项这里使用cmake-gui进行配置
1、编译类型修改为Release
2、安装路径可以设置也可以不设置不设置默认安装到/usr/local目录下
3、勾选VTK_Group_Qt
4、勾选Module_vtkGUISupportQtOpenGL 生成成功后执行编译
cmake ..
make -j4
make install 开发
CMakeLists
find_package(VTK 8.2 COMPONENTS vtkGUISupportQt
vtkGUISupportQtOpenGL
vtkRenderingGL2PSOpenGL2
vtkRenderingVolumeOpenGL2 REQUIRED)complice_module(${PROJECT_NAME})target_link_libraries( ${PROJECT_NAME} PRIVATE ${VTK_LIBRARIES} .h
#include QVTKOpenGLNativeWidget.h
#include pcl/visualization/pcl_visualizer.h
#include vtkGenericOpenGLRenderWindow.h
#include vtkOrientationMarkerWidget.hclass CloudView : public QVTKOpenGLNativeWidget
{Q_OBJECT
public:explicit CloudView(QWidget* parent nullptr);
private:pcl::visualization::PCLVisualizer::Ptr m_viewer;vtkSmartPointervtkRenderer m_render;vtkSmartPointervtkGenericOpenGLRenderWindow m_renderwindow;vtkSmartPointervtkOrientationMarkerWidget m_axes;
};.cpp #include cloudview.h
#include vtkAutoInit.h
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2)
VTK_MODULE_INIT(vtkRenderingFreeType)#include vtkAxesActor.hCloudView::CloudView(QWidget* parent): QVTKOpenGLNativeWidget(parent),m_render(vtkSmartPointervtkRenderer::New()),m_renderwindow(vtkSmartPointervtkGenericOpenGLRenderWindow::New()),m_axes(vtkSmartPointervtkOrientationMarkerWidget::New())
{m_renderwindow-AddRenderer(m_render);m_viewer.reset(new pcl::visualization::PCLVisualizer(m_render, m_renderwindow, viewer, false));m_viewer-setupInteractor(this-GetInteractor(), this-GetRenderWindow());this-SetRenderWindow(m_viewer-getRenderWindow());m_viewer-setBackgroundColor((double)150.0 / 255.0, (double)150.0 / 255.0, (double)150.0 / 255.0);vtkSmartPointervtkAxesActor actor vtkSmartPointervtkAxesActor::New();m_axes-SetOutlineColor(0.9300, 0.5700, 0.1300);m_axes-SetOrientationMarker(actor);m_axes-SetInteractor(m_viewer-getRenderWindow()-GetInteractor());m_axes-SetViewport(0.9, 0, 1, 0.15);m_axes-SetEnabled(true);m_axes-InteractiveOn();m_axes-InteractiveOff();m_viewer-getRenderWindow()-Render();
}void CloudView::addPointCloud(const Cloud::Ptr cloud)
{if (!m_viewer-contains(cloud-id().toStdString()))m_viewer-addPointCloudPointXYZRGBN(cloud, cloud-id().toStdString());else{pcl::visualization::PointCloudColorHandlerRGBFieldPointXYZRGBN rgb(cloud);m_viewer-updatePointCloudPointXYZRGBN(cloud, rgb, cloud-id().toStdString());}if (cloud-pointSize() ! 1)m_viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,cloud-pointSize(), cloud-id().toStdString());if (cloud-opacity() ! 1)m_viewer-setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_OPACITY,cloud-opacity(), cloud-id().toStdString());m_viewer-getRenderWindow()-Render();
}
ui上拖拽一个openGl控件 然后提升为CloudView然后就可以显示点云数据了
PointCloud::Ptr pointPtrui-cloudview-addPointCloud( cloud);
ui-cloudview-resetCamera();
显示效果