COLMAP+OpenMVS实现物体三维重建mesh模型

2023-05-16

一、环境准备

(1) COLMAP

进入COLMAP官网,打开下载页面,下载COLMAP程序。

(2) OpenMVS

OpenMVS可以自己从源码下载进行编译。如果觉得编译openmvs可能要费点时间,那也可以直接下载编译好的可执行程序。

Github源码:https://github.com/cdcseacave/openMVS
可执行程序:https://github.com/cdcseacave/openMVS_sample

二、COLMAP重建得到稠密点云

  1. 新建一个文件夹,在其中新建images文件夹,以及一个Database.db的空文件,注意文件路径不要出现中文。images文件夹中放入需要重建的图片,图片越多重建时间越长,图片过少可能会重建失败,我这里以96张图片为例,生成稠密点云05。

本文使用DTU数据集进行测试。

自建数据集要求:

  • 尽量使用单反相机或专业数码相机进行数据采集,如果要用手机进行采集,请使用单摄像头的手机进行数据采集。
  • 尽量选择纹理丰富的外界环境进行数据采集,避免玻璃围墙、瓷砖和打蜡地板等强反光材料环境
  • 尽量选择光照明亮,且光照条件变化不剧烈的环境,最好选择室内环境。如室内客厅,开启客厅大灯进行灯光补偿。
  • 尽量围绕重建物体或环境采集较多的影像,且在采集过程中控制快门速度,避免模糊。

  1. 打开colmap程序(COLMAP.bat),点击File-New Project,在Database栏点击open,选择刚才新建的Database.db文件,在Images栏选择刚才新建的存放图片的images文件夹,点击save保存。

  1. 点击Processing-Feature Extraction,默认参数即可,点击Extract,等待程序运行完毕可看到右侧有log信息输出。

  1. 点击Processing-Feature matching,默认参数即可,点击Run,等待程序运行完毕可看到右侧有log信息输出。

  1. 点击Reconstruncion-Start reconstruction,等待执行完毕,即可得到重建的结果。

  1. 在之前images的同级目录下,新建一个文件夹dense。点击Reconstruncion-Dense reconstrction,点击select,选择刚才新建的dense文件夹用来保存稠密点云结果。依次点击Undistorion、Stereo、Fusion,执行完毕。

  1. 在程序中点击File-export model as txt,选择dense文件夹下的sparse文件夹(由于openmvs支支持txt格式的,所以需要将重建的文件转成txt文件)

  2. 检查camera.txt内的相机模型是否为Pinhole,如果不是则直接改成pinhole,不管之前选的是不是这里都可以直接改就行。

三、OpenMVS重建得到mesh模型

以编译好的openmvs_sample为例,我们要把colmap生成的稠密点云以及图片路径信息等转换成openmvs的.mvs文件。

  1. 打开命令提示窗口CMD,进入openmvs_sample下的bin目录,执行命令
interfaceCOLMAP.exe -i E:\Projects\2022.06-3DReconstruction\test\dense -o E:\Projects\2022.06-3DReconstruction\test\dense\scene.mvs --image-folder E:\Projects\2022.06-3DReconstruction\test\dense\images

可以看到dense文件夹下生成了scene.mvs文件(-o为输出文件目录,默认是在当前文件夹下,也可以指定其它路径)。

  1. 执行命令重建
ReconstructMesh.exe -i E:\Projects\2022.06-3DReconstruction\test\dense\scene.mvs -o E:\Projects\2022.06-3DReconstruction\test\dense\mesh.mvs

  1. 执行命令添加纹理(这一步比较占用计算机资源,本人电脑较老,运行时蓝屏重启了,大家酌情尝试一下)
TextureMesh.exe -i E:\Projects\2022.06-3DReconstruction\test\dense\mesh.mvs

可以看到文件夹内新生成了四个文件,可以使用meshlab打开其中的.ply文件(三维mesh模型),下图为Solidworks打开的样子(未添加纹理)。

本博客文章首先发布于个人博客网站:https://www.mahaofei.com/,欢迎大家访问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

COLMAP+OpenMVS实现物体三维重建mesh模型 的相关文章

随机推荐

  • VScode 代码行数统计

    VScode 代码行数统计 1 安装vs code counter 2 按住按Ctrl 43 Shift 43 P 在命令输入 xff1a Count lines in workspace并回车 3 自动生成 VSCodeCounter x
  • 个人主页(包含项目经历、实习经历、竞赛经历)

    个人主页 注 xff1a 个人主页中主要包含项目经历 实习经历 竞赛经历等方面的照片及文字说明 项目经历 一 基于声源目标识别与定位的微型平台设计 图1 图2 图3 图1 3声源目标识别与定位平台 二 基于STM32的六足仿生机器人设计 图
  • UBUNTU编译运行RTKLIB

    RTKLIB在ubuntu下没有图形用户界面 xff08 GUI xff09 xff01 RTKLIB作为一个功能强大的工具 xff0c 我一直以为它在ubuntu下和win10下是一个样子 xff0c 所以想着用ubuntu下的编译器去编
  • 关于makefile与CMakeList的理解

    为了编译某一工程中的众多 c文件搞出来一个makefile可以批量编译 xff1b Linux下用Cmake也即CMakeLists txt文件 作者写的很清晰易懂
  • c++版本详表

    1 语言标准 版本代目版本号年份第一版c 43 43 981998第二版c 43 43 032003第三版c 43 43 112011第四版c 43 43 142014第五版c 43 43 172017第六版待定待定 2 visual st
  • ffmpeg常用命令

    1 rtsp into mp4 ffmpeg exe i 34 rtsp username password 64 192 168 1 183 554 34 f mp4 r 25 an 640x480 ss 600 t 600 s 34 t
  • http包详解

    位于应用层的http协议 什么也不多说了 xff0c 马上放个图看看 请求方法 xff0c 主要是 xff1a get xff1a 获取 post xff1a 提交 请求头 xff1a User Agent xff1a 产生请求的浏览器类型
  • linux下编译C++项目

    include CheckCXXCompilerFlag CHECK CXX COMPILER FLAG std 61 c 43 43 11 COMPILER SUPPORTS CXX11 CHECK CXX COMPILER FLAG s
  • www总结

    一 www服务器 1 什么是www xff1a www是world wide web的缩写 xff0c 也就是全球信息广播的意思 通常说的上网就是使用www来查询用户所需要的信息 www可以结合文字 图形 影像以及声音等多媒体 xff0c
  • matlab基础练习作业(1)

    要期末考试了 xff0c 整理一下平时的题 作业 xff11 1 写出完成下列操作的命令 1 将矩阵A第2 5行中第1 3 5列元素赋给矩阵B B 61 A 2 5 1 3 5 或者B 61 A 2 3 4 5 1 3 5 2 删除矩阵A的
  • PHP中使用cURL实现进行Post请求 ssl 双向认证

    span class token comment 64 param string url 接收数据的api 64 param string vars 提交的数据 64 param int second 要求程序必须在 second 秒内完成
  • 大端字节序与小端字节序 (网络字节序与主机字节序)

    大端字节序与小端字节序 1 简介2 判断机器字节序 xff08 C C 43 43 xff09 3 主机字节序与网络字节序的转换4 IP地址与网络字节序的转换 1 简介 字节序分为大端字节序 xff08 big endian xff09 和
  • Noetic安装ros_canopen

    建立workspace mkdir span class token operator span p canopen span class token operator span scr cd canopen catkin make 下载n
  • ROS学习初始化ws下catkin_make必须有src生成devel和build

    安装虚拟机开启intel vt 创建工作空间 first ws src catkin make在ws下生成devel和build 创建package 在src下添加package catkin create pkg hello ros ro
  • Pyhon : 爬虫Requests高级用法--证书

    客户端证书 你也可以指定一个本地证书用作客户端证书 xff0c 可以是单个文件 xff08 包含密钥和证书 xff09 或一个包含两个文件路径的元组 xff1a requests get https kennethreitz org cer
  • 【px4】运行mavsdk中的offboard example

    运行MAVSDK中的offboard例子时无人机不执行 想控制无人机前后左右移动 xff0c 在按照官方教程实现offboard 插件的时候 发现用action插件能正常起飞和降落 但是一旦执行到offboard的插件代码的时候就会自动降落
  • MDF does not reside in a read-only database or filegroup

    错误信息 The file 34 MDF 34 is compressed but does not reside in a read only database or filegroup The file must be decompre
  • Python复习笔记4——文件和目录操作

    一 文件读写 1 1 读文件 xff08 1 xff09 打开文件 使用Python内置的open 函数 xff0c 传入文件名和标示符 xff0c 打开一个文件对象 xff1a span class token operator gt g
  • Python复习笔记5——常用模块

    一 内建模块 1 1 datetime日期时间 xff08 1 xff09 导入模块 span class token keyword from span datetime span class token keyword import s
  • COLMAP+OpenMVS实现物体三维重建mesh模型

    一 环境准备 1 COLMAP 进入COLMAP官网 xff0c 打开下载页面 xff0c 下载COLMAP程序 2 OpenMVS OpenMVS可以自己从源码下载进行编译 如果觉得编译openmvs可能要费点时间 xff0c 那也可以直