当前位置:   article > 正文

Open3D0.18.0编译、安装、demo使用教程

open3d

写在前面

1、本文内容
Open3D在0.15版之后,提供编译好的包,本文是以最新版(截止202402,0.18.0)为例的Open3D在Windows下的使用教程;
Open3D其他版本的编译和使用相关教程:
各个版本的Open3D、PCL的编译、使用教程
2、平台/环境
windows10, visual studio 2019+;
通过cmake构建项目;

3、转载请注明出处:
https://blog.csdn.net/qq_41102371/article/details/136216165

准备Open3D

下列两种方式均可

1、使用官方编译好的包

下载官方编译好的Open3D包:
https://github.com/isl-org/Open3D/releases/tag/v0.18.0
下载release版本,带-dbg的是debug版本,另外注意,官方编译好的包都是动态库的,如果需要静态库的版本,仍需要自己通过源码编译,可以参考上方其他版本编译教程
在这里插入图片描述
解压放至指定位置,这里解压后进行了重命名,最后路径路径为D:\carlos\install\open3d180_dll
在这里插入图片描述

2、从源码编译

准备

下载Open3D 0.18.0源码https://github.com/isl-org/Open3D/releases/tag/v0.18.0
在这里插入图片描述

解压,并在同级目录下添加编译脚本compile_release.bat,这里都放在了Open3D180
在这里插入图片描述
在这里插入图片描述

compile_release.bat内容如下

cmake -DCMAKE_INSTALL_PREFIX="D:/carlos/install/open3d180" ^
-DBUILD_PYTHON_MODULE=OFF -DBUILD_WEBRTC=OFF -DBUILD_EXAMPLES=OFF ^
-S ./Open3D-0.18.0 -B ./build

cmake --build ./build --config Release --parallel 8
cmake --build ./build --config Release --target install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

其中DCMAKE_INSTALL_PREFIX是自定义安装路径,这里是"D:/carlos/install/open3d180"

编译

cd Open3D180
./compile_release.bat
  • 1
  • 2

在编译过程中,会自动从github上下载第三方的库,因为国内网络原因,有的时候下载不下来就会报错,解决方法就是找到dst和src,例如下方就是下载ispc-v1.16.1-windows.zip失败,找到源文件地址(红框),自己去手动下载后放在给出的dst路径(黄框)就行,然后继续执行compile_release.bat并去下载再次下载失败的包,直到所有的包都有完整下载
在这里插入图片描述
如果出现错误
error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MT_StaticRelease”
参考windows/linux/mac上编译open3d 0.17.0
编译好之后,就会在上面指定的D:/carlos/install/open3d180路径进行安装
在这里插入图片描述
在这里插入图片描述

使用demo

创建一个文件夹open3d_demo,从https://github.com/isl-org/open3d-cmake-find-package下载官方demo(见(open3d 0.13的c++版本使用demo),
添加编译脚本compile_180.bat,文件结构如下
在这里插入图片描述
在这里插入图片描述
其中compile_180.bat内容为:

rem By carlos_lee 202402
cmake -DOpen3D_DIR="D:/carlos/install/open3d180_dll/CMake" ^
-DCMAKE_INSTALL_PREFIX="D:/carlos/install/open3d180_dll" -S ./open3d-cmake-find-package . -B ./build
cmake --build ./build --config Release --target ALL_BUILD
  • 1
  • 2
  • 3
  • 4

编译demo

打开命令行,运行compile_180.bat
编译成功后会生成Draw.exe
在这里插入图片描述

运行demo

.\build\Release\Draw.exe
  • 1

在这里插入图片描述

相关说明

关于动态库和静态库:
简单说动态库是运行时加载的,在windows中为xxx.dll(Open3D.dll)文件,同时有对应的xxx.lib;而静态库是在编译时就链接的,也就是如果Open3D编译成静态库之后,会仅生成一个Open3D.lib,在编译的时候,就会把Open3D.lib链接到当前程序,不需要在运行时加载其他东西,可以看看这篇文章https://www.itgh.cn/post/ddhde2b4.html

在open3d-cmake-find-package/CMakeLists.txt中,最后这段脚本

# On Windows if BUILD_SHARED_LIBS is enabled, copy .dll files to the executable directory
if(WIN32)
    get_target_property(open3d_type Open3D::Open3D TYPE)
    if(open3d_type STREQUAL "SHARED_LIBRARY")
        message(STATUS "Copying Open3D.dll to ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>")
        add_custom_command(TARGET Draw POST_BUILD
                           COMMAND ${CMAKE_COMMAND} -E copy
                                   ${CMAKE_INSTALL_PREFIX}/bin/Open3D.dll
                                   ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
    endif()
endif()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

会自动把open3d180_dll/bin/Open3D.dll复制到Draw.exe同级目录下
在这里插入图片描述

如果运行没反应或过程中提示找不到Open3D.dll,请检查Draw.exe同级目录下是否有Open3D.dll,并检查上述步骤是否正确,或者手动将open3d180_dll/bin/Open3D.dll复制到Draw.exe的同级目录下

参考

文中已列出

主要做激光/影像三维重建,配准、分割等常用点云算法,熟悉open3d、pcl等开源点云库,技术交流、咨询可私信

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/575327
推荐阅读
相关标签
  

闽ICP备14008679号