PCL 1.12.1库目录、包含目录及输入lib库文件名称详细配置说明

一、include包含目录

C:\pcl12\PCL 1.12.1\3rdParty\Boost\include\boost-1_78
C:\pcl12\PCL 1.12.1\3rdParty\Eigen\eigen3\include\eigen3
C:\pcl12\PCL 1.12.1\3rdParty\VTK\include\vtk-9.1
C:\pcl12\PCL 1.12.1\3rdParty\Qhull\include
C:\pcl12\PCL 1.12.1\3rdParty\VTK
C:\pcl12\PCL 1.12.1\include\pcl-1.12
C:\pcl12\PCL 1.12.1\3rdParty\FLANN\include

二、lib库目录

$(VC_LibraryPath_x64)
$(WindowsSDK_LibraryPath_x64)

C:\pcl12\PCL 1.12.1\lib
C:\pcl12\PCL 1.12.1\3rdParty\VTK\lib
C:\pcl12\PCL 1.12.1\3rdParty\Boost\lib
C:\pcl12\PCL 1.12.1\3rdParty\FLANN\lib
C:\pcl12\PCL 1.12.1\3rdParty\OpenNI2\Lib
C:\pcl12\PCL 1.12.1\3rdParty\Qhull\lib

三、技巧

快速读取lib文件的方法

Cmd里面运行dir *.lib /b > all_lib.txt

然后all_lib.txt里面就会出来所有lib文件名字

四、vtk库

vtkcgns-9.1d.lib
vtkChartsCore-9.1d.lib
vtkCommonColor-9.1d.lib
vtkCommonComputationalGeometry-9.1d.lib
vtkCommonCore-9.1d.lib
vtkCommonDataModel-9.1d.lib
vtkCommonExecutionModel-9.1d.lib
vtkCommonMath-9.1d.lib
vtkCommonMisc-9.1d.lib
vtkCommonSystem-9.1d.lib
vtkCommonTransforms-9.1d.lib
vtkDICOMParser-9.1d.lib
vtkDomainsChemistry-9.1d.lib
vtkDomainsChemistryOpenGL2-9.1d.lib
vtkdoubleconversion-9.1d.lib
vtkexodusII-9.1d.lib
vtkexpat-9.1d.lib
vtkFiltersAMR-9.1d.lib
vtkFiltersCore-9.1d.lib
vtkFiltersExtraction-9.1d.lib
vtkFiltersFlowPaths-9.1d.lib
vtkFiltersGeneral-9.1d.lib
vtkFiltersGeneric-9.1d.lib
vtkFiltersGeometry-9.1d.lib
vtkFiltersHybrid-9.1d.lib
vtkFiltersHyperTree-9.1d.lib
vtkFiltersImaging-9.1d.lib
vtkFiltersModeling-9.1d.lib
vtkFiltersParallel-9.1d.lib
vtkFiltersParallelImaging-9.1d.lib
vtkFiltersPoints-9.1d.lib
vtkFiltersProgrammable-9.1d.lib
vtkFiltersSelection-9.1d.lib
vtkFiltersSMP-9.1d.lib
vtkFiltersSources-9.1d.lib
vtkFiltersStatistics-9.1d.lib
vtkFiltersTexture-9.1d.lib
vtkFiltersTopology-9.1d.lib
vtkFiltersVerdict-9.1d.lib
vtkfmt-9.1d.lib
vtkfreetype-9.1d.lib
vtkGeovisCore-9.1d.lib
vtkgl2ps-9.1d.lib
vtkglew-9.1d.lib
vtkhdf5-9.1d.lib
vtkhdf5_hl-9.1d.lib
vtkImagingColor-9.1d.lib
vtkImagingCore-9.1d.lib
vtkImagingFourier-9.1d.lib
vtkImagingGeneral-9.1d.lib
vtkImagingHybrid-9.1d.lib
vtkImagingMath-9.1d.lib
vtkImagingMorphological-9.1d.lib
vtkImagingSources-9.1d.lib
vtkImagingStatistics-9.1d.lib
vtkImagingStencil-9.1d.lib
vtkInfovisCore-9.1d.lib
vtkInfovisLayout-9.1d.lib
vtkInteractionImage-9.1d.lib
vtkInteractionStyle-9.1d.lib
vtkInteractionWidgets-9.1d.lib
vtkIOAMR-9.1d.lib
vtkIOAsynchronous-9.1d.lib
vtkIOCGNSReader-9.1d.lib
vtkIOChemistry-9.1d.lib
vtkIOCityGML-9.1d.lib
vtkIOCONVERGECFD-9.1d.lib
vtkIOCore-9.1d.lib
vtkIOEnSight-9.1d.lib
vtkIOExodus-9.1d.lib
vtkIOExport-9.1d.lib
vtkIOExportGL2PS-9.1d.lib
vtkIOExportPDF-9.1d.lib
vtkIOGeometry-9.1d.lib
vtkIOHDF-9.1d.lib
vtkIOImage-9.1d.lib
vtkIOImport-9.1d.lib
vtkIOInfovis-9.1d.lib
vtkIOIOSS-9.1d.lib
vtkIOLegacy-9.1d.lib
vtkIOLSDyna-9.1d.lib
vtkIOMINC-9.1d.lib
vtkIOMotionFX-9.1d.lib
vtkIOMovie-9.1d.lib
vtkIONetCDF-9.1d.lib
vtkIOOggTheora-9.1d.lib
vtkIOParallel-9.1d.lib
vtkIOParallelXML-9.1d.lib
vtkIOPLY-9.1d.lib
vtkIOSegY-9.1d.lib
vtkIOSQL-9.1d.lib
vtkioss-9.1d.lib
vtkIOTecplotTable-9.1d.lib
vtkIOVeraOut-9.1d.lib
vtkIOVideo-9.1d.lib
vtkIOXML-9.1d.lib
vtkIOXMLParser-9.1d.lib
vtkjpeg-9.1d.lib
vtkjsoncpp-9.1d.lib
vtkkissfft-9.1d.lib
vtklibharu-9.1d.lib
vtklibproj-9.1d.lib
vtklibxml2-9.1d.lib
vtkloguru-9.1d.lib
vtklz4-9.1d.lib
vtklzma-9.1d.lib
vtkmetaio-9.1d.lib
vtknetcdf-9.1d.lib
vtkogg-9.1d.lib
vtkParallelCore-9.1d.lib
vtkParallelDIY-9.1d.lib
vtkpng-9.1d.lib
vtkpugixml-9.1d.lib
vtkRenderingAnnotation-9.1d.lib
vtkRenderingContext2D-9.1d.lib
vtkRenderingContextOpenGL2-9.1d.lib
vtkRenderingCore-9.1d.lib
vtkRenderingFreeType-9.1d.lib
vtkRenderingGL2PSOpenGL2-9.1d.lib
vtkRenderingImage-9.1d.lib
vtkRenderingLabel-9.1d.lib
vtkRenderingLOD-9.1d.lib
vtkRenderingOpenGL2-9.1d.lib
vtkRenderingSceneGraph-9.1d.lib
vtkRenderingUI-9.1d.lib
vtkRenderingVolume-9.1d.lib
vtkRenderingVolumeOpenGL2-9.1d.lib
vtkRenderingVtkJS-9.1d.lib
vtksqlite-9.1d.lib
vtksys-9.1d.lib
vtkTestingRendering-9.1d.lib
vtktheora-9.1d.lib
vtktiff-9.1d.lib
vtkverdict-9.1d.lib
vtkViewsContext2D-9.1d.lib
vtkViewsCore-9.1d.lib
vtkViewsInfovis-9.1d.lib
vtkWrappingTools-9.1d.lib
vtkzlib-9.1d.lib

 五、boost库

特别说明:

需要删除掉32的,否则在编译的时候提示目标不对应(还要删掉十来个没用的,下面的是程序可正常运行状态下备份)

libboost_atomic-vc143-mt-gd-x64-1_78.lib
libboost_atomic-vc143-mt-x64-1_78.lib
libboost_chrono-vc143-mt-gd-x64-1_78.lib
libboost_chrono-vc143-mt-x64-1_78.lib
libboost_container-vc143-mt-gd-x64-1_78.lib
libboost_container-vc143-mt-x64-1_78.lib
libboost_context-vc143-mt-gd-x64-1_78.lib
libboost_context-vc143-mt-x64-1_78.lib
libboost_contract-vc143-mt-gd-x64-1_78.lib
libboost_contract-vc143-mt-x64-1_78.lib
libboost_coroutine-vc143-mt-gd-x64-1_78.lib
libboost_coroutine-vc143-mt-x64-1_78.lib
libboost_date_time-vc143-mt-gd-x64-1_78.lib
libboost_date_time-vc143-mt-x64-1_78.lib
libboost_exception-vc143-mt-gd-x64-1_78.lib
libboost_exception-vc143-mt-x64-1_78.lib
libboost_filesystem-vc143-mt-gd-x64-1_78.lib
libboost_filesystem-vc143-mt-x64-1_78.lib
libboost_graph-vc143-mt-gd-x64-1_78.lib
libboost_graph-vc143-mt-x64-1_78.lib
libboost_iostreams-vc143-mt-gd-x64-1_78.lib
libboost_iostreams-vc143-mt-x64-1_78.lib
libboost_json-vc143-mt-gd-x64-1_78.lib
libboost_json-vc143-mt-x64-1_78.lib
libboost_locale-vc143-mt-gd-x64-1_78.lib
libboost_locale-vc143-mt-x64-1_78.lib
libboost_log-vc143-mt-gd-x64-1_78.lib
libboost_log-vc143-mt-x64-1_78.lib
libboost_log_setup-vc143-mt-gd-x64-1_78.lib
libboost_log_setup-vc143-mt-x64-1_78.lib
libboost_math_c99-vc143-mt-gd-x64-1_78.lib
libboost_math_c99-vc143-mt-x64-1_78.lib
libboost_math_c99f-vc143-mt-gd-x64-1_78.lib
libboost_math_c99f-vc143-mt-x64-1_78.lib
libboost_math_c99l-vc143-mt-gd-x64-1_78.lib
libboost_math_c99l-vc143-mt-x64-1_78.lib
libboost_math_tr1-vc143-mt-gd-x64-1_78.lib
libboost_math_tr1-vc143-mt-x64-1_78.lib
libboost_math_tr1f-vc143-mt-gd-x64-1_78.lib
libboost_math_tr1f-vc143-mt-x64-1_78.lib
libboost_math_tr1l-vc143-mt-gd-x64-1_78.lib
libboost_math_tr1l-vc143-mt-x64-1_78.lib
libboost_nowide-vc143-mt-gd-x64-1_78.lib
libboost_nowide-vc143-mt-x64-1_78.lib
libboost_numpy39-vc143-mt-gd-x64-1_78.lib
libboost_numpy39-vc143-mt-x64-1_78.lib
libboost_program_options-vc143-mt-x64-1_78.lib
libboost_python39-vc143-mt-gd-x64-1_78.lib
libboost_python39-vc143-mt-x64-1_78.lib
libboost_random-vc143-mt-gd-x64-1_78.lib
libboost_random-vc143-mt-x64-1_78.lib
libboost_regex-vc143-mt-gd-x64-1_78.lib
libboost_regex-vc143-mt-x64-1_78.lib
libboost_serialization-vc143-mt-gd-x64-1_78.lib
libboost_serialization-vc143-mt-x64-1_78.lib
libboost_system-vc143-mt-gd-x64-1_78.lib
libboost_system-vc143-mt-x64-1_78.lib
libboost_thread-vc143-mt-gd-x64-1_78.lib
libboost_thread-vc143-mt-x64-1_78.lib
libboost_timer-vc143-mt-gd-x64-1_78.lib
libboost_timer-vc143-mt-x64-1_78.lib
libboost_type_erasure-vc143-mt-gd-x64-1_78.lib
libboost_type_erasure-vc143-mt-x64-1_78.lib
libboost_wave-vc143-mt-gd-x64-1_78.lib
libboost_wave-vc143-mt-x64-1_78.lib
libboost_wserialization-vc143-mt-gd-x64-1_78.lib
libboost_wserialization-vc143-mt-x64-1_78.lib

 六、一些其他的库

OpenNI2.lib
pcl_commond.lib
pcl_octreed.lib
qhullstatic_rd.lib
qhull_rd.lib
qhullcpp_d.lib
qhullstatic_d.lib
flann_cpp_s-gd.lib
flann_cpp-gd.lib
flann-gd.lib
flann_s-gd.lib
pcl_featuresd.lib
pcl_filtersd.lib
pcl_iod.lib
pcl_io_plyd.lib
pcl_kdtreed.lib
pcl_keypointsd.lib
pcl_mld.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

vfw32.lib
glu32.lib
opengl32.lib
comctl32.lib
wsock32.lib
ws2_32.lib
Psapi.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
rpcrt4.lib
delayimp.lib

根据上面的配置就可以运行程序了,或者打开pcl安装目录,找到下面的exe文件,如果双击以后黑屏不报错即成功。如果报错,请检查pcl里面引用的各个库,位置在C:\pcl12\PCL 1.12.1\3rdParty

下面,一共有六个库,Boost、Eigen、FLANN、OpenNI2、Qhull、VTK

检查这六个库里面的文件是否与上面的路径一致,如果不一致请重新安装,特别需要注意OpenNI2的位置,这个库是单独安装的,默认安装的路径不在3rdParty目录下面。

此外,还需根据情况下载Boost、Eigen、VTK对应的版本进行编译。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个基本的示例代码,展示了如何使用PCL 1.12.1中的SHOT算法处理两个点云,并将结果输出为XYZRGB格式。注意,此代码仅作为示例参考,具体实现可能需要根据数据集和需求进行调整。 ```cpp #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/features/shot.h> #include <pcl/visualization/pcl_visualizer.h> int main(int argc, char** argv) { // 读取两个点云 pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZRGB>); pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZRGB>); pcl::PCDReader reader; reader.read(argv[1], *cloud1); reader.read(argv[2], *cloud2); // 计算SHOT特征 pcl::SHOTEstimation<pcl::PointXYZRGB, pcl::Normal, pcl::SHOT352> shot; pcl::PointCloud<pcl::Normal>::Ptr normals1(new pcl::PointCloud<pcl::Normal>); pcl::PointCloud<pcl::Normal>::Ptr normals2(new pcl::PointCloud<pcl::Normal>); pcl::NormalEstimation<pcl::PointXYZRGB, pcl::Normal> norm_est; norm_est.setInputCloud(cloud1); norm_est.setRadiusSearch(0.03); norm_est.compute(*normals1); shot.setInputCloud(cloud1); shot.setInputNormals(normals1); pcl::search::KdTree<pcl::PointXYZRGB>::Ptr tree1(new pcl::search::KdTree<pcl::PointXYZRGB>); shot.setSearchMethod(tree1); pcl::PointCloud<pcl::SHOT352>::Ptr shot1(new pcl::PointCloud<pcl::SHOT352>); shot.compute(*shot1); norm_est.setInputCloud(cloud2); norm_est.compute(*normals2); shot.setInputCloud(cloud2); shot.setInputNormals(normals2); pcl::search::KdTree<pcl::PointXYZRGB>::Ptr tree2(new pcl::search::KdTree<pcl::PointXYZRGB>); shot.setSearchMethod(tree2); pcl::PointCloud<pcl::SHOT352>::Ptr shot2(new pcl::PointCloud<pcl::SHOT352>); shot.compute(*shot2); // 输出结果为XYZRGB格式 pcl::PointCloud<pcl::PointXYZRGB>::Ptr result(new pcl::PointCloud<pcl::PointXYZRGB>); for (int i = 0; i < cloud1->size(); ++i) { pcl::PointXYZRGB p; p.x = cloud1->at(i).x; p.y = cloud1->at(i).y; p.z = cloud1->at(i).z; p.r = shot1->at(i).descriptor[0] * 255; p.g = shot1->at(i).descriptor[1] * 255; p.b = shot1->at(i).descriptor[2] * 255; result->push_back(p); } for (int i = 0; i < cloud2->size(); ++i) { pcl::PointXYZRGB p; p.x = cloud2->at(i).x; p.y = cloud2->at(i).y; p.z = cloud2->at(i).z; p.r = shot2->at(i).descriptor[0] * 255; p.g = shot2->at(i).descriptor[1] * 255; p.b = shot2->at(i).descriptor[2] * 255; result->push_back(p); } // 可视化结果 pcl::visualization::PCLVisualizer viewer("SHOT Result"); viewer.addPointCloud(result, "result"); viewer.spin(); return 0; } ``` 在以上代码中,我们首先读取两个点云并创建SHOT算法对象。然后,我们计算出每个点的SHOT特征,将结果存储在`shot1`和`shot2`两个PointCloud对象中。最后,我们将计算结果转换为XYZRGB格式,并将其可视化。 请注意,SHOT算法通常需要较长的计算时间,具体取决于数据集的大小和复杂性。如果您的点云较大,可能需要使用多线程或GPU加速来提高计算效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胡子大叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值