QT5.9.9+PCL1.8.1+VS2017 實現點雲可視化界面

研究生上了半年,最近終於感覺有點東西可寫了。

今年由於項目需求,導師讓做一個點雲處理軟件用於輸電線路工程建設中,然而作爲一個電氣工程的小白,尚不知點雲處理爲何物,更沒有師兄來指導,只能靠自己摸索,歷時10多天,終於能把點雲在QT中顯示(其實就是把QT5.9.9+PCL1.8.1+VS2017配置好了),這真的是我見過的最難的配置了,所以請大家在配置時加油!!不要放棄,因爲真的蠻難的。

做點雲處理軟件有人用MFC做,有人用QT做,但網上說QT比較簡單,但用QT的人沒有MFC多,我估量了一下,果斷選擇更簡單的那個。所以我是用QT做點雲處理軟件,代碼是在QT裏面寫的(用起來感覺和C#也差不多)。

下面主要說說我在配置時踩過的坑。

首先是軟件準備:

QT是在清華鏡像下載的(比較快):https://mirrors.tuna.tsinghua.edu.cn/qt/

PCL可以在我的百度網盤下載   鏈接:https://pan.baidu.com/s/1-18J-42e3WlXJtgfoKU0FQ 
提取碼:1rk9

VS2017去官網下載就好了。

準備好軟件之後,就是漫長的配置過程。

QT的安裝還有VS2017的安裝就不說了,網上很多博客都有介紹,而且基本就是一直按下一步。

PCL1.8.1的安裝我主要參考了這篇博客:https://www.cnblogs.com/li-yao7758258/p/8066352.html

當然這篇博客也講了如何爲VS2017配置PCL1.8.1,如果你想在VS中用PCL也可以配置,但對於QT來說用不到,因爲代碼都是在QT中寫的。

我們需要做的是爲QT配置PCL,這裏我主要參考了這篇博客:https://blog.csdn.net/zhou_x11/article/details/98759463

所謂配置,其實就是修改QT的.pro文件,上述博客還講了VTK的編譯,這是因爲PCL中原有的VTK沒有添加對QT的支持,比如如果你不用編譯後的VTK替代原有VTK,你就沒法使用QVTKWidget這個控件(這個控件就是用來進行點雲顯示的,當然網上也有用其他控件做的,我因爲沒用,所以就不說了)。

按照上述博客一步一步來,就可以完成配置,下面主要說說我踩過的坑。

1.前面說到,我是用QT做這個點雲處理軟件,但其實是可以在兩個平臺裏用QT,第一個當然就是QT,第二個就是VS2017,只需要你在VS2017中裝上QT的插件(這個如何做,我把我的QT電子書推薦一波吧,具體在1.5節,鏈接:https://pan.baidu.com/s/1nce_A4rTlQv__iA43q2vgw 
提取碼:ycao),網上這兩種做法都有,我也是都嘗試了一遍,結果是VS中失敗,QT中成功了。VS中失敗情形是這樣的:當我使用QVTKWidget控件時,總是報QVTKWidget的相關函數無法識別的錯誤,而我不知如何解決,所以放棄了。很可惜錯誤截圖被我搞丟了,不能讓各位大佬幫我解決了。另外,我覺得QT中的配置要比VS中的配置簡單的多。

2.在QT中做點雲顯示界面時,網上用的最多的是QVTKWidget,要想用這個控件,需要先編譯VTK,然後要把QVTKWidgetPlugin.dll和QVTKWidgetPlugin.lib放到QTDesigner目錄下,但我這樣做之後,QTCreator中還是沒有QVTKWidget這個控件,這是因爲QTCreator是32位的,而我重新編譯VTK得到的QVTKWidgetPlugin.dll是64位的,無法讀取,我採取的方法是將QT中的widget提升爲QVTKWidget,這個也是有網上的博客介紹。

3.最後一個坑是我剛開始顯示點雲時,竟然一團漆黑,什麼都沒有,後來才發現原來是因爲點雲是黑色的,而背景也是黑色的。當我把背景改成綠色,就能看到黑色的點雲,真的感覺很傻。。還有有時也不能顯示點雲,需要在點雲顯示界面按一下鍵盤上的R鍵方能顯示出來。

當把坑都踩過後,就可以愉快的寫代碼了,我今天做了一天,做好的點雲界面如下所示:

實現的功能就是可以從六個視角看點雲,還有查看點雲的一些簡單信息。

也是將我的代碼上傳一下:https://download.csdn.net/download/qq_33656619/12249667

我也是從一個小白的角度講述我的入坑歷程,中間可能會有許多陳述不準確的地方,歡迎各位大佬與我交流,QQ:1826380364

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章