PCL1.14.0安裝、使用教程

寫在前面

  • 本文內容
    本文是PCL1.14.0在Windows下的安裝、使用教程;
    PCL、Open3D其他版本的編譯和使用相關教程見
    各個版本的Open3D、PCL的編譯、使用教程
  • 平臺/環境
    windows11(windows10): visual studio 2022;cmake 3.22+; VsCode
  • 轉載請注明出處:
    https://blog.csdn.net/qq_41102371/article/details/136423654

目錄

  • 寫在前面
  • 安裝PCL1.14.0
  • 使用
    • 準備測試demo源碼和文件
    • 添加可視化源碼
    • 編譯運行
  • 參考

安裝PCL1.14.0

-下載
從官方下載編譯好的包:
https://github.com/PointCloudLibrary/pcl/releases
在這里插入圖片描述

  • 開始安裝
    在這里插入圖片描述
  • 環境變量
    為PCL添加環境變量,這一步是為了運行基于PCL的程序時自動加載PCL相關動態庫的,可以選擇添加,這里選擇不添加,因為電腦上已有其他版本PCL的環境變量,下文會在使用時教大家怎么用腳本添加臨時的環境變量
    在這里插入圖片描述
  • 安裝路徑
    自己選擇合適的安裝路徑,這里是D:\carlos\install\PCL 1.14.0,因為我自己所有的庫都安裝在這里
    在這里插入圖片描述
  • 選擇組件
    都選上
    在這里插入圖片描述
    可能會彈出一些確認窗口,點擊安裝就行
    在這里插入圖片描述
  • 安裝完成
    在這里插入圖片描述
    在這里插入圖片描述
    此時檢查下3rdparty/OpenNI2里面是不是只有一個.msi,如果是,那么就是你之前安裝過其他版本的PCL可能導致OpenNI2沒法安裝到當前位置,那么把之前的復制過來就好了
    比如我之前裝過PCL1.10.0,系統就會檢測到OpenNI2已經被安裝而不會繼續被安裝到當前目錄
    在這里插入圖片描述

使用

準備測試demo源碼和文件

我們隨便找一個PCL官方提供的demo,這里選的是正態分布濾波(官方文檔在此),先點擊下載測試數據,再找打本地源碼路徑
YOUR_PATH_\PCL 1.14.0\share\doc\pcl-1.14\tutorials\sources\statistical_removal
把下載的測試數據放到該目錄下
在這里插入圖片描述
然后命令行cd進入該目錄,并用vscode打開該目錄(注意下列命令是我的安裝路徑,根據自己的修改)

d:
cd "D:/carlos/install/PCL 1.14.0/share/doc/pcl-1.14/tutorials/sources/statistical_removal"
code .

在這里插入圖片描述
在這里插入圖片描述

添加可視化源碼

官方源碼將濾波后的點云直接保存,沒有可視化,下面是添加了可視化的代碼,將下面的代碼替換statistical_removal.cpp里的內容即可

#include <iostream>
#include <chrono>
#include <thread>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/filters/statistical_outlier_removal.h>
#include <pcl/visualization/cloud_viewer.h>template <typename PointT>
void PcdVisualizer(pcl::PointCloud<PointT> cloud, bool coordinate = false)
{pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));viewer->setBackgroundColor(0, 0, 0);pcl::PointCloud<PointT>::Ptr cloud_ptr(new pcl::PointCloud<PointT>);*cloud_ptr = cloud;viewer->addPointCloud<PointT>(cloud_ptr, "cloud");if (coordinate){viewer->addCoordinateSystem(1.0, "global");}while (!viewer->wasStopped()){viewer->spinOnce(100);// td::this_thread::sleep_for(100ms);std::this_thread::sleep_for(std::chrono::milliseconds(100));}
}int main()
{pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered_inliers(new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_filtered_outliers(new pcl::PointCloud<pcl::PointXYZ>);// Fill in the cloud datapcl::PCDReader reader;// Replace the path below with the path where you saved your filereader.read<pcl::PointXYZ>("table_scene_lms400.pcd", *cloud);std::cerr << "Cloud before filtering: " << std::endl;std::cerr << *cloud << std::endl;// Create the filtering objectpcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud(cloud);sor.setMeanK(50);sor.setStddevMulThresh(1.0);sor.filter(*cloud_filtered_inliers);std::cerr << "Cloud after filtering: " << std::endl;std::cerr << *cloud_filtered_inliers << std::endl;pcl::PCDWriter writer;writer.write<pcl::PointXYZ>("table_scene_lms400_inliers.pcd", *cloud_filtered_inliers, false);sor.setNegative(true);sor.filter(*cloud_filtered_outliers);writer.write<pcl::PointXYZ>("table_scene_lms400_outliers.pcd", *cloud_filtered_outliers, false);std::cout << "before filter" << std::endl;PcdVisualizer(*cloud);std::cout << "after filter" << std::endl;PcdVisualizer(*cloud_filtered_inliers);return (0);
}

編譯運行

添加compile.bat和運行腳本run.bat,用來寫編譯腳本和運行腳本
在這里插入圖片描述
在這里插入圖片描述
compile.bat內容,這里DPCL_DIR就指定了尋找PCL的位置

cmake -DCMAKE_BUILD_TYPE=Release ^
-DPCL_DIR="D:/carlos/install/PCL 1.14.1/cmake" ^
-S ./ -B ./buildcmake --build ./build --config Release --target ALL_BUILD

run.bat內容,這里set PATH就在添加PCL的環境變量,程序運行時才能找到PCL的動態庫

@REM 設置PCL環境變量
set PATH=D:\carlos\install\PCL 1.14.0\bin;^
D:\carlos\install\PCL 1.14.0\3rdParty\FLANN\bin;^
D:\carlos\install\PCL 1.14.0\3rdParty\VTK\bin;^
D:\carlos\install\PCL 1.14.0\3rdParty\Qhull\bin;^
D:\carlos\install\PCL 1.14.0\3rdParty\OpenNI2\Tools;%PATH%
@REM 運行程序
.\build\Release\statistical_removal.exe .\table_scene_lms400.pcd

開始編譯,打開一個terminal窗口,執行編譯腳本compile.bat
在這里插入圖片描述
編譯成功后生成statistical_removal.exe
在這里插入圖片描述
運行,執行run.bat腳本

在這里插入圖片描述
結果
濾波前
在這里插入圖片描述
濾波后

在這里插入圖片描述

參考

文中已列出

主要做激光/影像三維重建,配準、分割等常用點云算法,熟悉open3d、pcl等開源點云庫,技術交流、咨詢可私信

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715998.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715998.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715998.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

http和https的區別是什么?

–前言 傳輸信息安全性不同、連接方式不同、端口不同、證書申請方式不同 一、傳輸信息安全性不同 1、http協議&#xff1a;是超文本傳輸協議&#xff0c;信息是明文傳輸。如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文&#xff0c;就可以直接讀懂其中的信息。 2、h…

關于django makemigrations/migrate在生成數據表上遇到的一些問題

當你刪除了生成的 migration 文件夾&#xff0c;將數據庫從 SQLite 切換到 MySQL&#xff0c;并且在執行 makemigrations 命令時顯示沒有變化&#xff0c;同時 MySQL 中沒有生成表&#xff0c;可能是由于以下原因造成的&#xff1a; Django遷移系統的工作方式&#xff1a;Djang…

排序(3)——直接選擇排序

目錄 直接選擇排序 基本思想 整體思路&#xff08;升序&#xff09; 單趟 多趟 代碼實現 特性總結 直接選擇排序 基本思想 每一次從待排序的數據元素中選出最小&#xff08;或最大&#xff09;的一個元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的…

軟考 系統分析師系列知識點之詳細調查(3)

接前一篇文章&#xff1a;軟考 系統分析師系列知識點之詳細調查&#xff08;2&#xff09; 所屬章節&#xff1a; 第10章. 系統分析 第2節. 詳細調查 在系統規劃階段&#xff0c;通過初步調查&#xff0c;系統分析師已經對企業的組織結構、系統功能等有了大致的了解。但是&…

力扣203移除鏈表元素

題目&#xff1a; 203. 移除鏈表元素 給你一個鏈表的頭節點 head 和一個整數 val &#xff0c;請你刪除鏈表中所有滿足 Node.val val 的節點&#xff0c;并返回 新的頭節點 。 1&#xff0c;設置一個頭節點&#xff0c;統一操作。 2&#xff0c;這里是用p查找&#xff0c;但是…

BUUCTF---數據包中的線索1

1.題目描述 2.下載附件&#xff0c;是一個.pcap文件 3.放在wireshark中&#xff0c;仔細觀察數據流&#xff0c;會發現有個叫fenxi.php的數據流 4.這條數據流是http,且使用GET方式&#xff0c;接下來我們使用http.request,methodGET 命令來過濾數據流 5.在分析欄中我們追蹤htt…

查看端口占用命令

fuser 8080/tcp netstat -tuln | grep 8080 lsof -i:8080 ss -tuln | grep 8080

在Linux上使用通用二進制包安裝MySQL

下載安裝包 MySQL Community Downloads 安裝依賴 mysql 數據目錄初始化及服務啟動階段依賴libaio&#xff0c;檢測是否已安裝libaio dnf install libaio解壓安裝 ## 創建用戶組 groupadd mysql ## 創建用戶 useradd -r -g mysql -s /bin/false mysql ## 解壓安裝包 tar xv…

數據挖掘:航空公司的客戶價值分析

需求分析 理解并掌握聚類分析方法&#xff0c;掌握數據的標準化&#xff0c;掌握尋找最佳聚類數&#xff0c;掌握聚類的繪圖&#xff0c;掌握聚類分析的應用場景。 系統實現 實驗流程分析 借助航空公司數據&#xff0c;對客戶進行分類對不同類別的客戶進行特征分析&#xf…

IEEE754標準的c語言闡述,以及幾個浮點數常量

很多年前&#xff0c;調研過浮點數與整數之間的雙射問題&#xff1a; win7 intel x64 cpu vs2013 c語言浮點數精度失真問題 最近重新學習了一下IEEE754標準&#xff0c;也許實際還有很多深刻問題沒有被揭示。 計算機程序設計藝術&#xff0c;據說這本書中也有討論。 參考&…

電商數據分析13——電商平臺退貨率分析與降低策略

目錄 寫在開頭1. 退貨率分析的重要性1.1 退貨現象的影響1.2 退貨數據的收集與分析 2. 數據分析揭示的主要退貨原因2.1 產品描述不準確2.2 物流配送問題2.3 產品質量問題 3. 基于數據分析的退貨率降低策略3.1 優化產品描述和圖片3.2 改進物流配送服務3.3 加強質量控制和售后服務…

抖音視頻批量采集軟件|視頻評論下載工具

在日常工作中&#xff0c;需要頻繁下載抖音視頻&#xff0c;但逐個復制分享鏈接下載效率太低&#xff1f;別擔心&#xff01;我們推出了一款專業的抖音視頻批量采集軟件&#xff0c;基于C#開發&#xff0c;滿足您的需求&#xff0c;讓您通過關鍵詞搜索視頻并自動批量抓取&#…

力扣每日一題 受限條件下可到達節點的數目 DFS

Problem: 2368. 受限條件下可到達節點的數目 文章目錄 思路復雜度Code 思路 &#x1f468;?&#x1f3eb; 靈神 復雜度 時間復雜度: O ( n ) O(n) O(n) 空間復雜度: O ( n ) O(n) O(n) Code class Solution {int ans 0;boolean[] set;List<Integer>[] es;publ…

Unity中URP下實現水體(C#動態生成漸變圖)

文章目錄 前言一、Shader部分1、申明水漸變圖紋理和采樣器2、在片元著色器&#xff0c;進行紋理采樣&#xff0c;并且輸出 二、C#腳本部分1、我們新建一個C#腳本2、我們定義兩個變量3、在Start內&#xff0c;new 一個Texture2D(寬&#xff0c;高)4、定義一個Color[寬*高]的顏色…

CCS ‘23 論文清單與摘要

網絡安全學術頂會——CCS 23 論文清單與摘要 1、“Get in Researchers; We’re Measuring Reproducibility”: A Reproducibility Study of Machine Learning Papers in Tier 1 Security Conferences 可復現性對科學的進展至關重要&#xff1b;它增強了對看似矛盾結果的信心&…

企微hook源碼第二彈

免費的企微框架&#xff0c;可下載測試。 支持文本消息&#xff0c;圖片消息&#xff0c;視頻消息&#xff0c;文件消息。 有興趣可以進群交流。649480745&#xff0c;群內不定期開源企微hook源碼 接下來就是第二彈的企微hook源碼。后續會在群內開源完整源碼。

diskMirror-backEnd-spring-boot | diskMirror 后端服務器 SpringBoot 版本!

diskMirror-backEnd-spring-boot 開源技術欄 diskMirror 后端服務器 SpringBoot 版本! 此版本中拓展了 DiskMirrorBackEnd&#xff0c;是一個完全的SpringBoot項目&#xff01; 目錄 diskMirror-backEnd-spring-boot 目錄我如何使用&#xff1f; 部署與配置我如何使用其中的…

Java+SpringBoot+Vue:志愿服務的數字化之旅

??計算機畢業編程指導師 ??個人介紹&#xff1a;自己非常喜歡研究技術問題&#xff01;專業做Java、Python、微信小程序、安卓、大數據、爬蟲、Golang、大屏等實戰項目。 ??實戰項目&#xff1a;有源碼或者技術上的問題歡迎在評論區一起討論交流&#xff01; ?? Java、…

理想汽車狂飆18%,造車新勢力洗牌

2月27日&#xff0c;#理想汽車狂飆18%#話題沖上熱搜&#xff1b;前一日&#xff0c;理想汽車(02015.HK)公布了2023年第四季度及全年財報。盡管其營收凈利雙增長&#xff0c;但業績增長背后仍有隱憂。 「不二研究」據其2023年報發現&#xff1a;2023年&#xff0c;理想汽車研發…

24計算機考研調劑 | 北京聯合大學

北京聯合大學自動駕駛方向招生調劑 考研調劑招生信息 學校:北京聯合大學 專業:工學->電子信息->計算機應用技術 工學->計算機科學與技術 年級:2024 招生人數:10 招生狀態:正在招生中 聯系方式:********* (為保護個人隱私,聯系方式僅限APP查看) 補充內容 研究…