日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

windows下cmake编译VTK到PCL中

發布時間:2025/3/16 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows下cmake编译VTK到PCL中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

補充:

如果嫌編譯麻煩,這里可以下載我編譯好的:VTK-8.0.1,下載后直接拷貝到pcl安裝目錄下替換原VTK目錄。


編譯VTK的原因:

pcl安裝版中自帶的vtk缺少QVTKWidget.dll,這樣在QT Designer中就無法顯示點云。

工具:

cmake-3.11

pcl-1.8.1-allinone,pcl-1.8.1-pdb

vs2015

Qt5.10.1 下載地址:official_release版

vtk-8.0.1 下載地址:vtk-8.0.1

vtk歷史版本下載地址

安裝過程:

pcl、vs、qt的安裝就不多說了,都是exe文件雙擊運行就行了。

之前使用的vtk-8.1.1,結果不能,所以換回了pcl-1.8.1-allinone中自帶的VTK是8.0的版本

這是pcl的安裝目錄,在3rdParty下有自帶的VTK,我們先備份VTK文件夾為VTK_copy,把編譯后的VTK就放到這個新建的VTK文件夾下

cmake編譯VTK步驟

1、打開cmake-gui

source code :VTK-8.1.1.zip解壓后的目錄

build the binaries :在VTK-8.1.1.zip解壓后的目錄下新建一個build目錄

點擊configure, 選擇編譯器?

configure完成之后一片紅,但是不用擔心,因為我們還沒有開始配置

勾選Grouped和Advanced,進行以下設置:

BUILD下取消勾選BUILD_TESTING,只留BUILD_SHARED_LIBS就行了

CMAKE下CMAKE_INSTALL_PREFIX設置為你新建的VTK文件夾

INSTALL下目錄也替換成你新建的VTK文件夾

VTK下勾選VTK_Group_Qt,VTK_RENDERING_BACKEND設置為OpenGL(這里一定要注意,否則pcl顯示框會出錯)

點擊Add Entry,添加CMAKE_DEBUG_POSTFIX,Value設置為-gd(用來區別debug和release版本)

再次點擊configure


2018年9月5日更新:

編譯vtk-8.0.1的時候,由于qt默認版本號是4,這里的5.10的qt會報錯,修改為5即可

再次configure

qt5已經自動識別出來了,目錄正確,無需修改,點擊configure

點擊generate

點擊open project

2018年9月5日更新


?

?

累,又是一片紅,我這里是安裝anaconda35,里面似乎也有QT,但是我不確定這個QT是不是好用,所以把QT改為我自己安裝的QT-5.10.1,修改QT5_DIR到自己安裝的QT路徑下

勾選VTK_BUILD_QT_DESIGNER_PLUGIN ,因為我就是為了這個才編譯VTK的

再次config

這個警告不用管的,因為我們把OpenGL2改成OpenGL引起的 。

點擊generate

點擊open project,自動打開vs

首先Debug x64下,右鍵ALL_BUILD重新生成,再右鍵INSTALL設置為啟動項目、重新生成;

然后Release x64下,右鍵ALL_BUILD重新生成,再右鍵INSTALL設置為啟動項目、重新生成;

將3rdParty\VTK\plugins\designer下的QVTKWidgetPlugin.dll拷貝到QT5.10.1\5.10\msvc2015_64\plugins\designer下,這樣Qt Designer里面就有了QVtk的控件了。

當我們使用Qt Creater作開發工具的時候,windows下qt中自帶的qt creater都是32位的,這里我們把QVTKWidgetPlugin.dll拷貝到\Qt5.10.1\Tools\QtCreator\bin\plugins\designer下是沒有用的,我們在使用Qt Creater時依然看不到QVTKWidget,除非我們再編一個32位release版的QVTKWidgetPlugin.dll放到\Qt5.10.1\Tools\QtCreator\bin\plugins\designer,或者裝一個64位版的Qt Creater

至此PCL在windows下的環境已經搭配好了,可以選擇重啟讓環境變量生效。


2018年9月5日補充,環境測試:

注意:

1、windows下代碼寫法不太一樣,windows生成的ui默認是對象,linux是對象指針

linux:ui->qvtkWidget->setRenderWindow();

windows: ui.qvtkWidget->setRedderWindow();

示例:

#include "pclviewer.h" #include <pcl\visualization\pcl_visualizer.h> #include <pcl\point_cloud.h> #include <pcl\point_types.h> //vtk #include <vtkRenderWindow.h>PCLViewer::PCLViewer(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);//初始化點云pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);//設置點云大小cloud->points.resize(200);//填充點云for (size_t i = 0; i < cloud->points.size(); ++i){cloud->points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);cloud->points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);cloud->points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);}//聲明視窗boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));//設置視窗背景色viewer->setBackgroundColor(0, 0, 0);//預處理點云顏色pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> magenta(cloud, 255, 0, 255);//把點云加載到視窗viewer->addPointCloud(cloud, magenta, "cloud");//設置點云大小viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "cloud");//連接qvtkui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());ui.qvtkWidget->update(); }

運行結果:


補充:

如果嫌編譯麻煩,這里可以下載我編譯好的:VTK-8.0.1,下載后直接拷貝到pcl安裝目錄下替換原VTK目錄。

總結

以上是生活随笔為你收集整理的windows下cmake编译VTK到PCL中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。