【PCL专栏】VS2022与PCL1.12.0的配置

1 PCL库

1.1 PCL下载

之前配置完成,现在换了工作站,需要在工作站上重新配置环境,记录一下,便于以后提出改进。
访问Github,在搜索栏搜索PCL,找到PCL的存储库。
链接: github-PCL
在这里插入图片描述
在这里插入图片描述
选择自己想用的版本。
在这里插入图片描述

1.2 PCL安装

在这里插入图片描述

在这里插入图片描述
其中,安装之后PCL文件夹和OpenNI2文件夹并列,此时将并列的OpenNI2文件夹内文件有库,而3rdParty下面的有卸载和安装程序(.msi文件)。为保持方便,将3rdParty下面的OpenNI2卸载掉(在控制面板中将安装的OpenNI卸载,选择3rdParty中的msi文件进行安装),重新安装,安装路径放置在PCL\3rdParty\OpenNI2下。
在这里插入图片描述
在这里插入图片描述
OpenNI2安装完毕后面,呈现上图结果。

所有就绪后,将压缩包文件解压,所有的.pdb文件复制粘贴进入安装路径的bin文件夹中。
在这里插入图片描述

在这里插入图片描述

1.3 环境配置

在这里插入图片描述
新增的环境变量。
在这里插入图片描述
你可自己往里面添加绝对路径也可以相对路径,带百分号的是绝对路径。

// 以默认路径的绝对路径为例
C:\Program Files\PCL 1.12.0\bin
C:\Program Files\PCL 1.12.0\3rdParty\Boost\bin
C:\Program Files\PCL 1.12.0\3rdParty\FLANN\bin
C:\Program Files\PCL 1.12.0\3rdParty\Qhull\bin
C:\Program Files\PCL 1.12.0\3rdParty\VTK\bin
C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Redist
C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Tools

2 配置VS环境

在这里插入图片描述

2.1 添加包含目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

// 默认安装的路径
C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Include
C:\Program Files\PCL 1.12.0\3rdParty\Boost\include\boost-1_76
C:\Program Files\PCL 1.12.0\include\pcl-1.12
C:\Program Files\PCL 1.12.0\3rdParty\Qhull\include
C:\Program Files\PCL 1.12.0\3rdParty\VTK\include\vtk-9.0
C:\Program Files\PCL 1.12.0\3rdParty\FLANN\include
C:\Program Files\PCL 1.12.0\3rdParty\Eigen\eigen3

2.2 添加库目录

在这里插入图片描述
在这里插入图片描述

// 库目录
C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Lib
C:\Program Files\PCL 1.12.0\3rdParty\VTK\lib
C:\Program Files\PCL 1.12.0\3rdParty\Qhull\lib
C:\Program Files\PCL 1.12.0\3rdParty\FLANN\lib
C:\Program Files\PCL 1.12.0\3rdParty\Boost\lib
C:\Program Files\PCL 1.12.0\lib

2.3 配置调试属性

在这里插入图片描述

//环境PATH(根据自己电脑路径进行配置)
PATH=C:\Program Files\PCL 1.12.0\bin;C:\Program Files\PCL 1.12.0\3rdParty\VTK\bin;C:\Program Files\PCL 1.12.0\3rdParty\FLANN\bin;C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Redist;C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Lib;C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Include;C:\Program Files\PCL 1.12.0\3rdParty\OpenNI2\Tools

C/C++——语言——符合模式
在这里插入图片描述
C/C++——常规——SDL检查
在这里插入图片描述
C/C++——预处理器——定义

// 新增下面三条语句
BOOST_USE_WINDOWS_H
NOMINMAX
_CRT_SECURE_NO_DEPRECATE

在这里插入图片描述

2.4 添加依赖项

在这里插入图片描述
在这里插入图片描述

// 1.20.0版本中依赖项
OpenNI2.lib
vtkChartsCore-9.0d.lib
vtkCommonColor-9.0d.lib
vtkCommonComputationalGeometry-9.0d.lib
vtkCommonCore-9.0d.lib
vtkCommonDataModel-9.0d.lib
vtkCommonExecutionModel-9.0d.lib
vtkCommonMath-9.0d.lib
vtkCommonMisc-9.0d.lib
vtkCommonSystem-9.0d.lib
vtkCommonTransforms-9.0d.lib
vtkDICOMParser-9.0d.lib
vtkDomainsChemistry-9.0d.lib
vtkDomainsChemistryOpenGL2-9.0d.lib
vtkdoubleconversion-9.0d.lib
vtkexodusII-9.0d.lib
vtkexpat-9.0d.lib
vtkFiltersAMR-9.0d.lib
vtkFiltersCore-9.0d.lib
vtkFiltersExtraction-9.0d.lib
vtkFiltersFlowPaths-9.0d.lib
vtkFiltersGeneral-9.0d.lib
vtkFiltersGeneric-9.0d.lib
vtkFiltersGeometry-9.0d.lib
vtkFiltersHybrid-9.0d.lib
vtkFiltersHyperTree-9.0d.lib
vtkFiltersImaging-9.0d.lib
vtkFiltersModeling-9.0d.lib
vtkFiltersParallel-9.0d.lib
vtkFiltersParallelImaging-9.0d.lib
vtkFiltersPoints-9.0d.lib
vtkFiltersProgrammable-9.0d.lib
vtkFiltersSelection-9.0d.lib
vtkFiltersSMP-9.0d.lib
vtkFiltersSources-9.0d.lib
vtkFiltersStatistics-9.0d.lib
vtkFiltersTexture-9.0d.lib
vtkFiltersTopology-9.0d.lib
vtkFiltersVerdict-9.0d.lib
vtkfreetype-9.0d.lib
vtkGeovisCore-9.0d.lib
vtkgl2ps-9.0d.lib
vtkglew-9.0d.lib
vtkhdf5-9.0d.lib
vtkhdf5_hl-9.0d.lib
vtkImagingColor-9.0d.lib
vtkImagingColor-9.0.lib
vtkImagingCore-9.0d.lib
vtkImagingCore-9.0.lib
vtkImagingFourier-9.0d.lib
vtkImagingFourier-9.0.lib
vtkImagingGeneral-9.0d.lib
vtkImagingGeneral-9.0.lib
vtkImagingHybrid-9.0d.lib
vtkImagingHybrid-9.0.lib
vtkImagingMath-9.0d.lib
vtkImagingMath-9.0.lib
vtkImagingMorphological-9.0d.lib
vtkImagingMorphological-9.0.lib
vtkImagingSources-9.0d.lib
vtkImagingSources-9.0.lib
vtkImagingStatistics-9.0d.lib
vtkImagingStatistics-9.0.lib
vtkImagingStencil-9.0d.lib
vtkImagingStencil-9.0.lib
vtkInfovisCore-9.0d.lib
vtkInfovisLayout-9.0d.lib
vtkInteractionImage-9.0d.lib
vtkInteractionStyle-9.0d.lib
vtkInteractionWidgets-9.0d.lib
vtkIOAMR-9.0d.lib
vtkIOAsynchronous-9.0d.lib
vtkIOCityGML-9.0d.lib
vtkIOCore-9.0d.lib
vtkIOEnSight-9.0d.lib
vtkIOExodus-9.0d.lib
vtkIOExport-9.0d.lib
vtkIOExportGL2PS-9.0d.lib
vtkIOExportPDF-9.0d.lib
vtkIOGeometry-9.0d.lib
vtkIOImage-9.0d.lib
vtkIOImport-9.0d.lib
vtkIOInfovis-9.0d.lib
vtkIOLegacy-9.0d.lib
vtkIOLSDyna-9.0d.lib
vtkIOMINC-9.0d.lib
vtkIOMovie-9.0d.lib
vtkIONetCDF-9.0d.lib
vtkIOParallel-9.0d.lib
vtkIOParallelXML-9.0d.lib
vtkIOPLY-9.0d.lib
vtkIOSegY-9.0d.lib
vtkIOSQL-9.0d.lib
vtkIOTecplotTable-9.0d.lib
vtkIOVeraOut-9.0d.lib
vtkIOVideo-9.0d.lib
vtkIOXML-9.0d.lib
vtkIOXMLParser-9.0d.lib
vtkjpeg-9.0d.lib
vtkjsoncpp-9.0d.lib
vtklibharu-9.0d.lib
vtklibxml2-9.0d.lib
vtklz4-9.0d.lib
vtklzma-9.0d.lib
vtkmetaio-9.0d.lib
vtkNetCDF-9.0d.lib
vtkogg-9.0d.lib
vtkParallelCore-9.0d.lib
vtkpng-9.0d.lib
vtkpugixml-9.0d.lib
vtkRenderingAnnotation-9.0d.lib
vtkRenderingContext2D-9.0d.lib
vtkRenderingContextOpenGL2-9.0d.lib
vtkRenderingCore-9.0d.lib
vtkRenderingFreeType-9.0d.lib
vtkRenderingGL2PSOpenGL2-9.0d.lib
vtkRenderingImage-9.0d.lib
vtkRenderingLabel-9.0d.lib
vtkRenderingLOD-9.0d.lib
vtkRenderingOpenGL2-9.0d.lib
vtkRenderingVolume-9.0d.lib
vtkRenderingVolumeOpenGL2-9.0d.lib
vtksqlite-9.0d.lib
vtksys-9.0d.lib
vtktheora-9.0d.lib
vtktiff-9.0d.lib
vtkverdict-9.0d.lib
vtkViewsContext2D-9.0d.lib
vtkViewsCore-9.0d.lib
vtkViewsInfovis-9.0d.lib
vtkzlib-9.0d.lib
pcl_commond.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.lib
pcl_octreed.lib
pcl_outofcored.lib
pcl_peopled.lib
pcl_recognitiond.lib
pcl_registrationd.lib
pcl_sample_consensusd.lib
pcl_searchd.lib
pcl_segmentationd.lib
pcl_stereod.lib
pcl_surfaced.lib
pcl_trackingd.lib
pcl_visualizationd.lib

3 点云代码测试

// An highlighted block

#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>

using namespace pcl;
using namespace pcl::io;

int user_data;

void
viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
    viewer.setBackgroundColor(1.0, 0.5, 1.0);
    pcl::PointXYZ o;
    o.x = 1.0;
    o.y = 0;
    o.z = 0;
    //viewer.addSphere(o, 0.25, "sphere", 0);
    std::cout << "i only run once" << std::endl;

}

void
viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
    static unsigned count = 0;
    std::stringstream ss;
    ss << "Once per viewer loop: " << count++;
    //viewer.removeShape("text", 0);
    //viewer.addText(ss.str(), 200, 300, "text", 0);

    //FIXME: possible race condition here:
    user_data++;
}

int
main()
{

    pcl::PLYReader reader;
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>);
    reader.read<pcl::PointXYZ>("F:\\data_pointcloud\\rabbit\\bun000.ply", *cloud1);
    pcl::io::savePCDFile("F:\\data_pointcloud\\rabbit\\bun000.pcd", *cloud1);

    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile("F:\\data_pointcloud\\rabbit\\bun000.pcd", *cloud);

    pcl::visualization::CloudViewer viewer("Cloud Viewer");

    //blocks until the cloud is actually rendered
    viewer.showCloud(cloud);

    //use the following functions to get access to the underlying more advanced/powerful
    //PCLVisualizer

    //This will only get called once
    viewer.runOnVisualizationThreadOnce(viewerOneOff);

    //This will get called once per visualization iteration
    viewer.runOnVisualizationThread(viewerPsycho);
    while (!viewer.wasStopped())
    {
        //you can also do cool processing here
        //FIXME: Note that this is running in a separate thread from viewerPsycho
        //and you should guard against race conditions yourself...
        user_data++;
    }
    return 0;
}

运行结果
在这里插入图片描述
斯坦福兔子,在网上应该都能搜到。如果需要点云文件,可以后台联系。

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
要安装和配置pcl1.13.0与vs2022,你可以按照以下步骤进行操作: 1. 首先,下载pcl1.13.0的安装文件。你可以在中找到下载链接。 2. 安装pcl1.13.0。运行下载的安装文件"PCL-1.13.0-rc1-AllInOne-msvc2022-win64.exe"并按照提示完成安装。如果你遇到任何问题,可以参考中的文章以获取更详细的安装指南。 3. 配置vs2022。打开Visual Studio 2022,并按照以下步骤进行配置: a. 找到"工具"菜单,选择"选项"。 b. 在"选项"对话框中,展开"项目和解决方案"选项,选择"VC++目录"。 c. 在右侧的"包含目录"、"库目录"和"库文件"字段中,分别添加以下路径: - 包含目录:E:\awork\Package\PCL 1.13.0-rc1\include - 库目录:E:\awork\Package\PCL 1.13.0-rc1\lib - 库文件:E:\awork\Package\PCL 1.13.0-rc1\lib 4. 添加额外的库路径。根据中提供的信息,你还需要将以下路径添加到"库目录"中: - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\Boost\lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\FLANN\lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\Qhull\lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\OpenNI2\Lib - E:\awork\Package\PCL 1.13.0-rc1\3rdParty\VTK\lib 5. 完成配置后,你可以在vs2022中创建和编译与pcl1.13.0相关的项目了。 希望以上步骤对你有帮助,如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Win10 系统下VisualStudio2022 配置点云库 PCL 1.13.0](https://blog.csdn.net/qq_41339558/article/details/128184513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值