激光雷達】認識點云庫PCL

      網(wǎng)友投稿 1785 2025-03-31

      前言


      激光雷達生成的點云數(shù)據(jù)通過可視化顯示,是下圖中的效果:

      能看到激光雷達發(fā)射多線激光束(藍色圓圈形紋),通過接收器進行處理加工,最好可視化展示出來。從圖能看到車、行人、路燈桿、周圍的建筑物等。

      那么通過什么來處理這些點云數(shù)據(jù)呢?

      答案是:PCL點云庫

      目錄

      簡介

      特征

      PCL的代碼庫圖

      PCL項目由哪些開發(fā)的?

      以下適合純使用者,快速入門

      以下適合開發(fā)者,快速入門

      安裝PCL

      開發(fā)實踐

      簡介

      PCL全稱 Point Cloud Library,中文簡稱:點云庫;這個庫包含豐富的點云處理函數(shù)。點云庫(PCL)是一個獨立的,大規(guī)模的,開放的項目,用于2D / 3D圖像和點云處理。

      特征

      PCL是ROS(機器人操作系統(tǒng))的3D處理主干。

      點云庫(PCL)可在許多操作系統(tǒng)上運行,并且預構(gòu)建的二進制文件可用于Linux,Windows和Mac OSX。

      PCL是根據(jù)BSD許可條款發(fā)布的,可免費用于商業(yè)和研究用途。

      為了簡化開發(fā),將PCL分為一系列較小的代碼庫,可以分別進行編譯。

      PCL分為一系列模塊化庫,包含:filters、features、keypoints、registration、kdtree、segmentation、sample、consensus surface、recognition、visualization。

      圖中標注了常用的模塊函數(shù);

      PCL庫主要包括:點云獲取、濾波、分割、配準、檢索、特征提取、識別、追蹤、曲面重建、可視化

      PCL的代碼庫圖

      類似于Boost?of C ++庫。這是一個例子:

      PCL項目由哪些開發(fā)的?

      PCL開源項目,由來自許多不同組織的眾多工程師和科學家開發(fā)的,分布在世界各地,包括:

      以下適合純使用者,快速入門

      (如果開發(fā)者可以跳過,后面介紹)

      API文檔:http://docs.pointclouds.org/trunk/

      如何找到不同版本的API呢??

      點擊我來查找不同版本的API

      用戶論壇:http://www.pcl-users.org

      以下適合開發(fā)者,快速入門

      PCL開發(fā)者論壇:http://www.pcl-developers.org

      PCL開源庫地址:https://github.com/PointCloudLibrary/pcl

      如果開發(fā)過程中遇到問題,可以在下面提問交流:

      開發(fā)者教程:http://www.pointclouds.org/documentation/tutorials/

      其他

      PCL點云庫的標志

      PCL官方博客文章:http://www.pointclouds.org/blog/

      安裝PCL

      Ubuntu系統(tǒng)

      sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt-get update sudo apt-get install libpcl-all

      Linux系統(tǒng)

      wget https://aur.archlinux.org/packages/pc/pcl/pcl.tar.gz tar -xzf pcl.tar.gz cd pcl makepkg sudo pacman -U pcl*.xz

      安裝好后,需要進行配置。參考官網(wǎng):在自己的項目中使用PCL

      開發(fā)實踐

      1)PCL點云讀取和顯示

      dmeo1 基本的讀取與顯示

      PCL中點云的顯示主要有兩個類:1. pcl::visualization::CloudViewer;? 2. pcl::visualization::PCLVisualizer。

      【激光雷達】認識點云庫PCL

      下面代碼采用CloudViewer,讀取點云數(shù)據(jù)的pcd文件:

      #include //標準輸入輸出流 #include //PCL的PCD格式文件的輸入輸出頭文件 #include //PCL對各種格式的點的支持頭文件 #include //引入cloud_viewer相關(guān)文件 int main(int argc, char** argv) { pcl::PointCloud::Ptr cloud(new pcl::PointCloud); // 創(chuàng)建點云(指針) //讀入PCD格式的文件,如果文件不存在,返回-1 if (pcl::io::loadPCDFile("D:/PCL_TEST/velodyn_1.pcd", *cloud) == -1) { PCL_ERROR("Couldn't read file test_pcd.pcd \n"); //文件不存在時,返回錯誤,終止程序。 return (-1); } std::cout << "Loaded " << cloud->width * cloud->height << " data points from test_file.pcd with the following fields: " << std::endl; for (size_t i = 0; i < cloud->points.size (); ++i) //通過for循環(huán),顯示所有的點 效率偏慢 std::cout << " " << cloud->points[i].x << " " << cloud->points[i].y << " " << cloud->points[i].z << std::endl; pcl::visualization::CloudViewer viewer("pcd viewer"); //建立CloudViewer 對象 viewer.showCloud(cloud); //窗口可視化顯示 system("pause"); return (0); }

      pcl? 是一個命名空間,跟std類似;PointCloud是類模板,是模板類實例化的類型。

      其中PointXYZ可以替換為PointXYZRGB,、PointXYZRGBA等多種點云的格式。

      D:/PCL_TEST/velodyn_1.pcd具有寫自己文件放置的位置路徑

      demo2 基本讀取與豐富地顯示

      pcl::visualization::PCLVisualizer

      如果想要更加豐富的點云顯示,如給點云添加顏色、顯示點云中的法矢、在窗口中自己畫圖案、自定義視角的位置,可以采用pcl::visualization::PCLVisualizer

      官網(wǎng)案例參考:http://www.pointclouds.org/documentation/tutorials/pcl_visualizer.php#pcl-visualizer

      下面代碼采用PCLVisualizer,讀取點云數(shù)據(jù)的pcd文件:

      #include #include #include #include //前面是導入OpenCV的函數(shù)文件 #include //導入點云可視化的文件 using namespace pcl; //申明命名空間 boost::shared_ptr viewer(new pcl::visualization::PCLVisualizer("3D Viewer")); //創(chuàng)建PCLVisualizer對象 int main() { //定義點云數(shù)據(jù) pcl::PointCloud::Ptr cloud (new pcl::PointCloud); // 定義讀取對象 pcl::PCDReader reader; // 讀取點云文件 reader.read ("D:/PCL_TEST/velodyn_1.pcd", *cloud); // D:/PCL_TEST/velodyn_1.pcd具有寫自己文件放置的位置路徑 while(true) { viewer1->removeAllPointClouds(); // 移除當前所有點云 viewer1->addPointCloud(cloud, "test"); viewer1->updatePointCloud(cloud, "test"); viewer1->spinOnce(0.0000000000001); } }

      同樣其中PointXYZ可以替換為PointXYZRGB,、PointXYZRGBA等多種點云的格式。

      D:/PCL_TEST/velodyn_1.pcd具有寫自己文件放置的位置路徑

      參考:https://blog.csdn.net/lizhengze1117/article/details/89154028?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-13&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-13

      2)點云庫對濾波算法的實現(xiàn)

      其原理及算法:直通濾波器、體素濾波器、統(tǒng)計濾波器、半徑濾波器? 參考:https://www.cnblogs.com/ironstark/p/4991232.html

      參考:https://blog.csdn.net/qq_30815237/article/details/86294496

      VexelGrid濾波器對點云下采樣;參考:https://blog.csdn.net/LimitOut/article/details/102888615

      希望對你有幫助。( ?? ω ?? )y

      開發(fā)者 自動駕駛

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:word表格斜線 在Word2007、Word2010及Word2013中繪制表格斜線表(word表格斜線表頭怎么輸入文字)
      下一篇:Excel中如何設(shè)計多個數(shù)據(jù)表的布局同時顯示多個數(shù)據(jù)列表
      相關(guān)文章
      久久精品国产亚洲AV嫖农村妇女| 国产AV旡码专区亚洲AV苍井空 | 国产亚洲视频在线观看网址| 亚洲人成电影网站色www| 亚洲一卡二卡三卡| 久久亚洲精品人成综合网| 亚洲AV无码国产在丝袜线观看| 亚洲一区精品无码| 国外亚洲成AV人片在线观看 | 亚洲午夜久久久久久尤物| 亚洲最大免费视频网| 中文字幕亚洲色图| 久久亚洲精品无码AV红樱桃| 亚洲综合在线成人一区| 亚洲成年人免费网站| 亚洲三级在线视频| 亚洲日本国产综合高清| 一区二区亚洲精品精华液| 亚洲日产乱码一二三区别| 亚洲国产精品美女久久久久| 综合偷自拍亚洲乱中文字幕| 亚洲高清免费视频| 久久亚洲高清综合| 亚洲色婷婷六月亚洲婷婷6月| 久久青青草原亚洲AV无码麻豆| 亚洲国产精品免费视频| 亚洲国产精品久久人人爱| 亚洲国产91在线| 亚洲欧美自偷自拍另类视| 青青青亚洲精品国产| 亚洲无码视频在线| 亚洲精品乱码久久久久久蜜桃不卡| 亚洲国产精品嫩草影院在线观看| 亚洲AV区无码字幕中文色| 亚洲日韩在线视频| 亚洲欧美国产日韩av野草社区| 国产区图片区小说区亚洲区| 国内精品久久久久久久亚洲| 亚洲精品成人av在线| 亚洲a级在线观看| 18禁亚洲深夜福利人口|