win10+vs2019+opencv4.5+pcl1.8.1+libtorch+realsense435开发配置

该博客主要介绍了使用D435深度相机的配置过程,包括在官网下载SDK文件、在VS中进行环境变量和项目配置、属性管理器配置等。同时,还详细说明了三维点云处理库PCL1.8.1的下载、安装、环境变量配置以及在VS2015中的配置,并给出了测试程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、visual studio2019下载安装

安装步骤时选的是【使用C++的桌面开发】和【通用Windows开发】,其他负荷和工具集等需要时运行visual studio Installer对visual studio 2019进行修改即可,一定要更改安装路径。

二、配置二维图像处理库opencv4.5.0

2.1 环境变量配置

1)此电脑-右键-高级系统设置-环境变量
2)找到系统变量中的Path变量双击Path点击新建:
D:\opencv4.5.0\build\x64\vc15\lib
D:\opencv4.5.0\build\x64\vc15\bin

2.2 在vs2019中配置

注意,只需配置一次,后面的vs工程只需添加即可。

1)创建一个新的vs项目,点击“视图”->“其他窗口”->“属性管理器”。

2)在Release | x64上右键单击,选择“添加新项目属性表”(配置Release | x64以下操作相同,注意添加库的时候添加对应的lib)。

3)设置项目属性表的名称为ReleaseX64,点击添加。(此处新建的项目属性表请另外单独保存下来,以后再在vs下建立PCL项目时直接添加该表即可,不需重复配置)

4)双击新建立的ReleaseX64项目属性表进行编辑。

5)点击“VC++目录”->“包含目录”,进行编辑。(头文件的搜索目录)
D:\opencv4.5.0\build\include\opencv2
D:\opencv4.5.0\build\include

6)点击“VC++目录”->“库目录”,进行编辑。
添加下列路径:
D:\opencv4.5.0\build\x64\vc15\lib

7)点击“链接器”->“输入”->“附加依赖项”,进行编辑,添加lib文件。
opencv_world450.lib

三、配置三维点云处理库pcl1.8.1

3.1.下载和安装

双击下载的PCL-1.8.1-AllInOne-msvc2015-win64.exe文件,选择安装路径:D:\PCL1.8.1\PCL1.8.1进行安装,勾选所有选项进行安装。

注意事项:在安装点击“我接收(I)”之后弹出来的对话框中一定要选择第二项AddPCL to the system PATH for all users.

期间弹出OpenNI的安装,按照提示安装即可,注意更换安装路径为D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2。(注意把PCL1.8.1中间的空格去掉,安装路径不能有空格)

解压与安装PCL版本对应的PDB文件(pcl-1.8.1-pdb-msvc2017-win64.zip),复制里面的文件到PCL安装路径下的bin文件夹,即:D:\PCL1.8.1\PCL1.8.1\bin。

3.2 环境变量配置

配置环境变量(注意配置结束后重启电脑):

“此电脑”->“属性”->“高级系统设置”->“环境变量”:

现在还要做的就是,将第三方的bin文件添加到系统文件中去,在系统变量中添加如下变量名和值:

OPENNI2_INCLUDE64    D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Include\
OPENNI2_LIB64   D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Lib\
OPENNI2_REDIST64    D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Redist\
PCL_ROOT   D:\PCL1.8.1\PCL1.8.1

然后在Path中手动添加:

D:\PCL1.8.1\PCL1.8.1\bin
D:\PCL1.8.1\PCL1.8.1\3rdParty\FLANN\bin
D:\PCL1.8.1\PCL1.8.1\3rdParty\Qhull\bin
D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Tools
D:\PCL1.8.1\PCL1.8.1\3rdParty\VTK\bin
D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Redist
D:\PCL1.8.1\PCL1.8.1\3rdParty\Boost\lib

3.3 在vs2019中配置

注意,只需配置一次,后面的vs工程只需添加即可。

1)创建一个新的vs项目,点击“视图”->“其他窗口”->“属性管理器”。

2)在Release | x64上右键单击,选择“添加新项目属性表”(配置Release | x64以下操作相同,注意添加库的时候添加对应的lib)。

3)设置项目属性表的名称为ReleaseX64,点击添加。(此处新建的项目属性表请另外单独保存下来,以后再在vs下建立PCL项目时直接添加该表即可,不需重复配置)

4)双击新建立的ReleaseX64项目属性表进行编辑。

5)点击“VC++目录”->“包含目录”,进行编辑。(头文件的搜索目录)

添加下列路径:

D:\PCL1.8.1\PCL1.8.1\include\pcl-1.8
D:\PCL1.8.1\PCL1.8.1\3rdParty\Boost\include\boost-1_64
D:\PCL1.8.1\PCL1.8.1\3rdParty\Eigen\eigen3
D:\PCL1.8.1\PCL1.8.1\3rdParty\FLANN\include
D:\PCL1.8.1\PCL1.8.1\3rdParty\FLANN\include\flann
D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Include
D:\PCL1.8.1\PCL1.8.1\3rdParty\Qhull\include
D:\PCL1.8.1\PCL1.8.1\3rdParty\VTK\include\vtk-8.0

6)点击“VC++目录”->“库目录”,进行编辑。

添加下列路径:

D:\PCL1.8.1\PCL1.8.1\lib
D:\PCL1.8.1\PCL1.8.1\3rdParty\Boost\lib
D:\PCL1.8.1\PCL1.8.1\3rdParty\FLANN\lib
D:\PCL1.8.1\PCL1.8.1\3rdParty\OpenNI2\Lib
D:\PCL1.8.1\PCL1.8.1\3rdParty\Qhull\lib
D:\PCL1.8.1\PCL1.8.1\3rdParty\VTK\lib

7)点击“链接器”->“输入”->“附加依赖项”,进行编辑,添加lib文件。

flann.lib
flann_cpp.lib
flann_cpp_s.lib
flann_s.lib
libboost_atomic-vc141-mt-1_64.lib
libboost_bzip2-vc141-mt-1_64.lib
libboost_chrono-vc141-mt-1_64.lib
libboost_container-vc141-mt-1_64.lib
libboost_context-vc141-mt-1_64.lib
libboost_coroutine-vc141-mt-1_64.lib
libboost_date_time-vc141-mt-1_64.lib
libboost_exception-vc141-mt-1_64.lib
libboost_fiber-vc141-mt-1_64.lib
libboost_filesystem-vc141-mt-1_64.lib
libboost_graph-vc141-mt-1_64.lib
libboost_graph_parallel-vc141-mt-1_64.lib
libboost_iostreams-vc141-mt-1_64.lib
libboost_locale-vc141-mt-1_64.lib
libboost_log-vc141-mt-1_64.lib
libboost_log_setup-vc141-mt-1_64.lib
libboost_math_c99-vc141-mt-1_64.lib
libboost_math_c99f-vc141-mt-1_64.lib
libboost_math_c99l-vc141-mt-1_64.lib
libboost_math_tr1-vc141-mt-1_64.lib
libboost_math_tr1f-vc141-mt-1_64.lib
libboost_math_tr1l-vc141-mt-1_64.lib
libboost_mpi-vc141-mt-1_64.lib
libboost_numpy-vc141-mt-1_64.lib
libboost_numpy3-vc141-mt-1_64.lib
libboost_prg_exec_monitor-vc141-mt-1_64.lib
libboost_program_options-vc141-mt-1_64.lib
libboost_python-vc141-mt-1_64.lib
libboost_python3-vc141-mt-1_64.lib
libboost_random-vc141-mt-1_64.lib
libboost_regex-vc141-mt-1_64.lib
libboost_serialization-vc141-mt-1_64.lib
libboost_signals-vc141-mt-1_64.lib
libboost_system-vc141-mt-1_64.lib
libboost_test_exec_monitor-vc141-mt-1_64.lib
libboost_thread-vc141-mt-1_64.lib
libboost_timer-vc141-mt-1_64.lib
libboost_type_erasure-vc141-mt-1_64.lib
libboost_unit_test_framework-vc141-mt-1_64.lib
libboost_wave-vc141-mt-1_64.lib
libboost_wserialization-vc141-mt-1_64.lib
libboost_zlib-vc141-mt-1_64.lib
OpenNI2.lib
pcl_common_release.lib
pcl_features_release.lib
pcl_filters_release.lib
pcl_io_ply_release.lib
pcl_io_release.lib
pcl_kdtree_release.lib
pcl_keypoints_release.lib
pcl_ml_release.lib
pcl_octree_release.lib
pcl_outofcore_release.lib
pcl_people_release.lib
pcl_recognition_release.lib
pcl_registration_release.lib
pcl_sample_consensus_release.lib
pcl_search_release.lib
pcl_segmentation_release.lib
pcl_stereo_release.lib
pcl_surface_release.lib
pcl_tracking_release.lib
pcl_visualization_release.lib
qhull.lib
qhullcpp.lib
qhullstatic.lib
qhullstatic_r.lib
qhull_p.lib
qhull_r.lib
vtkalglib-8.0.lib
vtkChartsCore-8.0.lib
vtkCommonColor-8.0.lib
vtkCommonComputationalGeometry-8.0.lib
vtkCommonCore-8.0.lib
vtkCommonDataModel-8.0.lib
vtkCommonExecutionModel-8.0.lib
vtkCommonMath-8.0.lib
vtkCommonMisc-8.0.lib
vtkCommonSystem-8.0.lib
vtkCommonTransforms-8.0.lib
vtkDICOMParser-8.0.lib
vtkDomainsChemistry-8.0.lib
vtkexoIIc-8.0.lib
vtkexpat-8.0.lib
vtkFiltersAMR-8.0.lib
vtkFiltersCore-8.0.lib
vtkFiltersExtraction-8.0.lib
vtkFiltersFlowPaths-8.0.lib
vtkFiltersGeneral-8.0.lib
vtkFiltersGeneric-8.0.lib
vtkFiltersGeometry-8.0.lib
vtkFiltersHybrid-8.0.lib
vtkFiltersHyperTree-8.0.lib
vtkFiltersImaging-8.0.lib
vtkFiltersModeling-8.0.lib
vtkFiltersParallel-8.0.lib
vtkFiltersParallelImaging-8.0.lib
vtkFiltersPoints-8.0.lib
vtkFiltersProgrammable-8.0.lib
vtkFiltersSelection-8.0.lib
vtkFiltersSMP-8.0.lib
vtkFiltersSources-8.0.lib
vtkFiltersStatistics-8.0.lib
vtkFiltersTexture-8.0.lib
vtkFiltersTopology-8.0.lib
vtkFiltersVerdict-8.0.lib
vtkfreetype-8.0.lib
vtkGeovisCore-8.0.lib
vtkgl2ps-8.0.lib
vtkhdf5-8.0.lib
vtkhdf5_hl-8.0.lib
vtkImagingColor-8.0.lib
vtkImagingCore-8.0.lib
vtkImagingFourier-8.0.lib
vtkImagingGeneral-8.0.lib
vtkImagingHybrid-8.0.lib
vtkImagingMath-8.0.lib
vtkImagingMorphological-8.0.lib
vtkImagingSources-8.0.lib
vtkImagingStatistics-8.0.lib
vtkImagingStencil-8.0.lib
vtkInfovisCore-8.0.lib
vtkInfovisLayout-8.0.lib
vtkInteractionImage-8.0.lib
vtkInteractionStyle-8.0.lib
vtkInteractionWidgets-8.0.lib
vtkIOAMR-8.0.lib
vtkIOCore-8.0.lib
vtkIOEnSight-8.0.lib
vtkIOExodus-8.0.lib
vtkIOExport-8.0.lib
vtkIOExportOpenGL-8.0.lib
vtkIOGeometry-8.0.lib
vtkIOImage-8.0.lib
vtkIOImport-8.0.lib
vtkIOInfovis-8.0.lib
vtkIOLegacy-8.0.lib
vtkIOLSDyna-8.0.lib
vtkIOMINC-8.0.lib
vtkIOMovie-8.0.lib
vtkIONetCDF-8.0.lib
vtkIOParallel-8.0.lib
vtkIOParallelXML-8.0.lib
vtkIOPLY-8.0.lib
vtkIOSQL-8.0.lib
vtkIOTecplotTable-8.0.lib
vtkIOVideo-8.0.lib
vtkIOXML-8.0.lib
vtkIOXMLParser-8.0.lib
vtkjpeg-8.0.lib
vtkjsoncpp-8.0.lib
vtklibharu-8.0.lib
vtklibxml2-8.0.lib
vtklz4-8.0.lib
vtkmetaio-8.0.lib
vtkNetCDF-8.0.lib
vtknetcdf_c++.lib
vtkoggtheora-8.0.lib
vtkParallelCore-8.0.lib
vtkpng-8.0.lib
vtkproj4-8.0.lib
vtkRenderingAnnotation-8.0.lib
vtkRenderingContext2D-8.0.lib
vtkRenderingContextOpenGL-8.0.lib
vtkRenderingCore-8.0.lib
vtkRenderingFreeType-8.0.lib
vtkRenderingGL2PS-8.0.lib
vtkRenderingImage-8.0.lib
vtkRenderingLabel-8.0.lib
vtkRenderingLIC-8.0.lib
vtkRenderingLOD-8.0.lib
vtkRenderingOpenGL-8.0.lib
vtkRenderingVolume-8.0.lib
vtkRenderingVolumeOpenGL-8.0.lib
vtksqlite-8.0.lib
vtksys-8.0.lib
vtktiff-8.0.lib
vtkverdict-8.0.lib
vtkViewsContext2D-8.0.lib
vtkViewsCore-8.0.lib
vtkViewsInfovis-8.0.lib
vtkzlib-8.0.lib
opengl32.lib

8)点击“视图”->“解决方案资源管理器”。回到工程编写测试程序如下:

#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>
int user_data;
using std::cout;


void viewerOneOff(pcl::visualization::PCLVisualizer& viewer) 
{
    viewer.setBackgroundColor(1.0, 0.5, 1.0);
}

int main() 
{
    pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);

    char strfilepath[256] = "bunny.pcd";
    if (-1 == pcl::io::loadPCDFile(strfilepath, *cloud)) {
        cout << "error input!" << endl;
        return -1;
    }

    cout << cloud->points.size() << endl;
    pcl::visualization::CloudViewer viewer("Cloud Viewer");

    viewer.showCloud(cloud);
    viewer.runOnVisualizationThreadOnce(viewerOneOff);
    system("pause");
    return 0;
}

四、libtorch配置

https://download.pytorch.org/libtorch/cu110/libtorch-win-shared-with-deps-1.7.1%2Bcu110.zip
libtorch的GPU release版本。
下载完成后解压在任意地址即可,这里假定文件在D:\libtorch中。libtorch文件夹内容如下。

4.1 环境变量设置

安装完成后,右键“此电脑”->“属性”->“高级系统设置”->点击系统变量中的Path->添加dll路径。(lib中有.lib和.dll两种文件,安装过opencv的小伙伴都知道,这两种文件一般是分到两个文件夹中的,.lib路径要在vs中进行设置,.dll一般要添加到环境变量中。)

加入"D:\libtorch\lib"

4.2 VS2019配置

1) 新建项目,“项目”->“属性”,将配置改为“Release”,平台设为“x64”。

2) 在配置属性里选择“调试”->“环境”,添加

    PATH=D:\libtorch\lib;%PATH%;

   防止出现c10.dll动态库找不到

3) 选择“包含目录”,添加

    D:\libtorch\include\torch\csrc\api\include

    D:\libtorch\include

4) 选择“库目录”,添加

    D:\libtorch\lib

5) 选择“链接器”->“附加依赖项”,添加

    c10.lib

    torch.lib

    torch_cpu.lib

    torch_cuda.lib

6) “链接器”->“命令行”,在其他选项中输入 /INCLUDE:?warp_size@cuda@at@@YAHXZ

这个命令大概是用来链接cuda库的,cpu版无需输入。

7) vs测试

torch::cuda::is_available()输出为1即为成功。

// for gpu version test
 
#include <opencv2/opencv.hpp>
#include <torch/script.h>
#include <torch/torch.h>
#include <iostream>
 
 
int main()
{
 
    std::cout << torch::cuda::is_available() << std::endl;
 
    torch::DeviceType device_type = at::kCUDA;
 
    std::cout << device_type << std::endl;
 
    torch::Tensor tensor = torch::rand({ 5,3 }).to(device_type);
 
    std::cout << tensor << std::endl;
 
    cv::Mat img = cv::imread("D:/test.png");
    cv::imshow("", img);
    cv::waitKey(1000);
    return 0;
 
}

五、配置RealsenseD435

在使用D435深度相机之前需要在官网下载对应的SDK文件:

http://pan.baidu.com/s/1Fd0ZG 密码:akj7

下载v2.38里面的sdk

首先要安装sdk.exe,安装完成后桌面会出现三个快捷方式共使用者测试和参考里面的内容。

点击Inter RealSense Viewer,测试能否成功链接相机,成功链接会出现如下画面:
5.1 环境变量配置
电脑——属性——高级系统设置——环境变量——系统变量——Path——如下图:

5.2 项目配置
进行创建的vs项目的属性页:项目-xx属性
1) 头文件配置
    在包含目录中添加两个文件夹,如下所示:

C:\Program Files (x86)\Intel RealSense SDK 2.0\samples

C:\Program Files (x86)\Intel RealSense SDK 2.0\include

2)库目录添加如下:

C:\Program Files (x86)\Intel RealSense SDK 2.0\lib\x64

3)链接器-输入的附件依赖项配置如下:
添加:realsense2.lib

5.3 属性管理器配置
根据选择的解决方案环境进行相应的配置,个人所选择的是:Release X64 解决方案平台。进入属性管理页进行配置,如下图所示:

其中添加的intel.realsense.props和glfw-imgui.props在C:\Program Files (x86)\Intel RealSense SDK 2.0文件夹下。其实,在处理图像数据和点云数据的时,常用到openCV和PCL数据库,需要添加对应的文件库,以保证程序的正常运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值