目录
- 写在前面
- 准备Open3D
- 使用demo
- 编译demo
- 运行demo
- 相关说明
- 参考
- 完
写在前面
1、本文内容
Open3D在0.15版之后,提供编译好的包,本文是以最新版(截止202402,0.18.0)为例的Open3D使用教程;
Open3D其他版本的编译和使用相关教程:
open3d/pcl常见问题
windows10编译open3d 0.13
windows/linux/mac上编译open3d 0.17.0
2、平台/环境
windows10, visual studio 2019+;
Ubuntu1804;
通过cmake构建项目;
3、转载请注明出处:
https://blog.csdn.net/qq_41102371/article/details/136216165
准备Open3D
下载官方编译好的Open3D包:
https://github.com/isl-org/Open3D/releases/tag/v0.18.0
下载release版本,带-dbg的是debug版本,另外注意,官方编译好的包都是动态库的,如果需要静态库的版本,仍需要自己通过源码编译,可以参考上方其他版本编译教程
解压放至指定位置,这里解压后进行了重命名,最后路径路径为D:\carlos\install\open3d180_dll
使用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
编译demo
打开命令行,运行compile_180.bat
编译成功后会生成Draw.exe
运行demo
.\build\Release\Draw.exe
相关说明
关于动态库和静态库:
简单说动态库是运行时加载的,在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_BUILDCOMMAND ${CMAKE_COMMAND} -E copy${CMAKE_INSTALL_PREFIX}/bin/Open3D.dll${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)endif()
endif()
会自动把open3d180_dll/bin/Open3D.dll复制到Draw.exe同级目录下
如果运行没反应或过程中提示找不到Open3D.dll,请检查Draw.exe同级目录下是否有Open3D.dll,并检查上述步骤是否正确,或者手动将open3d180_dll/bin/Open3D.dll复制到Draw.exe的同级目录下
参考
文中已列出
完
主要做激光/影像三维重建,配准、分割等常用点云算法,熟悉open3d、pcl等开源点云库,技术交流、咨询可私信