VS+Open3D_0.18.0版本环境配置

Open3D0.18.0版本较新,在网上参考资料编译,踩了不少雷,这里记录一下,结尾放上编译好的库

环境

VS2022+Open3D_0.18.0

准备

cmake >=3.20
python >=3.6

源码编译

  1. 在github官网下载Open3D的源码
    Open3D

  2. 解压后在目录下创建build和install目录
    在这里插入图片描述

  3. 打开cmake_gui,建议使用较新的cmake我这里用的是cmake3.29.2

  4. 设置源码路径和build路径,build路径就是第2步创建的build文件夹的路径
    在这里插入图片描述

  5. 点击Configure
    在这里插入图片描述
    6.选择生成器,这个你电脑有哪个版本就选哪个就行,我这里是VS2022,其实用VS2019也是可以的,其它地方不需要修改,然后点击finish即可
    在这里插入图片描述

  6. 如果网络条件不好的话,可能需要的时间比较长

  7. 将CMAKE_INSTALL_PREFIX值改为前面创建的install路径
    在这里插入图片描述

  8. 点击Generate

  9. 结束之后点击OpenProject,就会将项目在VS中打开
    在这里插入图片描述

  10. 这里看你要编译Debug版本的Open3D还是release版本进行选择
    在这里插入图片描述

  11. 我这里选的是Debug版本,右键单击ALL_BUILD项目点击生成
    在这里插入图片描述
    在这里插入图片描述

  12. 这里也要看网络环境,可能会很慢,生成结束之后,在ALL_BUILD项目下面会生成一个INSTALL项目,同样右键单击INSTALL项目,然后点击生成。
    在这里插入图片描述
    13.然后在install目录下会看到最后编译好的Open3D库,目录下应该是这样,但是据说不同Open3D库的编译结果有较大差异,我这里是将install里面生成的内容单独放到另一个文件夹里面了,但不单独都可以。
    在这里插入图片描述

VS配置Open3D环境

  1. 打开属性管理器,在项目对应的Debug/Release模式下添加一个属性表
    在这里插入图片描述
  2. 包含目录
    在这里插入图片描述
    在这里插入图片描述
  3. 库目录
    在这里插入图片描述
    在这里插入图片描述
  4. 链接器->输入->附加依赖项
    在这里插入图片描述
Open3D.lib
OpenGL32.lib
Open3D_3rdparty_assimp.lib
Open3D_3rdparty_blas_mkl_core.lib
Open3D_3rdparty_blas_mkl_intel_ilp64.lib
Open3D_3rdparty_blas_mkl_sequential.lib
Open3D_3rdparty_blas_mkl_tbb_thread.lib
Open3D_3rdparty_blas_tbb_static.lib
Open3D_3rdparty_civetweb_civetweb-cpp.lib
Open3D_3rdparty_civetweb_civetweb.lib
Open3D_3rdparty_curl.lib
Open3D_3rdparty_embree_embree3.lib
Open3D_3rdparty_embree_embree_avx.lib
Open3D_3rdparty_embree_embree_avx2.lib
Open3D_3rdparty_embree_lexers.lib
Open3D_3rdparty_embree_math.lib
Open3D_3rdparty_embree_simd.lib
Open3D_3rdparty_embree_sys.lib
Open3D_3rdparty_embree_tasking.lib
Open3D_3rdparty_filament_backend.lib
Open3D_3rdparty_filament_bluegl.lib
Open3D_3rdparty_filament_bluevk.lib
Open3D_3rdparty_filament_filabridge.lib
Open3D_3rdparty_filament_filaflat.lib
Open3D_3rdparty_filament_filamat_lite.lib
Open3D_3rdparty_filament_filament.lib
Open3D_3rdparty_filament_filameshio.lib
Open3D_3rdparty_filament_geometry.lib
Open3D_3rdparty_filament_ibl.lib
Open3D_3rdparty_filament_image.lib
Open3D_3rdparty_filament_meshoptimizer.lib
Open3D_3rdparty_filament_smol-v.lib
Open3D_3rdparty_filament_utils.lib
Open3D_3rdparty_fmt.lib
Open3D_3rdparty_glew.lib
Open3D_3rdparty_glfw.lib
Open3D_3rdparty_imgui.lib
Open3D_3rdparty_ippicv_ippicvmt.lib
Open3D_3rdparty_ippicv_ippiw.lib
Open3D_3rdparty_jpeg.lib
Open3D_3rdparty_jsoncpp.lib
Open3D_3rdparty_liblzf.lib
Open3D_3rdparty_png.lib
Open3D_3rdparty_qhullcpp.lib
Open3D_3rdparty_qhull_r.lib
Open3D_3rdparty_rply.lib
Open3D_3rdparty_tbb_tbbmalloc_static.lib
Open3D_3rdparty_tbb_tbb_static.lib
Open3D_3rdparty_tinyfiledialogs.lib
Open3D_3rdparty_uvatlas.lib
Open3D_3rdparty_vtk_vtkCommonCore-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonDataModel-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonExecutionModel-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonMath-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonMisc-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonSystem-9.1d.lib
Open3D_3rdparty_vtk_vtkCommonTransforms-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersCore-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersGeneral-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersModeling-9.1d.lib
Open3D_3rdparty_vtk_vtkFiltersSources-9.1d.lib
Open3D_3rdparty_vtk_vtkkissfft-9.1d.lib
Open3D_3rdparty_vtk_vtkpugixml-9.1d.lib
Open3D_3rdparty_vtk_vtksys-9.1d.lib
Open3D_3rdparty_webrtc_webrtc.lib
Open3D_3rdparty_webrtc_webrtc_extra.lib
Open3D_3rdparty_zeromq.lib
Open3D_3rdparty_zlib.lib

这里面是编译好的Open3D库路径下的lib文件夹下所有文件的文件名,注意还需要添加OpenGL32.lib
在这里插入图片描述

  1. c/c+±>代码生成->运行库,这里如果是Release版本就选MT,我这里是Debug版本选MTd
    在这里插入图片描述

测试结果

测试代码

#include <iostream>
#include <random>
#include <Open3D/Open3D.h>using namespace std;int main(int argc, char* argv[])
{// -------------------------生成点云-----------------------------auto noise_cloud = std::make_shared<open3d::geometry::PointCloud>();int N = 10000;noise_cloud->points_.resize(N);std::normal_distribution<> norm{ 0, 0.002 };std::random_device rd;std::default_random_engine rng{ rd() };for (size_t i = 0; i < N; ++i){noise_cloud->points_[i][0] = norm(rng);noise_cloud->points_[i][1] = norm(rng);noise_cloud->points_[i][2] = norm(rng);}open3d::io::WritePointCloudToPCD("Gaiss_noise.pcd", *noise_cloud, false);open3d::visualization::DrawGeometries({ noise_cloud }, "PointCloud", 1600, 900);return 0;
}

结果

在这里插入图片描述

参考文章

Win10系统下VisualStudio2019 配置Open3D-0.13.0
windows10编译open3d 0.13
open3d-0.10.0 + visual studio 2019 + windows

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2999128.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解堆结构:基础、应用及代码实践

文章目录 第一章&#xff1a;堆的定义和特性1. 堆的基本定义2. 完全二叉树3. 堆的类型和特性 第二章&#xff1a;堆的内部结构1. 二叉堆的数组表示法2. 索引关系 第三章&#xff1a;堆的基本操作1. 插入操作2. 删除操作3. 堆化&#xff08;Heapify&#xff09;过程 第四章&…

黑客常用的PHP漏洞利用技术

黑客常用的PHP漏洞利用技术 随着互联网的普及和发展&#xff0c;网络安全问题也成为了一个全球性的难题。而黑客作为网络安全的"敌人"&#xff0c;其手法也是不断创新和进化的。而在黑客攻击中&#xff0c;基于PHP的网站往往成为主要目标之一。PHP是一种功能强大且广…

鸿蒙内核源码分析(用栈方式篇) | 程序运行场地谁提供的

精读内核源码就绕不过汇编语言&#xff0c;鸿蒙内核有6个汇编文件&#xff0c;读不懂它们就真的很难理解以下问题. 1.系统调用是如何实现的? 2.CPU是如何切换任务和进程上下文的? 3.硬件中断是如何处理的? 4.main函数到底是怎么来的? 5.开机最开始发生了什么? 6.关机…

iOS 17上如何恢复数据?iOS 17 数据恢复软件

“您好&#xff0c;我正在为我的 iPhone 寻找一款iOS 17 数据恢复软件。升级到 iOS 17 后&#xff0c;我丢失了 iPhone 上的所有照片、联系人和消息。有什么建议吗&#xff1f;” ——丹尼 iOS 17数据恢复软件下载 升级到iOS 17后如何恢复丢失的数据&#xff1f;由于在 iPhone…

B端界面:美不胜收,第二弹12张。

上次分享第一期受到了大家欢迎&#xff0c;第二期来了&#xff0c;老规矩12张&#xff0c;欢迎大家来捧场。

JAVA同城服务美容美发到店服务上门服务系统源码微信小程序+微信公众号+H5+APP

随着科技的飞速发展&#xff0c;互联网和移动互联网已经渗透到我们生活的方方面面&#xff0c;同城服务美容美发到店服务上门服务系统应运而生&#xff0c;为整个行业带来了巨大的变革和无限的可能。该系统的重要性和优势不言而喻&#xff0c;对于行业发展和用户需求的影响深远…

C语言----链表

大家好&#xff0c;今天我们来看看C语言中的一个重要知识&#xff0c;链表。当然大家可以先从名字中看出来。就是一些表格用链子连接。那么大家是否想到了我们以前学的数组&#xff0c;因为数组也是相连的呀。是吧。但是链表与数组还是有区别的&#xff0c;那么链表是什么有什么…

Centos7安装K8S集群环境

一、系统设置 1、关闭swap 临时关闭swap swapoff -a 永久关闭 注释掉 /etc/fstab 中的下面配置 #/dev/mapper/centos-swap swap swap defaults 0 0 2、 关闭SELinux kubelet不支持SELinux, 这里需要将SELinux设置为permissive模式 setenforce 0 sed -i s/^SELINUXenfo…

使用 LooperPrinter 监控 Android 应用的卡顿

在 Android 开发中&#xff0c;主线程&#xff08;UI线程&#xff09;的卡顿直接影响用户体验。LooperPrinter 是一种有效的工具&#xff0c;可以帮助我们监测和识别这些卡顿。下面是如何实现 LooperPrinter 监控的详细步骤和相应的 Kotlin 代码示例。 步骤 1: 创建自定义的 P…

时序分解 | Matlab实现RLMD鲁棒性局部均值分解

时序分解 | Matlab实现RLMD鲁棒性局部均值分解 目录 时序分解 | Matlab实现RLMD鲁棒性局部均值分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现RLMD鲁棒性局部均值分解,可直接替换 Matlab语言 1.算法新颖小众&#xff0c;用的人很少&#xff0c;包含分解图…

公考学习平台|基于SprinBoot+vue的公考学习平台(源码+数据库+文档)

公考学习平台目录 目录 基于SprinBootvue的公考学习平台 一、前言 二、系统设计 三、系统功能设计 5.1用户信息管理 5.2 视频信息管理 5.3公告信息管理 5.1论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

万万没想到,原来这些维生素对帕金森有好处!

亲爱的读者朋友们&#xff0c;今天我们要聊一个特别的群体——帕金森病患者。在面对这一神经系统退行性疾病时&#xff0c;除了遵循医嘱进行药物治疗和康复锻炼&#xff0c;合理的饮食和营养补充也显得尤为重要。那么&#xff0c;究竟哪些维生素是他们不可或缺的呢&#xff1f;…

小剧场短剧影视小程序源码_后端PHP

项目运行截图 源码贡献 https://githubs.xyz/boot?app42 部署说明 linux/win任选 PHP版本&#xff1a;7.3/7.2&#xff08;测试时我用的7.2要安装sg扩展 &#xff09; 批量替换域名http://video.owoii.com更换为你的 批量替换域名http://120.79.77.163:1更换为你的 这两个…

基于python的舞蹈经验分享交流网站django+vue

1.运行环境&#xff1a;python3.7/python3.8。 2.IDE环境&#xff1a;pycharmmysql5.7/8.0; 3.数据库工具&#xff1a;Navicat11 4.硬件环境&#xff1a;windows11/10 8G内存以上 5.数据库&#xff1a;MySql 5.7/8.0版本&#xff1b; 运行成功后&#xff0c;在浏览器中输入&am…

使用JNI机制加载本地方法的小案例

JNI 最近在学习Android&#xff0c;其中需要使用到c的库&#xff0c;这个时候就要使用到JNI机制了&#xff0c;简单来说&#xff0c;就是可以通过这个机制&#xff0c;让java代码可以调用本地c语言编写的代码&#xff0c;将c语言编写的代码打包成动态库&#xff0c;然后&#…

新华三李玉涛:智算网络是解决AI算力需求的关键

近年来&#xff0c;人工智能领域呈现爆发式增长&#xff0c;尤其在OpenAI、文心一言等大模型的不断推出&#xff0c;参数规模实现了飞跃式增长。同时&#xff0c;Character AI、谷歌Bard等应用已经逐渐渗透至日常生活和工作当中&#xff0c;越来越多的人开始借助AIGC工具来提升…

大气污染扩散模型Calpuff技术应用

目前&#xff0c;大气污染仍为我国亟待解决的环境问题。为了弄清大气污染物排放后对周围环境的影响&#xff0c;需要了解污染物的扩散规律。Calpuff模型是一种三维非稳态拉格朗日扩散模型&#xff0c;可有效地处理非稳态&#xff08;如&#xff0c;熏烟、环流、地形和海岸等&am…

(06)vite与ts的结合

文章目录 系列全集package.json在根目录创建 tsconfig.json 文件在根目录创建 vite.config.ts 文件index.html额外的类型声明 系列全集 &#xff08;01&#xff09;vite 从启动服务器开始 &#xff08;02&#xff09;vite环境变量配置 &#xff08;03&#xff09;vite 处理 c…

PyQt5如何在Qtdesigner里修改按钮形状、大小、按钮颜色、字体颜色等参数,尤其是如何将按钮修改成圆形。

步骤如下&#xff1a; 1、右键选中你要修改的按钮&#xff0c;此处以Pushbutton为例&#xff0c;选择“改变样式表”&#xff0c;打开编辑样式表对话框&#xff0c;如下图所示 2、在编辑样式表对话框中输入如下代码&#xff1a; QPushButton{ border:1px solid red; /*边框…

扭蛋机小程序体验:线上扭蛋的无限魅力

随着科技的发展和互联网的普及&#xff0c;传统娱乐方式正逐渐与线上平台相结合&#xff0c;为用户带来全新的体验。扭蛋机小程序&#xff0c;作为这一趋势下的产物&#xff0c;凭借其独特的玩法和无限的魅力&#xff0c;正逐渐成为线上娱乐的新宠。 一、线上扭蛋机小程序的魅力…