当前位置: 首页 > news >正文

win10 c++ VsCode 配置PCL open3d并显示

win10 c++ VsCode配置PCL open3d并显示

  • 一、效果图
  • 二、配置步骤
    • 2.1 安装vscode
    • 2.2 pcl-open3d配置
    • 2.3 vscode中设置
  • 三、测试代码
  • 四、注意事项及后续

一、效果图

在这里插入图片描述

二、配置步骤

2.1 安装vscode

vscode下载链接
在这里插入图片描述
下载中文插件、c++相关插件
在这里插入图片描述

在这里插入图片描述

2.2 pcl-open3d配置

1)下载配置好的环境(pcl1.11 、open3d0.18)
pcl1.11
pcl下载
open3d-0.18
open3d c++下载
2)自己配置注意事项
pcl 配置
pcl已经博客很多,搜一下就行。
open3d配置
open3d 中fmt glew gluw等库可能需要自己重新编译生成lib,否则后续显示会有问题,可以参考我提供的资源。

2.3 vscode中设置

创建文件夹
随意创建pcl_open3d文件夹,我创建在桌面。
在这里插入图片描述

打开文件夹,并新建文件
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fa19778df9284d079d5a5267bc61576b.png
先进入文件夹,后code .打开vscode
在这里插入图片描述
新建一个test.cpp文件
在这里插入图片描述

test.cpp分别测试open3d显示与pcl显示

/**PCL/open3d显示测试* @Gelou* 2025-3-16*/
#include <iostream>
#include <vector>
#include <string>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <open3d/Open3D.h>using namespace std;
int main()
{//open3d 显示点云open3d::geometry::PointCloud CurCloud;open3d::io::ReadPointCloud("1.pcd", CurCloud);cout<<"size:"<<CurCloud.points_.size()<<endl;open3d::visualization::Visualizer vis;vis.CreateVisualizerWindow("Open3D Point Cloud Viewer", 1024, 768);vis.AddGeometry(std::make_shared<open3d::geometry::PointCloud>(CurCloud));vis.Run();vis.DestroyVisualizerWindow();//pcl显示点云pcl::PointCloud<pcl::PointXYZRGB> cloud;pcl::io::loadPCDFile("1.pcd",cloud);cout<<"size:"<<cloud.size()<<endl;pcl::visualization::PCLVisualizer viewer("viewer");viewer.addPointCloud(cloud.makeShared(),"cloud");viewer.spin();return 0;
}

快捷键ctrl +shift +p进入编辑UI,选择cl.exe路径,设置X64的
在这里插入图片描述
在这里插入图片描述
随后,下图位置出现c_cpp_properties.json,设置如下:
在这里插入图片描述
我在这地方设置了pclopen3d 的路径

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","D:/PCL/PCL1.11.1/include/pcl-1.11","D:/PCL/PCL1.11.1/3rdParty/Boost/include/boost-1_74","D:/PCL/PCL1.11.1/3rdParty/Eigen/eigen3","D:/PCL/PCL1.11.1/3rdParty/FLANN/include","D:/PCL/PCL1.11.1/3rdParty/FLANN/include/flann","D:/PCL/PCL1.11.1/3rdParty/OpenNI2/Include","D:/PCL/PCL1.11.1/3rdParty/Qhull/include","D:/PCL/PCL1.11.1/3rdParty/vtk/include/vtk-8.2","D:/Open3D/include","D:/Open3D/include/open3d/3rdparty"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x86/cl.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-msvc-x64"}],"version": 4
}

快捷键ctrl +shift +p,输入task,点击第一个,随后生成task.json文件
在这里插入图片描述

我的task.json文件如下,配置了open3d和pcl路径与lib文件:

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: cl.exe 生成活动文件","command": "cl.exe","args": ["/Zi","/EHsc","/MD",  // 显式指定动态运行时库"/I","D:/PCL/PCL1.11.1/include/pcl-1.11","/I","D:/PCL/PCL1.11.1/3rdParty/Eigen/eigen3","/I","D:/PCL/PCL1.11.1/3rdParty/Boost/include/boost-1_74","/I","D:/PCL/PCL1.11.1/3rdParty/FLANN/include","/I","D:/PCL/PCL1.11.1/3rdParty/FLANN/include/flann","/I","D:/PCL/PCL1.11.1/3rdParty/OpenNI2/Include","/I","D:/PCL/PCL1.11.1/3rdParty/Qhull/include","/I","D:/PCL/PCL1.11.1/3rdParty/vtk/include/vtk-8.2","/I","D:/Open3D/include","/I","D:/Open3D/include/open3d/3rdparty","/nologo","/Fe${fileDirname}\\${fileBasenameNoExtension}.exe","${file}","/link","/MACHINE:X64", // 强制指定 64 位架构"/LIBPATH:D:/Open3D/lib","glew32.lib","glew32s.lib","Open3D.lib","glfw3.lib","fmt.lib","/LIBPATH:D:/PCL/PCL1.11.1/lib","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","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/Boost/lib","libboost_atomic-vc142-mt-x64-1_74.lib","libboost_bzip2-vc142-mt-x64-1_74.lib","libboost_chrono-vc142-mt-x64-1_74.lib","libboost_container-vc142-mt-x64-1_74.lib","libboost_context-vc142-mt-x64-1_74.lib","libboost_contract-vc142-mt-x64-1_74.lib","libboost_coroutine-vc142-mt-x64-1_74.lib","libboost_date_time-vc142-mt-x64-1_74.lib","libboost_exception-vc142-mt-x64-1_74.lib","libboost_fiber-vc142-mt-x64-1_74.lib","libboost_filesystem-vc142-mt-x64-1_74.lib","libboost_graph-vc142-mt-x64-1_74.lib","libboost_graph_parallel-vc142-mt-x64-1_74.lib","libboost_iostreams-vc142-mt-x64-1_74.lib","libboost_locale-vc142-mt-x64-1_74.lib","libboost_log-vc142-mt-x64-1_74.lib","libboost_log_setup-vc142-mt-x64-1_74.lib","libboost_math_c99-vc142-mt-x64-1_74.lib","libboost_math_c99f-vc142-mt-x64-1_74.lib","libboost_math_c99l-vc142-mt-x64-1_74.lib","libboost_math_tr1-vc142-mt-x64-1_74.lib","libboost_math_tr1f-vc142-mt-x64-1_74.lib","libboost_math_tr1l-vc142-mt-x64-1_74.lib","libboost_mpi-vc142-mt-x64-1_74.lib","libboost_nowide-vc142-mt-x64-1_74.lib","libboost_numpy38-vc142-mt-x64-1_74.lib","libboost_prg_exec_monitor-vc142-mt-x64-1_74.lib","libboost_program_options-vc142-mt-x64-1_74.lib","libboost_python38-vc142-mt-x64-1_74.lib","libboost_random-vc142-mt-x64-1_74.lib","libboost_regex-vc142-mt-x64-1_74.lib","libboost_serialization-vc142-mt-x64-1_74.lib","libboost_stacktrace_noop-vc142-mt-x64-1_74.lib","libboost_stacktrace_windbg-vc142-mt-x64-1_74.lib","libboost_stacktrace_windbg_cached-vc142-mt-x64-1_74.lib","libboost_system-vc142-mt-x64-1_74.lib","libboost_test_exec_monitor-vc142-mt-x64-1_74.lib","libboost_thread-vc142-mt-x64-1_74.lib","libboost_timer-vc142-mt-x64-1_74.lib","libboost_type_erasure-vc142-mt-x64-1_74.lib","libboost_unit_test_framework-vc142-mt-x64-1_74.lib","libboost_wave-vc142-mt-x64-1_74.lib","libboost_wserialization-vc142-mt-x64-1_74.lib","libboost_zlib-vc142-mt-x64-1_74.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/FLANN/lib","flann.lib","flann_cpp.lib","flann_cpp_s.lib","flann_s.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/OpenNI2/Lib","OpenNI2.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/Qhull/lib","qhull.lib","qhullcpp.lib","qhullstatic.lib","qhullstatic_r.lib","qhull_p.lib","qhull_r.lib","/LIBPATH:D:/PCL/PCL1.11.1/3rdParty/VTK/lib","QVTKWidgetPlugin.lib","vtkChartsCore-8.2.lib","vtkCommonColor-8.2.lib","vtkCommonComputationalGeometry-8.2.lib","vtkCommonCore-8.2.lib","vtkCommonDataModel-8.2.lib","vtkCommonExecutionModel-8.2.lib","vtkCommonMath-8.2.lib","vtkCommonMisc-8.2.lib","vtkCommonSystem-8.2.lib","vtkCommonTransforms-8.2.lib","vtkDICOMParser-8.2.lib","vtkDomainsChemistry-8.2.lib","vtkDomainsChemistryOpenGL2-8.2.lib","vtkdoubleconversion-8.2.lib","vtkexodusII-8.2.lib","vtkexpat-8.2.lib","vtkFiltersAMR-8.2.lib","vtkFiltersCore-8.2.lib","vtkFiltersExtraction-8.2.lib","vtkFiltersFlowPaths-8.2.lib","vtkFiltersGeneral-8.2.lib","vtkFiltersGeneric-8.2.lib","vtkFiltersGeometry-8.2.lib","vtkFiltersHybrid-8.2.lib","vtkFiltersHyperTree-8.2.lib","vtkFiltersImaging-8.2.lib","vtkFiltersModeling-8.2.lib","vtkFiltersParallel-8.2.lib","vtkFiltersParallelImaging-8.2.lib","vtkFiltersPoints-8.2.lib","vtkFiltersProgrammable-8.2.lib","vtkFiltersSelection-8.2.lib","vtkFiltersSMP-8.2.lib","vtkFiltersSources-8.2.lib","vtkFiltersStatistics-8.2.lib","vtkFiltersTexture-8.2.lib","vtkFiltersTopology-8.2.lib","vtkFiltersVerdict-8.2.lib","vtkfreetype-8.2.lib","vtkGeovisCore-8.2.lib","vtkgl2ps-8.2.lib","vtkglew-8.2.lib","vtkGUISupportQt-8.2.lib","vtkGUISupportQtOpenGL-8.2.lib","vtkGUISupportQtSQL-8.2.lib","vtkhdf5-8.2.lib","vtkhdf5_hl-8.2.lib","vtkImagingColor-8.2.lib","vtkImagingCore-8.2.lib","vtkImagingFourier-8.2.lib","vtkImagingGeneral-8.2.lib","vtkImagingHybrid-8.2.lib","vtkImagingMath-8.2.lib","vtkImagingMorphological-8.2.lib","vtkImagingSources-8.2.lib","vtkImagingStatistics-8.2.lib","vtkImagingStencil-8.2.lib","vtkInfovisCore-8.2.lib","vtkInfovisLayout-8.2.lib","vtkInteractionImage-8.2.lib","vtkInteractionStyle-8.2.lib","vtkInteractionWidgets-8.2.lib","vtkIOAMR-8.2.lib","vtkIOAsynchronous-8.2.lib","vtkIOCityGML-8.2.lib","vtkIOCore-8.2.lib","vtkIOEnSight-8.2.lib","vtkIOExodus-8.2.lib","vtkIOExport-8.2.lib","vtkIOExportOpenGL2-8.2.lib","vtkIOExportPDF-8.2.lib","vtkIOGeometry-8.2.lib","vtkIOImage-8.2.lib","vtkIOImport-8.2.lib","vtkIOInfovis-8.2.lib","vtkIOLegacy-8.2.lib","vtkIOLSDyna-8.2.lib","vtkIOMINC-8.2.lib","vtkIOMovie-8.2.lib","vtkIONetCDF-8.2.lib","vtkIOParallel-8.2.lib","vtkIOParallelXML-8.2.lib","vtkIOPLY-8.2.lib","vtkIOSegY-8.2.lib","vtkIOSQL-8.2.lib","vtkIOTecplotTable-8.2.lib","vtkIOVeraOut-8.2.lib","vtkIOVideo-8.2.lib","vtkIOXML-8.2.lib","vtkIOXMLParser-8.2.lib","vtkjpeg-8.2.lib","vtkjsoncpp-8.2.lib","vtklibharu-8.2.lib","vtklibxml2-8.2.lib","vtklz4-8.2.lib","vtklzma-8.2.lib","vtkmetaio-8.2.lib","vtkNetCDF-8.2.lib","vtkogg-8.2.lib","vtkParallelCore-8.2.lib","vtkpng-8.2.lib","vtkproj-8.2.lib","vtkpugixml-8.2.lib","vtkRenderingAnnotation-8.2.lib","vtkRenderingContext2D-8.2.lib","vtkRenderingContextOpenGL2-8.2.lib","vtkRenderingCore-8.2.lib","vtkRenderingFreeType-8.2.lib","vtkRenderingGL2PSOpenGL2-8.2.lib","vtkRenderingImage-8.2.lib","vtkRenderingLabel-8.2.lib","vtkRenderingLOD-8.2.lib","vtkRenderingOpenGL2-8.2.lib","vtkRenderingQt-8.2.lib","vtkRenderingVolume-8.2.lib","vtkRenderingVolumeOpenGL2-8.2.lib","vtksqlite-8.2.lib","vtksys-8.2.lib","vtktheora-8.2.lib","vtktiff-8.2.lib","vtkverdict-8.2.lib","vtkViewsContext2D-8.2.lib","vtkViewsCore-8.2.lib","vtkViewsInfovis-8.2.lib","vtkViewsQt-8.2.lib","vtkzlib-8.2.lib"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$msCompile"],"group": {"kind": "build","isDefault": true},"detail": "编译器: cl.exe"}]
}

添加配置
在这里插入图片描述

在这里插入图片描述
生成launch.json文件在这里插入图片描述

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(Windows) 启动","type": "cppvsdbg","request": "launch","program": "输入程序名称,例如 ${workspaceFolder}/a.exe","args": [],"stopAtEntry": true,"cwd": "${fileDirname}","environment": [],"console": "externalTerminal"}]
}

三、测试代码

选择test.cpp界面。快捷键ctrl +shift +B,点击生成,终端生成完成即可。

在这里插入图片描述
点击运行,分别显示open3d 与pcl环境下的点云显示。后续就可以进行二次开发了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、注意事项及后续

open3d 的fmt opengl相关的库需要自己先编译一下,git上不带。cmake配置应该更简单一点,但是我对cmake不太熟悉,后续在更新吧。

学习pcl open3d相关开发,关注专栏: 基于PCL、Open3d、Easy3d 、VTK等常见开源库的QT开发


http://www.mrgr.cn/news/94756.html

相关文章:

  • Couldn‘t install PSEXESVC service: 拒绝访问。
  • Function 原型 原型链 继承的实现
  • Oracle检索数据
  • SpringBoot 启动过程
  • 蓝桥杯每日一题——Acwing 5438. 密接牛追踪2
  • 【大模型实战篇】使用GPTQ量化QwQ-32B微调后的推理模型
  • C++特性——智能指针
  • 【leetcode hot 100 146】LRU缓存
  • 玩转云服务器——阿里云操作系统控制台体验测评
  • Android开源库——RxJava和RxAndroid
  • Python条件语句
  • uniapp 多环境配置打包,比较优雅的解决方案,全网相对优解
  • 基于Springboot+服务器磁盘的本地文件存储方案
  • [项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信
  • 文档搜索引擎
  • 栈区、堆区、静态区
  • LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 论文阅读
  • 解决Windows版Redis无法远程连接的问题
  • python爬虫Scrapy(6)之增量式
  • itsdangerous加解密源码分析|BUG汇总