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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

creator qt 设置换行方式_win下使用QT添加VTK插件实现点云可视化GUI

發布時間:2024/4/13 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 creator qt 设置换行方式_win下使用QT添加VTK插件实现点云可视化GUI 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家在做點云的時候經常會用到QT,但是我們需要使用QT做點云的可視化的時候又需要VTK,雖然我們在windows下安裝PCL的時候就已經安裝了VTK,由于跟著PCL安裝的VTK是沒有和QT聯合編譯的,所以在使用PCL和QT做點云可視化界面的時候是無法使用可是QT的插件QVTKWidget,本文將主要講解一些PCL在Ubuntu系統和windows使用QT做界面的一些分享。

ubuntu 中使用QT和PCL

(1)如果是Ubuntu14.04,無論是使用命令行安裝PCL或者是QT,系統都已經將QVTKWidget的庫安裝好了,在使用QT時會自動的加載了QVTKWideget,并且使用我的例子正常cmake就可以實現QT與點云的相關功能,有興趣的可以查閱我們公眾號的github地址,當然在PCL的官方的源碼中也是有一些基本的例子,以我的經驗來說,在ubuntu14.04上使用應該是沒有什么問題。

(2)如果你安裝的是ubuntu16.04那么就可能比較麻煩,因為在使用的時候發現PCL中的QT的依賴工程并沒有改變,并且ubuntu16.04會默認安裝qt5,這就導致一些依賴項的沖突,甚至如果安裝了ROS包,也會出現一些問題,主要是PCL中的例子中都是依賴的QT4,而Ubuntu16.04的一些庫都是默認安裝QT5,所以會導致你編譯不過,所以有問題的可以歡迎討論。

我們知道在ubuntu系統下學習和使用PCL是十分方便的,并且安裝任何第三方庫都十分的便捷,這里就不再過多的說明。

windows 中使用QT和PCL

? ? ?在windows上使用PCL實現QT設計點云的可視化界面,這就又涉及到了工程軟件的問題,我相信大多數人都是使用VS,所以我的電腦安裝了VS3013 和VS2015,這里主要是使用VS2015 編譯實現點云PCL的開發在VS下的GUI的開發。如果你真的需要使用在VS下的界面設計點云的可視化的界面,那么你可以安裝以下的步驟試試,但是不能保證一定可以編譯通過,但是即便你編譯不過,只要你安裝了VS2015,并且你編譯的程序是X64 release那么就可以直接使用我編譯好的VTK的庫,直接使用,方便又省心。并在最后我將做一個簡單的demo用于大家的測試。

安裝和編譯的步驟

首先下載安裝PCL1.8windows的版本正常安裝,因為我們只需要替換掉第三方庫的VTK的部分,其他部分的庫原封不動。

PCL1.8.1依賴的第三方庫是VTK8.0,所以我們下載一個VTK的源碼,使用cmake進行編譯,接下來就是一步一步來,當然比可以跳過,直接去下載我編譯好的QVTK的庫

首先我們需要安裝了Qt5.8,這個很簡單直接去Qt官網搜索下載下來,一路安裝完成即可,這里沒什么需要值得注意的地方,接下來就是要使用cmake編譯VTK。

(1)啟動CMake,指定源碼目錄和編譯目錄,點擊Configure。

(2)VS 的版本一定是你安裝的版本指定,我選擇的是:Visual Studio 14 2015 Win64。點擊finish就,等待配置完成。會自動進行第一次的cmake.

(3)在第一次configure之后需要更新一下設置,首先點擊一下advanced,然后我們找到會找到以下幾個選項進行修改

該選擇為為VTK設置Qt的版本,這里需要選擇你已經安裝好的qt 的位置,主要是qmake.exe和Qtcmake.config這兩個路徑指定成功即可

如果出現錯誤,就需要你正常設置,這里其實主要就是QT的qmake以及qtcmake.config這兩個地方,如果提示DONXYGEN找不到,那么就將build_decument整個選項去掉。總之就是要配置好QT的路徑就可以了,如果你不知道如何在win對VTK進行cmake的編譯,沒關系,如果你也使用了Qt5.8并且使用VS2013,PCL的版本是1.8.1版本,那么就直接下載我已經編譯好的VTK X64的庫既可以了。

在cmake之后我們就可以生成了對應的VS工程文件

(5)Generate工程

配置成功后,出現Configure done提示。點擊Generate生成工程。

(6)啟動VS2015開始編譯

出現Generating done提示表示VS2015工程已經生成成功。點擊Open Project,VS2015會啟動,并打開工程。

即便你沒有編譯成功,也沒有關系,這里我已經將編譯好的VTK打包https://download.csdn.net/download/u013019296/12093433(這里的下載積分不是我能決定的)

下載對應的VTK即可,前提是你也要保證你使用的是VS2015,QT 5.8,PCL1.8.1,在下載了我編譯好的依賴項之后,只需要安裝包復制在我們安裝的PCL1.8.1的thirdtarty,后面的程序中設置好路徑一般都是沒問題

(7)將3rdParty\QVTK\plugins\designer下的QVTKWidgetPlugin.dll拷貝到QT\5.8\msvc2015_64\plugins\designer下,這樣Qt里面就有了QVtk的控件了。這一步將會讓你在打開QT_creator的界面的時候會看見

這里多了一個控件,整個時候就說明你已經安裝成功了,安裝成功要如果使用,也比較難以一次搞定。下面就是要設置VS的環境

以上就是將VTK的插件正確的放在了QT的第三方庫中,但是我們在使用配置環境的時候,總是會出現一些小問題,比如我們在上述的編譯的時候忘了設置為X64 release模式,等等

配置環境

如果一切準備工作都結束了,接下來我們為了測試一些我們新建一個工程,配置一下路徑,用來測試一下我們庫安裝是否有問題

(1)在VS2015中下載VS2015_QT的插件,選擇“擴展與更新”

(2)選擇網絡搜索輸入關鍵字“qt”下載第一個安裝即可。

(3)下載完成后重啟VS2015,你會發現”Qt VS Tool“這個選項,設置qmake所在路徑,在“QT option”中設置好qmake所在路徑即可

(4)此時我們就已經將所有的準備工作完成,可以新建一個QT的項目。此時比較頭疼的就是設置各種路徑的問題了:這里因為每個人的安裝路徑不一樣,但是如果你熟練的使用VS,就知道VS中的環境設置其實就只有三個主要的關鍵地方 include ?lib所在的路徑以及我們需要使用的lib列表,這里給出了我新建工程的設置文件的截圖,希望對你有所啟發。

lib路徑的列表:

最后是我們要輸入lib的列表,整個lib 因為我也不知道暫時會使用到哪一個,所以一般我是將所有的lib都作為輸入

向上滑動閱覽

qtmain.lib

Qt5Core.lib

Qt5Gui.lib

Qt5Widgets.lib

pcl_common_release.lib

pcl_features_release.lib

pcl_filters_release.lib

pcl_io_release.lib

pcl_io_ply_release.lib

pcl_kdtree_release.lib

pcl_keypoints_release.lib

pcl_ml_release.lib

pcl_octree_release.lib

pcl_outofcore_release.lib

pcl_people_release.lib

pcl_recognition_release.lib

pcl_registration_release.lib

pcl_sample_consensus_release.lib

pcl_search_release.lib

pcl_segmentation_release.lib

pcl_stereo_release.lib

pcl_surface_release.lib

pcl_tracking_release.lib

pcl_visualization_release.lib

flann_cpp_s.lib

flann_s.lib

flann.lib

libboost_atomic-vc140-mt-1_64.lib

libboost_chrono-vc140-mt-1_64.lib

libboost_container-vc140-mt-1_64.lib

libboost_context-vc140-mt-1_64.lib

libboost_coroutine-vc140-mt-1_64.lib

libboost_date_time-vc140-mt-1_64.lib

libboost_exception-vc140-mt-1_64.lib

libboost_filesystem-vc140-mt-1_64.lib

libboost_graph-vc140-mt-1_64.lib

libboost_iostreams-vc140-mt-1_64.lib

libboost_locale-vc140-mt-1_64.lib

libboost_log-vc140-mt-1_64.lib

libboost_log_setup-vc140-mt-1_64.lib

libboost_math_c99-vc140-mt-1_64.lib

libboost_math_c99f-vc140-mt-1_64.lib

libboost_math_c99l-vc140-mt-1_64.lib

libboost_math_tr1-vc140-mt-1_64.lib

libboost_math_tr1f-vc140-mt-1_64.lib

libboost_math_tr1l-vc140-mt-1_64.lib

libboost_mpi-vc140-mt-1_64.lib

libboost_prg_exec_monitor-vc140-mt-1_64.lib

libboost_program_options-vc140-mt-1_64.lib

libboost_random-vc140-mt-1_64.lib

libboost_regex-vc140-mt-1_64.lib

libboost_serialization-vc140-mt-1_64.lib

libboost_signals-vc140-mt-1_64.lib

libboost_system-vc140-mt-1_64.lib

libboost_test_exec_monitor-vc140-mt-1_64.lib

libboost_thread-vc140-mt-1_64.lib

libboost_timer-vc140-mt-1_64.lib

libboost_unit_test_framework-vc140-mt-1_64.lib

libboost_wave-vc140-mt-1_64.lib

libboost_wserialization-vc140-mt-1_64.lib

qhullstatic.lib

qhull.lib

qhull_p.lib

qhull_r.lib

qhullcpp.lib

qhullstatic_r.lib

libEGL.lib

QVTKWidgetPlugin.lib

QVTKWidgetPlugin.lib

vtkInteractionWidgets-8.0.lib

vtkalglib-8.0.lib

vtkIOAMR-8.0.lib

vtkChartsCore-8.0.lib

vtkIOCore-8.0.lib

vtkCommonColor-8.0.lib

vtkIOEnSight-8.0.lib

vtkCommonComputationalGeometry-8.0.lib

vtkIOExodus-8.0.lib

vtkCommonCore-8.0.lib

vtkIOExport-8.0.lib

vtkCommonDataModel-8.0.lib

vtkIOExportOpenGL2-8.0.lib

vtkCommonExecutionModel-8.0.lib

vtkIOGeometry-8.0.lib

vtkCommonMath-8.0.lib

vtkIOImage-8.0.lib

vtkCommonMisc-8.0.lib

vtkIOImport-8.0.lib

vtkCommonSystem-8.0.lib

vtkIOInfovis-8.0.lib

vtkCommonTransforms-8.0.lib

vtkIOLegacy-8.0.lib

vtkDICOMParser-8.0.lib

vtkIOLSDyna-8.0.lib

vtkDomainsChemistry-8.0.lib

vtkIOMINC-8.0.lib

vtkDomainsChemistryOpenGL2-8.0.lib

vtkIOMovie-8.0.lib

vtkexoIIc-8.0.lib

vtkIONetCDF-8.0.lib

vtkexpat-8.0.lib

vtkIOParallel-8.0.lib

vtkFiltersAMR-8.0.lib

vtkIOParallelXML-8.0.lib

vtkFiltersCore-8.0.lib

vtkIOPLY-8.0.lib

vtkFiltersExtraction-8.0.lib

vtkIOSQL-8.0.lib

vtkFiltersFlowPaths-8.0.lib

vtkIOTecplotTable-8.0.lib

vtkFiltersGeneral-8.0.lib

vtkIOVideo-8.0.lib

vtkFiltersGeneric-8.0.lib

vtkIOXML-8.0.lib

vtkFiltersGeometry-8.0.lib

vtkIOXMLParser-8.0.lib

vtkFiltersHybrid-8.0.lib

vtkjpeg-8.0.lib

vtkFiltersHyperTree-8.0.lib

vtkjsoncpp-8.0.lib

vtkFiltersImaging-8.0.lib

vtklibharu-8.0.lib

vtkFiltersModeling-8.0.lib

vtklibxml2-8.0.lib

vtkFiltersParallel-8.0.lib

vtklz4-8.0.lib

vtkFiltersParallelImaging-8.0.lib

vtkmetaio-8.0.lib

vtkFiltersPoints-8.0.lib

vtknetcdf_c++.lib

vtkFiltersProgrammable-8.0.lib

vtkNetCDF-8.0.lib

vtkFiltersSelection-8.0.lib

vtkoggtheora-8.0.lib

vtkFiltersSMP-8.0.lib

vtkParallelCore-8.0.lib

vtkFiltersSources-8.0.lib

vtkpng-8.0.lib

vtkFiltersStatistics-8.0.lib

vtkproj4-8.0.lib

vtkFiltersTexture-8.0.lib

vtkRenderingAnnotation-8.0.lib

vtkFiltersTopology-8.0.lib

vtkRenderingContext2D-8.0.lib

vtkFiltersVerdict-8.0.lib

vtkRenderingContextOpenGL2-8.0.lib

vtkfreetype-8.0.lib

vtkRenderingCore-8.0.lib

vtkGeovisCore-8.0.lib

vtkRenderingFreeType-8.0.lib

vtkgl2ps-8.0.lib

vtkRenderingGL2PSOpenGL2-8.0.lib

vtkglew-8.0.lib

vtkRenderingImage-8.0.lib

vtkGUISupportQt-8.0.lib

vtkRenderingLabel-8.0.lib

vtkGUISupportQtSQL-8.0.lib

vtkRenderingLOD-8.0.lib

vtkhdf5_hl-8.0.lib

vtkRenderingOpenGL2-8.0.lib

vtkhdf5-8.0.lib

vtkRenderingQt-8.0.lib

vtkImagingColor-8.0.lib

vtkRenderingVolume-8.0.lib

vtkImagingCore-8.0.lib

vtkRenderingVolumeOpenGL2-8.0.lib

vtkImagingFourier-8.0.lib

vtksqlite-8.0.lib

vtkImagingGeneral-8.0.lib

vtksys-8.0.lib

vtkImagingHybrid-8.0.lib

vtkTestingGenericBridge-8.0.lib

vtkImagingMath-8.0.lib

vtkTestingIOSQL-8.0.lib

vtkImagingMorphological-8.0.lib

vtkTestingRendering-8.0.lib

vtkImagingSources-8.0.lib

vtktiff-8.0.lib

vtkImagingStatistics-8.0.lib

vtkverdict-8.0.lib

vtkImagingStencil-8.0.lib

vtkViewsContext2D-8.0.lib

vtkInfovisCore-8.0.lib

vtkViewsCore-8.0.lib

vtkInfovisLayout-8.0.lib

vtkViewsInfovis-8.0.lib

vtkInteractionImage-8.0.lib

vtkViewsQt-8.0.lib

vtkInteractionStyle-8.0.lib

vtkzlib-8.0.lib

這里比較多,就沒有都列舉出來

這里我們先試用一個VTK的程序測試一下我們的環境是否正常的配置成功。

向上滑動閱覽

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

VTK_MODULE_INIT(vtkRenderingOpenGL2)

VTK_MODULE_INIT(vtkInteractionStyle);

VTK_MODULE_INIT(vtkRenderingFreeType);

int main(int, char *[])

{

???????// Create a plane

???????vtkSmartPointer planeSource =

??????????????vtkSmartPointer::New();

???????planeSource->SetCenter(1.0, 0.0, 0.0);

???????planeSource->SetNormal(1.0, 0.0, 1.0);

???????planeSource->Update();

???????vtkPolyData* plane = planeSource->GetOutput();

???????// Create a mapper and actor

???????vtkSmartPointer mapper =

??????????????vtkSmartPointer::New();

#if VTK_MAJOR_VERSION <= 5

???????mapper->SetInput(plane);

#else

???????mapper->SetInputData(plane);

#endif

???????vtkSmartPointer actor =

??????????????vtkSmartPointer::New();

???????actor->SetMapper(mapper);

???????// Create a renderer, render window and interactor

???????vtkSmartPointer renderer =

??????????????vtkSmartPointer::New();

???????vtkSmartPointer renderWindow =

??????????????vtkSmartPointer::New();

???????renderWindow->AddRenderer(renderer);

???????vtkSmartPointer renderWindowInteractor =

??????????????vtkSmartPointer::New();

???????renderWindowInteractor->SetRenderWindow(renderWindow);

???????// Add the actors to the scene

???????renderer->AddActor(actor);

???????renderer->SetBackground(.1, .2, .3); // Background color dark blue

??????????????????????????????????????????????????????????????????????// Render??and interact

???????renderWindow->Render();

???????renderWindowInteractor->Start();

???????return EXIT_SUCCESS;

}

一般是是沒有問題的,有問題的那么就是在啟動VTK的界面的時候,提示你初始化錯誤。

這個問題在之前的博客中是有記錄過的,只需要添加

#include

VTK_MODULE_INIT(vtkRenderingOpenGL2)

VTK_MODULE_INIT(vtkInteractionStyle);

VTK_MODULE_INIT(vtkRenderingFreeType);

編譯成功后,在VTK中可視化了一個平面。

win 下PCL聯合QT點云GUI開發

新建的VS工程中,我們打開.ui進行界面編輯,注意其實QT的使用,你可以直接使用代碼進行排版,你也可以在界面的地方將你的控件排版好,然后保存,這個時候QT會幫你生成對應的代碼,比如我再找個ui的界面上,放了兩個按鈕,一個QVTKWideget可視化的插件,一個文本瀏覽器,需要實現的工程是:

第一個按鈕實現了打開一個PCD文件可視化在右邊的插件上,并且點云是可以可以使用鼠標自由的拖動的。

第二個按鈕實現了生成一個5000個點的正方體點云,并且每次點擊都會改變點云顏色。

QVTKWideget需要你設置一下顯示的位置,和在界面中的位置。

文本瀏覽器主要是說明一下程序的基本用途。如下圖設計

具體的每一個控件的命名我就不在一一說明了,在我們布局排版之后,我們可以點擊保存去實現每一個按鈕的功能即可,這里由于篇幅有限,就不再貼出實現的代碼。簡單截圖如下:

有興趣的小伙伴可以下載一下程序在自己的電腦上運行,下載地址?:

https://download.csdn.net/download/u013019296/12115883

這種使用QT的GUI布局有一些局限性,就是當我們放大和縮小的時候會導致界面不夠美觀,所以很多人會選擇使用代碼來排版,但是代碼排版就會讓你的代碼量比較多。我們嘗試打開程序 如下圖:

說明:

這是一個由“點云PCL”公眾號發布的一個關于使用VS2015聯合QT設計的一個點云可視化界面的程序,已經完成了封裝的發布的一個exe,可以在win7上直接點擊exe打開界面,實現了兩個按鈕,一個是打開一個PCD文件并且可視化,如右圖上,一個按鈕實現了生成一個正方體的點云,并且每一次按鈕就會改變點云的顏色。

如有問題可以聯系郵箱:dianyunpcl@163.com ,或者按要求申請加入免費知識星球,在星球提問,評論交流。

資源

大場景三維點云的語義分割綜述

PCL中outofcore模塊---基于核外八叉樹的大規模點云的顯示

基于局部凹凸性進行目標分割

基于三維卷積神經網絡的點云標記

點云的超體素(SuperVoxel)

基于超點圖的大規模點云分割

基于魚眼相機的SLAM方法介紹

點云學習歷史文章大匯總

關于我們

目前微信交流群不斷壯大,由于人數太多,目前有兩個群,為了鼓勵大家分享,我們希望大家能在學習的同時積極分享,將您的問題或者小總結投稿發到群主郵箱主郵箱dianyunpcl@163.com。

? ? ?以上內容如有錯誤或者需要補充的,請留言!同時歡迎大家關注微信公眾號,積極分享投稿,或者加入3D視覺微信群或QQ交流群。

? 原創不易,轉載請聯系群主,注明出處

點云PCL

?掃碼關注我們?

排版:particle? 供稿:be_young博客

? ? ? ?點一下“在看”你會更好看耶

總結

以上是生活随笔為你收集整理的creator qt 设置换行方式_win下使用QT添加VTK插件实现点云可视化GUI的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 精品国产成人av | 91在线观看免费高清完整版在线观看 | 成人在线观看网站 | 裸体一区二区 | 久久国产精品精品国产色婷婷 | 二级毛片 | 老熟妻内射精品一区 | 亚洲卡一卡二卡三 | 欧美日韩一区二区视频观看 | 成人免费观看视频 | 欧美大片xxx | 色欲久久久天天天综合网精品 | av作品在线观看 | 一炮成瘾1v1高h | 国产在线观看免费播放 | 男女无遮挡网站 | 中文字幕在线观看视频免费 | 91禁国产网站 | 婷婷免费视频 | 中文字幕在线观看视频一区 | 欧美日韩亚洲一区二区 | 欧美三级网站 | 冲田杏梨一区二区三区 | 一级片黄色的 | 日本加勒比在线 | 国产av一区二区三区最新精品 | 色天天干 | 日韩一区二区三区中文字幕 | 男女黄色又爽大片 | 日韩欧美一区二区三区 | 欧美伊人网 | 三上悠亚人妻中文字幕在线 | 亚洲性事 | 亚洲精品视频一二三区 | 中文字幕+乱码+中文 | 国产小视频在线免费观看 | 午夜在线观看一区 | 国产成人精品一区二区三区在线观看 | 公车乳尖揉捏酥软呻吟 | 黄色a级免费 | 久草中文在线观看 | 亚洲最新在线视频 | 一级黄色大片视频 | 国产一区二区伦理 | 337p日本欧洲亚洲大胆张筱雨 | 久久久久亚洲av无码专区首jn | 成人精品一区二区三区电影 | 午夜激情综合 | 男女做事网站 | av在线网页| 黑人一级| 国产swag在线| 欧美日韩一区二区三 | 老外一级黄色片 | 精品国产18久久久久久二百 | 美女av网站 | www亚洲国产 | 精品国产一区二区三区四区精华 | 亚洲激情文学 | 日本精品久久久 | 六月丁香综合网 | 91插插插视频 | 男人的天堂在线观看av | 中文字幕av解说 | 狠狠爱夜夜操 | 欧美黑人疯狂性受xxxxx野外 | 丰满少妇xoxoxo视频 | 夜夜操影院| 一区二区三区不卡视频 | 亚洲一区二区三区网站 | 国产成人av一区 | 欧美激情国产精品 | 古装做爰无遮挡三级视频 | 久草免费在线播放 | 天天干天天操天天爽 | 欧美综合激情 | 亚洲精品天堂网 | 在线无码va中文字幕无码 | 看片免费黄在线观看入口 | 国产午夜福利100集发布 | 香蕉视频免费网站 | 喷水av| 亚洲欧美激情另类校园 | 国产精品丝袜 | av在线天堂网| 亚洲国产日韩欧美在线观看 | いいなり北条麻妃av101 | 黄色变态网站 | 视频福利在线观看 | www.av网| 我要操婊 | 亚洲在线电影 | 国产老女人精品毛片久久 | 天干夜夜爽爽日日日日 | 99精品视频一区二区 | 久久涩视频 | 成年人免费在线看 | 国产精品污www在线观看 | 日韩伦理一区二区三区 |