OpenCV中的模块:三维重建-SFM

运动中恢复结构(SFM)可以用来重建目标的稀疏点云并为后续的稠密重建提供相对精度更高的种子点,也可以用于里程计等估计相机本身的位姿。同样,除了采用结构光进行三维重建外,还使用过OpenMVG + C/PMVS和COLMAP。在浏览OpenCV contrib模块时发现OpenCV也可实现MVG,高低得编译学习一下。同样,这里分为Ubuntu下的和windows下的编译及测试。

1. Ubuntu下编译带有SFM的OpenCV库

1.1 依赖库的安装

Ubuntu下的编译相对简单,主要是一些依赖库的安装,尤其是注意Ceres的安装。如果不安装Ceres,则重建功能将被禁用。

#安装依赖库

sudo apt-get install libgoogle-glog-dev

sudo apt-get install libatlas-base-dev

sudo apt-get install libeigen3-dev

sudo apt-get install libsuitesparse-dev

#编译、测试及安装Ceres

git clone https://github.com/ceres-solver/ceres-solver.git

cd ceres-solver

mkdir build && cd build

cmake ..

make -j4

make test

sudo make install

如果按照上述命令行,可能报错:

error: 'integer_sequence' is not a member of 'std'

这是因为最新版的ceres使用了C++14标准,需要修改C++编译标准,

CMAKE_CXX_STANDARD

为14或以上。当然,也可以回退版本:至少需要将ceres回退2.0以下,Eigen回退到3.3以下,此外,还可能需要回退其他库。

1.2 OpenCV的编译。

注意:上一步的库已经被安装到Ubuntu的环境中,在编译OpenCV库时注意查看VIZ和BUILD_opencv_sfm是否打开,或者直接打开。

cmake -DWITH_VTK=ON -DBUILD_opencv_sfm=ON ..

然后 make --> sudo make install 即可。如果没有将相关依赖安装到ubuntu,而是在某些文件夹之下,就需要填写库的路径,即将路径赋值对对应的xxx_DIR。

如果之前没有编译OpenCV + Contrib,则完整的编译命令可参考:

mkdir build && cd build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DWITH_VTK=ON

-DBUILD_opencv_sfm=ON -DCMAKE_CXX_STANDARD=11 ..

make -j4

sudo make insatll

sudo ldconfig

相关推荐
安睿杰翻译(上海)有限公司5 分钟前
项目复盘|上海涉外项目翻译服务商选型评估清单,规避标书与注册文档风险
人工智能
林伽一5 分钟前
智能体安全下沉芯片层,推理效率与资本重估同场角力|2026年09月30日
人工智能·科技·安全·ai
XM_jhxx7 分钟前
简会AI图纸识别系统功能上新:模板、公差、量具个性化配置上线!
数据库·人工智能·软件工程
腾渊信息科技公司10 分钟前
腾渊科技重磅出品——智能体协议选型指南:MCP与A2A的分层架构与集成方案
人工智能·科技·腾渊科技·腾渊信息科技
霍格沃兹测试学院-小舟畅学10 分钟前
Agent 评测怎么做?测试开发看懂离线评测、在线巡检与归因闭环
人工智能
海宇服务11 分钟前
零信任架构实战:基于海宇车辆出险记录核验构建自动化车险流转网关
运维·人工智能·架构·自动化
喜欢打篮球的普通人14 分钟前
MiniMind 学习笔记(十三):SFT 导言——从“续写文本“到“回答用户“
人工智能·笔记·学习
AI_Auto17 分钟前
数字化转型实践方法⑦|DX阶段二:课题分级,分清改善、战略转型还是商业模式重构
人工智能·架构·制造
陈工大模型19 分钟前
2026年GEO工具选型指南:搜极星GEO如何破解企业AI搜索优化困局?
大数据·人工智能
copilot中国版21 分钟前
Copilot + Excel鱼骨图:让根因分析从“凭经验”变成“有依据”
人工智能·excel·copilot