首页 > 其他分享 >MAC 如何配置 PCL 库并在 VS Code 中使用

MAC 如何配置 PCL 库并在 VS Code 中使用

时间:2023-03-06 21:00:10浏览次数:47  
标签:Code MAC VS PCL include cloud points

MAC 如何配置 PCL 库并在 VS Code 中使用

目录

首先,让我们简单介绍一下。PCL(英语:Point Cloud Library)是一个开源的算法库,用于处理点云和计算机视觉中的三维几何过程。PCL包含点云滤波、特征估计、三维重建、点云配准、模型拟合、目标识别和分割等算法。每个模块都由一个更小的库实现(如:libpcl_filterslibpcl_featureslibpcl_surface等),可以单独编译。PCL有自己的存储点云的数据格式——PCD(英语:Point Cloud Data),但也可以加载和保存许多其他格式的数据。它是用C++ 编写的,并在BSD许可下发布。

接下来我将介绍我如何在 MAC OS 上配置 PCL 并编译运行一个示例程序。

Step1 安装 Homebrew

打开终端,输入:

ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

Step2 使用 Home-brew 安装 PCL

brew install pcl

这样就会安装到 PCL 的相关依赖库。我这里下载到的路径是:(通过 ⌘command + ⇧shift + . 打开隐藏软件视图)/usr/local/Cellar 下(这在后面的配置中很重要)

Step3 编译并测试一个示例的 PCL 代码

首先,我们需要在工程目录,或者当前的目录下新建 CMakeLists.txt 例如 (~/Desktop/PCL_Test/CMakeLists.txt),在该文件中写入:

我们可以先在终端中测试是否存在 cmake ,如果不存在可以使用 brew install cmake 安装

cmake_minimum_required(VERSION 2.6 FATAL_ERROR) # 选择cmake版本
project(PCLtest) # 给工程命名
find_package(PCL 1.3 REQUIRED COMPONENTS common io) # 使用find_package寻找指定版本PCL的指定模块,如果想导入全部模块,也可以写为 find_package(PCL REQUIRED) include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(PCLtest main.cpp)
target_link_libraries(PCLtest ${PCL_LIBRARIES})

这一段我目前也没有看懂。

其次,我们在当前工作目录创建一个 main.cpp~/Desktop/PCL_Test/main.cpp),并写入:

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
 
int main (int argc, char** argv)
{
  pcl::PointCloud<pcl::PointXYZ> cloud;
 
  // Fill in the cloud data
  cloud.width    = 5;
  cloud.height   = 1;
  cloud.is_dense = false;
  cloud.points.resize (cloud.width * cloud.height);
 
  for (size_t i = 0; i < cloud.points.size (); ++i)
  {
    cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
    cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
    cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f);
  }
 
  pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);
  std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;
 
  for (size_t i = 0; i < cloud.points.size (); ++i)
    std::cerr << "    " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;
 
  return (0);
}

随后在,当前工作目录新建 build 文件夹,如(~/Desktop/PCL_Test/build

cd ~/Desktop/PCL_Test
mkdir build

最后打开终端,进行编译:

cd build
cmake ..
make 

编译后运行工程文件(样例中,我们命名的是 PCLtest

>>>> ./PCLtest
>>>> Saved 5 data points to test_pcd.pcd.
    0.0080142 0.694695 -0.26015
    -0.342265 -0.446349 0.214207
    0.173687 -0.84253 -0.400481
    -0.874475 0.706127 -0.117635
    0.908514 -0.598159 0.744714

Step4 解决在 VS Code 中的使用问题。

因为 PCL 是新下载的,如果我们不把路径告诉 VS Code 的话,就会在 include 的位置,出现特别折磨的红色波浪线。

我们通过以下几步即决:

  • ⌘command + shift + p 呼叫出命令面板
  • 选择,首选项,打开用户设置(JSON)
  • 进去后,找到 "C_Cpp.default.includePath"

添加对应路径:(我们只需要添加最后两个即可,eigen 是用于解决 #include <pcl/io/pcd_io.h> 的路径问题。

"C_Cpp.default.includePath": [
		"xxxxx",
        "/usr/local/Cellar/pcl/1.12.1_2/include/pcl-1.12/",
        "/usr/local/Cellar/eigen/3.4.0_1/include/eigen3"
    ],

Reference

标签:Code,MAC,VS,PCL,include,cloud,points
From: https://www.cnblogs.com/Last--Whisper/p/17185436.html

相关文章

  • [Leetcode Weekly Contest]334
    链接:LeetCode[Leetcode]6307.递枕头n个人站成一排,按从1到n编号。最初,排在队首的第一个人拿着一个枕头。每秒钟,拿着枕头的人会将枕头传递给队伍中的下一个人。一旦......
  • Vue 项目配置文件中的 devServer
    Web项目部署时,会将前端和后端打包好放到服务器中。比如将Vue项目和SpringBoot项目打包好放到Tomcat中。然后浏览器通过HTTP等协议从服务器获取HTML、JS、CSS等......
  • vscode - create、build、flash工程
    1.创建工程CTR+SHIFT+P打开命令面板,输入ESP-IDF:ShowExamplesProjects命令创建实例工程,或者输入ESP-IDF:CreateESP-IDFproject命令创建一个模板工程。2.......
  • hard-coded strings are a bad idea.
    Hard-Codingisaterriblybadpractice. Lookatthecodebellow. Theprogrammerhardcodedthestringsintheprogram. Stringlike "huiQiTransPaymentSer......
  • Context Autoencoder for Self-Supervised Representation Learning
    0.前言相关资料:arxivgithub(官方实现,其他实现)论文解读(作者解读,知乎)论文基本信息:领域:自监督表示学习发表时间:arxiv2022(2022.2.7)1.针对的......
  • python mac安装python3
    pythonmac安装python3下载地址https://www.python.org/downloads/macos/左边是稳定版本,右边是开发版本(不稳定)选择带macOS的下载最新版本下载后一直点击下一步,安装即......
  • mac使用Openconnect代替Cisco Anyconnect
    2020-05-22CiscoAnyconnect这玩意感觉不好使,换掉它,换成开源的Openconnect。使用brew安装贼方便,先安装homebrew,参考知乎大神的脚本,已经替换为了国内地址。/bin/zsh-c......
  • mac mac常见操作
    目录macmac常见操作进入cmd终端切换屏幕快速截图macmac常见操作进入cmd终端按commadn+空格,输入终端,切换屏幕按command+Tab键快速截图按command+shift,此时尖头......
  • logstash retrying failed action with response code: 429
    使用logstash进行同步的时候报如下错误:09:08:22.284[[main]>worker4]INFO logstash.outputs.elasticsearch-retryingfailedactionwithresponsecode:429({"ty......
  • Mac上pnpm的安装与使用
    打开终端,执行npminstall--location=globalpnpm报错,没有访问权限,可使用如下操作解决:执行sudo-s然后再执行 npminstall--location=globalpnpm即可成功安装。......