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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu下Qt中使用pcl库

發布時間:2025/3/16 Ubuntu 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu下Qt中使用pcl库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pcl依賴及安裝

1.一般不用到qt或vtk顯示點云
###pcl通過ppa安裝步驟
//這樣安裝,目前默認安裝的是pcl1.7.2

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pclsudo apt-get updatesudo apt install libpcl-dev

##pcl1.8快捷安裝(沒有試過)

sudo dpkg -i /home/cbc/下載/PCL-1.8.0-Linux.deb

參考
https://larrylisky.com/2016/11/03/point-cloud-library-on-ubuntu-16-04-lts/


2.正文:為了能用上qt界面交互

###pcl1.8通過源碼安裝(目的是為了在qt里用pcl)

sudo apt-get update

#boost

sudo apt-get install libboost-all-dev

#eigen3

sudo apt-get install libeigen3-dev

#flann

sudo apt-get install libflann1.8 libflann-dev

#其他一些小的依賴項

sudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install libqhull* libgtest-devsudo apt-get install libgl1-mesa-devsudo apt-get install libxt-devsudo apt-get install freeglut3-dev pkg-configsudo apt-get install libxmu-dev libxi-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-commonsudo apt-get install mono-complete

//一般默認裝以下vtk和qt,但是運行qt里pcl的示例程序行不通,所以不裝這些,從源碼安裝qt和vtk

//sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre//sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev

#Qt

chmod +x /home/cbc/下載/qt-opensource-linux-x64-5.9.2.runsudo ./home/cbc/下載/qt-opensource-linux-x64-5.9.2.run

安裝在home下面

#vtk7(將qt5編譯進去)??????????????

git clone git://vtk.org/VTK.git//在home目錄下解壓縮mkdir VTK-build&&cd VTK-build//在home目錄下cmake -DVTK_QT_VERSION:STRING=5 -DQT_QMAKE_EXECUTABLE:PATH=/home/cbc/Qt5.9.2/5.9.2/gcc_64/bin/qmake -DVTK_Group_Qt:BOOL=ON -DCMAKE_PREFIX_PATH:PATH=/home/cbc/Qt5.9.2/5.9.2/gcc_64/lib/cmake -DBUILD_SHARED_LIBS:BOOL=ON /home/cbc/VTK-7.1.1makesudo make install

#pcl源碼

pcl下載地址???????

cd /home/cbc/pcl-1.8.1 && mkdir build && cd buildcmake -DCMAKE_BUILD_TYPE=Release ..makesudo make install

QtDesigner配置QVTKWidget插件

把/usr/local/plugins/designer/libQVTKWidgetPlugin.so

拷貝到

/home/chen/QT/Qt5.8.0/Tools/QtCreator/lib/Qt/plugins/designer/


參考
https://www.vtk.org/Wiki/VTK/Building/Linux
http://blog.csdn.net/wanguku/article/details/60476469?readlog

  • opencv3.2&opencv3.2-contribute

源碼下載,解壓縮放在home下???????

cd /home/cbc/opencv-3.2.0rm -rf buildmkdir build&&cd build

//編譯兩個包,指明安裝位置,默認為/usr/local,指明opencv3.2-contribute模塊位置

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=/home/cbc/opencv_contrib-3.2.0/modules/ ..

//只編譯opencv3.2

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local

//make&安裝???????

make sudo make install

#如果沒有安裝在默認/usr/local,比如安裝在/usr/local/opencv320,則任何程序調用opencv庫,都要在CMakeLists.txt里設置OpenCVConfig.cmake所在目錄

set(OpenCV_DIR "/usr/local/opencv320/share/OpenCV/")

?

4. 在QT中配置應用:?

a. "project.pro"配置文件中添加如下路徑信息:?

code snippet widget

安裝位置、庫的鏈接路徑都是根據自己的配置?

b. 測試代碼:實際為pcl庫文件中的:pcl/doc/tutorials/content/sources/cloud_viewer路徑下的demo?

#include <iostream> #include <pcl/visualization/cloud_viewer.h> #include <iostream> #include <pcl/io/io.h> #include <pcl/io/pcd_io.h> using namespace std;int user_data;void viewerOneOff (pcl::visualization::PCLVisualizer& viewer) {viewer.setBackgroundColor (1.0, 0.5, 1.0);pcl::PointXYZ o;o.x = 1.0;o.y = 0;o.z = 0;viewer.addSphere (o, 0.25, "sphere", 0);std::cout << "i only run once" << std::endl;}void viewerPsycho (pcl::visualization::PCLVisualizer& viewer) {static unsigned count = 0;std::stringstream ss;ss << "Once per viewer loop: " << count++;viewer.removeShape ("text", 0);viewer.addText (ss.str(), 200, 300, "text", 0);//FIXME: possible race condition here:user_data++; }int main () {pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>);pcl::io::loadPCDFile ("five_people.pcd", *cloud);pcl::visualization::CloudViewer viewer("Cloud Viewer");//blocks until the cloud is actually renderedviewer.showCloud(cloud);//use the following functions to get access to the underlying more advanced/powerful//PCLVisualizer//This will only get called onceviewer.runOnVisualizationThreadOnce (viewerOneOff);//This will get called once per visualization iterationviewer.runOnVisualizationThread (viewerPsycho);while (!viewer.wasStopped ()){//you can also do cool processing here//FIXME: Note that this is running in a separate thread from viewerPsycho//and you should guard against race conditions yourself...user_data++;}return 0; }

測試效果:?

注意: 在剛開始運行PCL官網上的demo時,也是出現PCD文件正確,數據讀取正確的情況下,但是,Demo的圖像就是(紅/黑/藍)三種顏色的圖塊;但是,后來無意中拖動鼠標,發現顯示的區域不對,導致產生不顯示的錯覺

總結

以上是生活随笔為你收集整理的Ubuntu下Qt中使用pcl库的全部內容,希望文章能夠幫你解決所遇到的問題。

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