VS2019+PCL1.12.1

安装包下载地址:https://github.com/PointCloudLibrary/pcl/releases
下载红色方框内容
下载成功后点击安装
在这里插入图片描述按照默认一直点
据说会弹出来一个OpenNI2的安装窗口。把OpenNI2安装在3rdParty文件夹里,即C:\Program Files\PCL1.12.1\3rdParty\OpenNI2。然额,我安装没弹出,OpenNI2自动安装了和PCL_1_8_1目录排在同一级。也可以安装在其他盘中。
解压至PCL目录的Bin文件夹中至此,安装完成。
后面进行环境变量的配置,
搜索环境变量,一般在控制面板中双击系统变量中的path,新建变量
%PCL_ROOT%\bin
%PCL_ROOT%\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%OPENNI2_REDIST64%
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\3rdParty\OpenNI2\Tools
由于OpenNI2自动安装的,不在3rdParty目录下,所以最后一条地址去掉\3rdParty,如下图所示:
注意OpenNI2的位置配置完成重启电脑!!!

这里使用的VS2019 Community,主要配置以下几部分:
在这里插入图片描述以下都是在X64 Release版本的配置

在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述
4.附加依赖项

pcl_common.lib
pcl_features.lib
pcl_filters.lib
pcl_io.lib
pcl_io_ply.lib
pcl_kdtree.lib
pcl_keypoints.lib
pcl_ml.lib
pcl_octree.lib
pcl_outofcore.lib
pcl_people.lib
pcl_recognition.lib
pcl_registration.lib
pcl_sample_consensus.lib
pcl_search.lib
pcl_segmentation.lib
pcl_stereo.lib
pcl_surface.lib
pcl_tracking.lib
pcl_visualization.lib
libboost_atomic-vc142-mt-x64-1_78.lib
libboost_bzip2-vc142-mt-x64-1_78.lib
libboost_chrono-vc142-mt-x64-1_78.lib
libboost_container-vc142-mt-x64-1_78.lib
libboost_context-vc142-mt-x64-1_78.lib
libboost_contract-vc142-mt-x64-1_78.lib
libboost_coroutine-vc142-mt-x64-1_78.lib
libboost_date_time-vc142-mt-x64-1_78.lib
libboost_exception-vc142-mt-x64-1_78.lib
libboost_filesystem-vc142-mt-x64-1_78.lib
libboost_graph-vc142-mt-x64-1_78.lib
libboost_graph_parallel-vc142-mt-x64-1_78.lib
libboost_iostreams-vc142-mt-x64-1_78.lib
libboost_json-vc142-mt-x64-1_78.lib
libboost_locale-vc142-mt-x64-1_78.lib
libboost_log-vc142-mt-x64-1_78.lib
libboost_log_setup-vc142-mt-x64-1_78.lib
libboost_math_c99-vc142-mt-x64-1_78.lib
libboost_math_c99f-vc142-mt-x64-1_78.lib
libboost_math_c99l-vc142-mt-x64-1_78.lib
libboost_math_tr1-vc142-mt-x64-1_78.lib
libboost_math_tr1f-vc142-mt-x64-1_78.lib
libboost_math_tr1l-vc142-mt-x64-1_78.lib
libboost_mpi-vc142-mt-x64-1_78.lib
libboost_nowide-vc142-mt-x64-1_78.lib
libboost_numpy38-vc142-mt-x64-1_78.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_78.lib
libboost_program_options-vc142-mt-x64-1_78.lib
libboost_python38-vc142-mt-x64-1_78.lib
libboost_random-vc142-mt-x64-1_78.lib
libboost_regex-vc142-mt-x64-1_78.lib
libboost_serialization-vc142-mt-x64-1_78.lib
libboost_system-vc142-mt-x64-1_78.lib
libboost_test_exec_monitor-vc142-mt-x64-1_78.lib
libboost_thread-vc142-mt-x64-1_78.lib
libboost_timer-vc142-mt-x64-1_78.lib
libboost_type_erasure-vc142-mt-x64-1_78.lib
libboost_unit_test_framework-vc142-mt-x64-1_78.lib
libboost_wave-vc142-mt-x64-1_78.lib
libboost_wserialization-vc142-mt-x64-1_78.lib
libboost_zlib-vc142-mt-x64-1_78.lib
flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
OpenNI2.lib
qhullcpp.lib
qhullstatic.lib
qhullstatic_r.lib
qhull_r.lib
vtkcgns-9.1.lib
vtkChartsCore-9.1.lib
vtkCommonColor-9.1.lib
vtkCommonComputationalGeometry-9.1.lib
vtkCommonCore-9.1.lib
vtkCommonDataModel-9.1.lib
vtkCommonExecutionModel-9.1.lib
vtkCommonMath-9.1.lib
vtkCommonMisc-9.1.lib
vtkCommonSystem-9.1.lib
vtkCommonTransforms-9.1.lib
vtkDICOMParser-9.1.lib
vtkDomainsChemistry-9.1.lib
vtkDomainsChemistryOpenGL2-9.1.lib
vtkdoubleconversion-9.1.lib
vtkexodusII-9.1.lib
vtkexpat-9.1.lib
vtkFiltersAMR-9.1.lib
vtkFiltersCore-9.1.lib
vtkFiltersExtraction-9.1.lib
vtkFiltersFlowPaths-9.1.lib
vtkFiltersGeneral-9.1.lib
vtkFiltersGeneric-9.1.lib
vtkFiltersGeometry-9.1.lib
vtkFiltersHybrid-9.1.lib
vtkFiltersHyperTree-9.1.lib
vtkFiltersImaging-9.1.lib
vtkFiltersModeling-9.1.lib
vtkFiltersParallel-9.1.lib
vtkFiltersParallelImaging-9.1.lib
vtkFiltersPoints-9.1.lib
vtkFiltersProgrammable-9.1.lib
vtkFiltersSelection-9.1.lib
vtkFiltersSMP-9.1.lib
vtkFiltersSources-9.1.lib
vtkFiltersStatistics-9.1.lib
vtkFiltersTexture-9.1.lib
vtkFiltersTopology-9.1.lib
vtkFiltersVerdict-9.1.lib
vtkfmt-9.1.lib
vtkfreetype-9.1.lib
vtkGeovisCore-9.1.lib
vtkgl2ps-9.1.lib
vtkglew-9.1.lib
vtkhdf5-9.1.lib
vtkhdf5_hl-9.1.lib
vtkImagingColor-9.1.lib
vtkImagingCore-9.1.lib
vtkImagingFourier-9.1.lib
vtkImagingGeneral-9.1.lib
vtkImagingHybrid-9.1.lib
vtkImagingMath-9.1.lib
vtkImagingMorphological-9.1.lib
vtkImagingSources-9.1.lib
vtkImagingStatistics-9.1.lib
vtkImagingStencil-9.1.lib
vtkInfovisCore-9.1.lib
vtkInfovisLayout-9.1.lib
vtkInteractionImage-9.1.lib
vtkInteractionStyle-9.1.lib
vtkInteractionWidgets-9.1.lib
vtkIOAMR-9.1.lib
vtkIOAsynchronous-9.1.lib
vtkIOCGNSReader-9.1.lib
vtkIOChemistry-9.1.lib
vtkIOCityGML-9.1.lib
vtkIOCONVERGECFD-9.1.lib
vtkIOCore-9.1.lib
vtkIOEnSight-9.1.lib
vtkIOExodus-9.1.lib
vtkIOExport-9.1.lib
vtkIOExportGL2PS-9.1.lib
vtkIOExportPDF-9.1.lib
vtkIOGeometry-9.1.lib
vtkIOHDF-9.1.lib
vtkIOImage-9.1.lib
vtkIOImport-9.1.lib
vtkIOInfovis-9.1.lib
vtkIOIOSS-9.1.lib
vtkIOLegacy-9.1.lib
vtkIOLSDyna-9.1.lib
vtkIOMINC-9.1.lib
vtkIOMotionFX-9.1.lib
vtkIOMovie-9.1.lib
vtkIONetCDF-9.1.lib
vtkIOOggTheora-9.1.lib
vtkIOParallel-9.1.lib
vtkIOParallelXML-9.1.lib
vtkIOPLY-9.1.lib
vtkIOSegY-9.1.lib
vtkIOSQL-9.1.lib
vtkioss-9.1.lib
vtkIOTecplotTable-9.1.lib
vtkIOVeraOut-9.1.lib
vtkIOVideo-9.1.lib
vtkIOXML-9.1.lib
vtkIOXMLParser-9.1.lib
vtkjpeg-9.1.lib
vtkjsoncpp-9.1.lib
vtkkissfft-9.1.lib
vtklibharu-9.1.lib
vtklibproj-9.1.lib
vtklibxml2-9.1.lib
vtkloguru-9.1.lib
vtklz4-9.1.lib
vtklzma-9.1.lib
vtkmetaio-9.1.lib
vtknetcdf-9.1.lib
vtkogg-9.1.lib
vtkParallelCore-9.1.lib
vtkParallelDIY-9.1.lib
vtkpng-9.1.lib
vtkpugixml-9.1.lib
vtkRenderingAnnotation-9.1.lib
vtkRenderingContext2D-9.1.lib
vtkRenderingContextOpenGL2-9.1.lib
vtkRenderingCore-9.1.lib
vtkRenderingFreeType-9.1.lib
vtkRenderingGL2PSOpenGL2-9.1.lib
vtkRenderingImage-9.1.lib
vtkRenderingLabel-9.1.lib
vtkRenderingLOD-9.1.lib
vtkRenderingOpenGL2-9.1.lib
vtkRenderingSceneGraph-9.1.lib
vtkRenderingUI-9.1.lib
vtkRenderingVolume-9.1.lib
vtkRenderingVolumeOpenGL2-9.1.lib
vtkRenderingVtkJS-9.1.lib
vtksqlite-9.1.lib
vtksys-9.1.lib
vtkTestingRendering-9.1.lib
vtktheora-9.1.lib
vtktiff-9.1.lib
vtkverdict-9.1.lib
vtkViewsContext2D-9.1.lib
vtkViewsCore-9.1.lib
vtkViewsInfovis-9.1.lib
vtkWrappingTools-9.1.lib
vtkzlib-9.1.lib引用文本

在这里插入图片描述在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/b17e512789284eec887c201d9d4e76d4.png

在头文件中添加:
#include <pcl/visualization/cloud_viewer.h>
#include
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/console/parse.h>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/common/io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include
#include
#include <pcl/point_cloud.h>
#include <pcl/octree/octree.h>
#include <boost/thread/thread.hpp>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
using namespace pcl;

在cpp中加入测试代码:
srand((unsigned int)time(NULL));
pcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);
// 创建点云数据
cloud->width = 1000;
cloud->height = 1;
cloud->points.resize(cloud->width * cloud->height);
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = 1024.0f * rand() / (RAND_MAX + 1.0f);
cloud->points[i].y = 1024.0f * rand() / (RAND_MAX + 1.0f);
cloud->points[i].z = 1024.0f * rand() / (RAND_MAX + 1.0f);
}

pcl::octree::OctreePointCloudSearch<pcl::PointXYZ> octree(0.1);
octree.setInputCloud(cloud);
octree.addPointsFromInputCloud();
pcl::PointXYZ searchPoint;
searchPoint.x = 1024.0f * rand() / (RAND_MAX + 1.0f);
searchPoint.y = 1024.0f * rand() / (RAND_MAX + 1.0f);
searchPoint.z = 1024.0f * rand() / (RAND_MAX + 1.0f);

//半径内近邻搜索
vector<int>pointIdxRadiusSearch;
vector<float>pointRadiusSquaredDistance;
float radius = 256.0f * rand() / (RAND_MAX + 1.0f);
cout << "Neighbors within radius search at (" << searchPoint.x
	<< " " << searchPoint.y
	<< " " << searchPoint.z
	<< ") with radius=" << radius << endl;
if (octree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0)
{
	for (size_t i = 0; i < pointIdxRadiusSearch.size(); ++i)
		cout << "    " << cloud->points[pointIdxRadiusSearch[i]].x
		<< " " << cloud->points[pointIdxRadiusSearch[i]].y
		<< " " << cloud->points[pointIdxRadiusSearch[i]].z
		<< " (squared distance: " << pointRadiusSquaredDistance[i] << ")" << endl;
}

运行结果

### 回答1: PCL 1.12.1 的安装和配置在 Visual Studio 2019 中需要一些步骤。 1. 下载 PCL 1.12.1 的源代码或二进制文件。 2. 打开 Visual Studio 2019,新建一个项目。 3. 在项目属性中配置链接器,添加需要的库文件路径。 4. 在项目属性中配置C++,添加需要的头文件路径。 5. 在代码中包含需要的头文件,并链接需要的库。 6. 编译和运行项目。 注意:这些步骤有可能会因系统和环境的不同而有所不同。在遇到问题时,可以查看 PCL 官网上的文档或在网上搜索相关教程。 ### 回答2: PCL(Point Cloud Library)是一款非常流行的点云数据处理库,可以用于三维点云数据的获取、滤波、配准、分割、识别等各种操作。而在使用PCL时,常常需要将它和Visual Studio配合使用,以便进行开发和调试。下面就为大家介绍如何在Visual Studio 2019中安装和配置PCL 1.12.1。 安装PCL 1.12.1 首先,需要从pcl官网下载pcl 1.12.1的源码包。解压后,可以看到opencv的一些文件夹,我们需要在它的根目录下创建一个build文件夹,并进入该文件夹后运行cmake-gui进行配置。 配置Cmake 首先,点击“Configure”按钮,之后弹出一个对话框,让我们选择生成的后端工具。在这里,我们选择Visual Studio 16 2019作为生成器。在配置下面的“Optional platform selection”处,选择“x64”后,就可以点击“Finish”进行配置。 配置过后,我们需要按照下面的步骤进行修改: 1. 在搜索框内输入“PCL”,然后在搜索结果中选中“PCL_BUILD_OVERVIEW”和“BUILD_external_PCL_3rdParty_Eigen”,将它们的值勾选为ON。 2. 继续搜索“BOOST”,然后将BUILD_BOOST的值勾选为ON。 3. 最后,我们输入“OpenCV”进行搜索,将BUILD_examples和BUILD_apps的值都勾选为OFF。 点击“Configure”按钮,等待Cmake运行完毕。 生成Visual Studio 2019的解决方案 在上一步完毕后,我们需要点击“Generate”按钮生成Visual Studio解决方案。完成后可以在build目录下看到PCL.sln文件。 将PCL添加到VS2019工程 新建VS2019工程后,将PCL.sln添加进来。然后打开Configuration Manager,将Active solution** platform设置为x64。在**Solution Explorer中的项目中,右键点击“Properties”属性,找到VC++ Directories,添加Include和Library目录,并添加PCL的lib文件。 至此,PCL 1.12.1已经在Visual Studio 2019中安装并配置完成了。可以在工程中使用opencv库了。通过PCL让开发者们可以更简单的使用3D模型进行分析、处理、展示等操作,极大的提高了3D数据的处理效率和质量,推进了3D技术的发展。 ### 回答3: PCL(Point Cloud Library)是一款非常流行的用于点云处理和分析的开源C++库。在这篇文章中,我们将会介绍如何在Windows操作系统上安装和配置最新版本的PCL(pcl1.12.1)与Visual Studio 2019(以下简称VS2019)。本文所涉及的操作系统和软件版本信息如下: - 操作系统:Windows 10 Pro,64位,版本1909 - CMake版本:3.18.6 - PCL版本:1.12.1 - Visual Studio版本:2019,16.9.4 步骤一:下载和安装CMake 首先,我们需要在官方网站(https://cmake.org/download/)上下载CMake(我们使用的是3.18.6版本)。下载完成后,直接运行安装程序,按照提示进行安装,一路Next即可。 步骤二:下载和安装PCL 接下来,我们需要从PCL官方网站(https://pointclouds.org/downloads/)上下载最新版的PCL(我们使用的是pcl-1.12.1-all-in-one-msvc2019-Win64.zip)。下载完成后,解压缩到本地文件夹中(例如C:\PCL)。 步骤三:配置短路径名称 由于PCL的目录结构比较深,某些编译器(例如VS2019)可能无法处理这样的目录结构。因此,我们需要使用短路径名称进行重命名。具体步骤如下: - 在资源管理器中,找到PCL文件夹,右键单击,选择"属性" - 在"属性"窗口中,点击"Web"选项卡,找到"本地路径"一栏,然后复制这个路径(例如:"C:\PCL\pcl-1.12.1-all-in-one-msvc2019-Win64") - 使用cmd命令行工具,将路径名称转换为短路径格式(例如:C:\PROGRA~1\..\PCL\pcl1~1.1-all)。 - 将短路径名称复制到剪贴板中。 步骤四:配置环境变量 打开"控制面板",选择"系统和安全"-"系统"-"高级系统设置"-"环境变量"。 在"系统变量"一栏中,找到"Path"变量,然后点击"编辑"按钮,在"编辑环境变量"窗口中,点击"新建"按钮,将剪贴板中的短路径名称添加进去,然后点击"确定"。 步骤五:生成PCL工程文件 接下来,我们需要使用CMake生成PCL的工程文件,具体步骤如下: - 打开CMakeGUI。 - 在"Where is the source code"一栏中,浏览到PCL源代码所在的目录。 - 在"Where to build the binaries"一栏中,选择一个空文件夹作为编译目录,并点击"Configure"按钮。 - 在"Configure"窗口中,选择"Visual Studio 16 2019"作为生成器,并点击"Finish"按钮。 - 在"Configure"窗口中,找到"WITH_QHULL"和"WITH_VTK"这两个选项,将它们都勾选上。 - 然后点击"Generate"按钮,CMake将会自动为我们生成PCL的工程文件。 步骤六:生成PCL工程 接下来,我们使用VS2019打开PCL的工程文件(例如pcl.sln),然后进行编译和生成。 在VS2019中打开工程文件时,需要选择"x64"作为平台,并确保编译器选项中指定了"Release"模式。 生成成功后,我们可以在PCL的bin文件夹下找到PCL的动态链接库和静态链接库文件(例如libpcl_common.lib、libpcl_io.lib等)。 至此,我们已经完成了PCL1.12.1的安装和配置工作,可以愉快地编写点云处理和分析的代码了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值