设为首页收藏本站
授权版本:2024_07
开启左侧

[Open3D] Open3D源码Windows下编译C++ Dll教程

[复制链接]
Criss 发表于 2024-6-12 15:09:56 | 显示全部楼层 |阅读模式
open3d_logo_horizontal.png
一、pcl和open3d的区别:
Open3D 和 PCL 都是点云处理的常用工具,但两者有以下不同之处:
1. 支持库:Open3D 是一种比 PCL 更新的点云处理库,支持许多新的算法和数据结构,而 PCL 的文档和社区更加成熟。
2. 兼容性:Open3D 目前只支持 Python 和 C++,而 PCL 支持多种语言,如C++,Python,Java等。
3. 功能模块:Open3D 更注重视觉化、相机模块构建等,而 PCL 更重视常规点云算法的实现,如点云配准、分割、分类、特征提取等。
4. 数据结构:Open3D 使用更直观的结构和容器来保存点云数据,例如三维点云使用 numpy数组(numpy array)来存储,而 PCL 使用 PointCloud 这一类点云数据结构,数据类型更为丰富。
总的来说,Open3D 更适合于点云可视化、深度学习等应用,而 PCL 更适用于传统的点云处理算法。

二、官方资源:
官网:https://www.open3d.org/
Github:https://github.com/isl-org/Open3D.git
预编译二进制文件:https://github.com/isl-org/Open3D/releases
文档地址:https://www.open3d.org/docs/
C++ API:https://www.open3d.org/docs/release/cpp_api/index.html

Open3D 是一个可以支持 3D 数据处理软件快速开发的开源库。支持快速开发处理 3D 数据的软件。Open3D 前端在 C++ 和 Python 中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。Open3D 是从一开始就开发出来的,带有很少的、经过仔细考虑的依赖项。它可以在不同的平台上设置,并且可以从源代码进行最小的编译。代码干净,样式一致,并通过清晰的代码审查机制进行维护。在点云、网格、rgbd 数据上都有支持。

https://www.bilibili.com/video/BV18b421v7sq/

三、CMake、VS、Git准备:
CMake下载地址:https://cmake.org/download/
下载当前最新版本:https://github.com/Kitware/CMake ... -windows-x86_64.zip
也可以通过本站网盘链接下载:https://pan.baidu.com/s/1b82MlaFltiFvflQlq8OcmQ  提取码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0


Visual Studio 2019或者2022,采用MSVC编译器编译。

Git For Windows:https://gitforwindows.org/ 安装过程一路向下默认即可。
也可以通过本站网盘链接下载:https://pan.baidu.com/s/1u0NgT_p9SDiWHRRL4BsMqw 提取码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0


四、CMake配置项目:
可以参考:https://www.open3d.org/docs/release/compilation.html#windows 部分说明
用Git克隆项目到本地:git clone https://github.com/isl-org/Open3D
我现在用的版本是:v0.18

CMake可以用命令行(需要提前将安装目录放到系统环境变量Path中,比如:D:\CMake\cmake-3.30.0-rc1-windows-x86_64\bin),也可以用GUI版本。
这里我们完全可以参考官方部分的命令行生成说明,为了方便演示,我这里选取GUI来说明。
载入我们拉取的代码根目录下即可(存在CMakeLists.txt文件的路径下):
微信截图_20240612143802.jpg
配置好源码路径后指定当前目录下/build为生成二进制的目录,然后点击配置“Configure”即可。
微信截图_20240612144205.jpg
选择我的“Visual Studio 17 2022”,“x64”,等待配置完成“Configuring done”出现。
微信截图_20240612144415.jpg
这个红色区域是我们当前的参数配置设置,我们根据需要修改一些配置:
  1. BUILD_SHARED_LIBS  //生成共享库 开启生成dll否则是静态库lib,我这里勾选上
  2. STATIC_WINDOWS_RUNTIME //静态运行时 编译dll的话就取消
  3. CMAKE_INSTALL_PREFIX  //编译完成后安装库的路径,这里默认在C:/Program Files/Open3D 自己改下
复制代码

等同于指令:
  1. cmake -G "Visual Studio 17 2022" -A x64 -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX="C:/Program Files/Open3D" ..
复制代码

其他的比如Python模块,也可以取消等等。

如果需要通过CUDA设备访问还需要开启:
  1. BUILD_CUDA_MODULE // ON CUDA支持
  2. BUILD_SYCL_MODULE // ON SYCL支持
复制代码

CUDA下载:https://developer.nvidia.com/cuda-downloads

最后点击“Generate”生成Visual Studio 2022的解决方案后,点击“Open Project”。
微信截图_20240612145457.jpg
没问题的话就点击全部编译后安装即可。
注意:如果开启了“BUILD_WEBRTC”将无法应用“BUILD_SHARED_LIBS”打开状态,这个主要用于Open3D的远程可视化使用,用不到就关闭吧。

我这里电脑编译中会导致电脑卡死(配置也不差呀?),后面尝试采用命令行方式编译和安装就正常了,而且没有VS编译那么占资源。
以管理员方式运行PowerShell(如果你没有改默认安装路径就需要管理员运行不然写不了C盘文件的),然后依次运行以下代码:
  1. cd D:\GitHub\Open3D\build
  2. cmake --build . --config Release --target ALL_BUILD
  3. cmake --build . --config Release --target INSTALL
复制代码

编译过程比较漫长,需要耐心等待,一般在0.5到1.5小时左右,安装后的库目录,D:\Open3D\bin\Open3D.dll就出来啦。
微信截图_20240612162530.jpg
接下来为了调用这个库可以把路径加入系统环境变量Path中,也可以直接加到自己程序目录下,运行D:\Open3D\bin\Open3D\Open3D.exe试试:
微信截图_20240612203322.jpg
读取一个斯坦福兔子的3d图《Stanford Bunny》看看效果吧!
链接:https://pan.baidu.com/s/1NvRu-vcLKOz4WXo7PVTr9A
提取码:
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
雾里看花 发表于 2024-6-12 20:25:30 | 显示全部楼层
感谢分享
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Leo_Zsu 发表于 7 天前 | 显示全部楼层
说的不错  新人多学习一点
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Leo_Zsu 发表于 5 天前 | 显示全部楼层
多谢楼主分享
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表