Win10 系统下VisualStudio2019 配置点云库 PCL1.11.0的图文教程

下面是详细的攻略。首先,我们需要准备以下工具:

  • Visual Studio 2019
  • CMake
  • Boost库
  • FLANN库
  • VTK库

具体操作步骤如下:

  1. 下载并安装PCL库

首先,需要从PCL官网(https://pointclouds.org/downloads/)下载PCL 1.11.0版。

安装PCL库时,我们需要选择合适的编译器类型。由于我们使用的是Visual Studio 2019,而PCL 1.11.0版只支持MSVC 19.x系列,因此我们需要下载使用MSVC 19.x系列编译器的PCL版本。

  1. 配置Boost库

打开Boost官网(https://www.boost.org/users/download/)下载最新的Boost库,解压至某一目录,打开命令行,进入Boost目录,执行以下命令:

bootstrap.bat
.\b2.exe --build-dir=<vcxproj_dir> --build-type=complete stage

其中,vcxproj_dir为要生成的库文件目录。Boost库编译完成后,将<vcxproj_dir>stage\lib子目录中的所有.lib文件拷贝至一个目录供后续使用。

  1. 配置FLANN库

从官网(https://github.com/flann-dev/flann)下载FLANN库,并执行以下命令:

cmake -G "Visual Studio 16 2019" -DCMAKE_INSTALL_PREFIX=<install_dir> -DBUILD_MATLAB_BINDINGS=OFF -DBUILD_PYTHON_BINDINGS=OFF -DBoost_DIR=<boost_dir> .
cmake --build . --config Release --target INSTALL

其中,install_dir为库要安装到的目录,boost_dir为Boost库的目录。安装完成后,将<install_dir>\lib中的所有.lib文件拷贝至之前生成的目录。

  1. 配置VTK库

从官网(https://vtk.org/download/)下载VTK库的最新版本,解压并进入目录。执行以下命令:

mkdir build
cd build
cmake -G "Visual Studio 16 2019" ..
cmake --build . --config Release

在VTK库编译完成后,将<VTK-root>\lib\Release中的所有.lib文件拷贝至之前生成的目录。

  1. 配置CMake

配置CMake时,我们需要将目录设置为PCL库的根目录,为build目录生成Visual Studio项目文件,然后设置Boost_INCLUDE_DIRBoost_LIBRARY_DIRSFLANN_INCLUDE_DIRSFLANN_LIBRARY_DIRSVTK_DIR等路径变量,并执行CMake

在命令行中,我们需要依次执行以下命令:

mkdir build
cd build
cmake -G "Visual Studio 16 2019" .. -DCMAKE_BUILD_TYPE=Release -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON -DBoost_INCLUDE_DIR=<boost_dir>\boost_1_75_0 -DBoost_LIBRARY_DIRS=<boost_dir>\vc16_x64_lib -DFLANN_INCLUDE_DIRS=<flann_dir>\include -DFLANN_LIBRARY_DIRS=<flann_dir>\lib -DVTK_DIR=<vtk_dir>

其中,boost_dirflann_dirvtk_dir为Boost、FLANN和VTK库的目录。

  1. 编译和运行示例代码

执行以下命令:

cmake --build . --config Release

编译完成后,在bin目录中,可以找到编译的PCLVisualizer示例。我们运行该示例并加载点云数据,可以看到PCL库已经成功配置和使用。

另外一个示例代码可以是不依赖PCL的任何库,直接依赖点云存储格式如PLY、PCD的代码读取示例。读取示例代码可以使用官方提供的示例,也可以根据自己的需求编写。以下为使用PCL库加载PLY文件的示例代码:

#include <iostream>
#include <pcl/io/ply_io.h>

int main(int argc, char** argv) {

    pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
    pcl::io::loadPLYFile("example.ply", *cloud);

    std::cout << "Loaded " << cloud->width << "x" << cloud->height << " data points." << std::endl;

    return 0;
}

在编译该示例代码时,需要链接PCL库,指定include目录和生成的.lib文件路径,然后进行编译。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Win10 系统下VisualStudio2019 配置点云库 PCL1.11.0的图文教程 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C# Winform实现复制文件显示进度

    实现文件复制进度显示的方法有很多,比如使用进度条控件来实时更新复制进度,或者使用后台线程来监控文件复制状态等。 下面是C# Winform实现复制文件显示进度的完整攻略: 1.创建Winform应用程序 首先,我们需要创建一个Winform应用程序作为我们的开发环境。打开Visual Studio,选择新建项目,选择“Windows Forms应用程序”,输…

    C# 2023年6月7日
    00
  • C#插入图片到Excel表格单元格代码详解

    下面是详细讲解“C#插入图片到Excel表格单元格代码详解”的完整攻略。 简介 在使用C#处理Excel表格的过程中,插入图片是一个常见的需要,本文将讲解如何使用C#代码将图片插入到Excel表格单元格中。 准备工作 在开始之前,需要先检查电脑是否安装了Microsoft Office软件(包括Excel),还需要安装Excel程序集,以便我们可以在C#中使…

    C# 2023年6月6日
    00
  • C# 实现窗口无边框,可拖动效果

    下面我为你详细讲解实现C#窗口无边框、可拖动效果的完整攻略。具体步骤如下: 步骤一:关闭窗口边框 为了实现窗口无边框效果,需要先关闭窗口的边框。在C#中,我们可以通过窗口的FormBorderStyle属性来实现此功能,具体方式如下: this.FormBorderStyle = FormBorderStyle.None; 步骤二:设置窗口背景透明 由于我们…

    C# 2023年6月7日
    00
  • C#编程自学之数据类型和变量一

    C#编程自学之数据类型和变量攻略 1. 概述 本篇攻略主要介绍C#编程中的数据类型和变量,涉及到定义变量、基本数据类型、变量命名规则、数据类型转换等知识点,帮助初学者系统学习。 2. 定义变量 定义变量是C#程序中最基本的操作之一,它用于在内存中分配空间来存储值,包括以下几个步骤: 声明变量类型 给变量赋一个值 使用变量 下面是一个示例: int age; …

    C# 2023年5月31日
    00
  • 关于C#连接SQL Server时提示用户登录失败的解决方法

    下面就是关于C#连接SQLServer时提示用户登录失败的解决方法的完整攻略: 1. 检查用户名和密码是否正确 第一步,你应该检查你提供的用户名和密码是否正确。在C#中,利用SqlConnectionStringBuilder类创建连接字符串,其中包括用户名和密码信息。示例代码如下: SqlConnectionStringBuilder builder = …

    C# 2023年5月14日
    00
  • [译]在C#中使用IComparable和IComparer接口

    原文:Use the IComparable and IComparer interfaces in Visual CSharp 本文介绍了在Visual C#中如何使用IComparer和IComparable接口。 概要 本文同时讨论了IComparable和IComparer接口,原因有两点。这两个接口经常一起使用。虽然接口类似且名称相似,但它们却有不…

    C# 2023年5月3日
    00
  • 在Unity中实现简单的伪时间同步

    下面我将详细讲解在Unity中实现简单的伪时间同步的完整攻略。 什么是伪时间同步? 伪时间同步(Pseudo-Synchronization)是指在网络环境下,通过一些技巧来实现多个客户端之间的游戏同步。它并不是真正的时间同步,而是一种近似的同步方式。 实现伪时间同步的思路 伪时间同步的核心思路是将客户端的游戏时间同步,而不是同步真实世界中的时间。 在实现伪…

    C# 2023年6月1日
    00
  • CommunityToolkit.Mvvm8.1 消息通知(4)

    本系列文章导航 https://www.cnblogs.com/aierong/p/17300066.html https://github.com/aierong/WpfDemo (自我Demo地址)   希望提到的知识对您有所提示,同时欢迎交流和指正 作者:aierong出处:https://www.cnblogs.com/aierong   说明 为了…

    C# 2023年4月22日
    00
合作推广
合作推广
分享本页
返回顶部