大家好,又见面了,我是你们的朋友全栈君。
对于SFM一直觉得高大上又神秘,一年前粗略的了解过一下,今年有时间尝试深入了解SFM,对于初学者来说,VisualSFM真的时非常好的感受SFM的免费软件,于是通过其他博客的指导(没去看官方的英文版,容易犯困),做了一个3D模型出来,感觉还挺好玩,记录一下。
实际上,VisualSFM只做了一部分工作,优化是用MeshLab做的,所以分两个环节:
1.VisualSFM做”图像匹配”、“SFM”(CMVS)、”BA”
官网下载的UI不带cmvs,所以从别的博客下载了配好cmvs的拿来直接用,简单麻利快,一天就见效;
1.1 导入图像
鼠标单击下面的按钮
选择需要导入的图像
图像导入完成
1.2 图像配准
鼠标单击下面的按钮“Compute Missing Matches”
开始配准了…
(注意:高分辨率的图像,这里默认3200,具体请参考这里:https://blog.csdn.net/kiara_wei/article/details/68485062)
配准完事了,Log Window可见
1.3 稀疏点云
配准完了之后点击下面的按钮:
开始生成点云了,很快,而且有显示:
1.4 加密点云
按下面的按钮:
开始之后,命名,然后就要等了,稍微有点慢(87秒/73张图):
完成了!
2. MeshLab 该登场了
2.1 open project
打开VisualSFM生成的 “.out”,和“list.txt”
稍等片刻:
2.2 显示相机位置
Render->ShowCamera
然后设置尺度:(参考:https://blog.csdn.net/moneyhoney123/article/details/78454837)
(注:其实这一步可以不要,但是这一步能直观的给你展示一个SFM的具体的样子,对于新手还是很有必要的)
2.3 加载稠密点云
注意,就是用VisualSFM生成稠密点云时咱命名的哪个文件名,别选错了。
2.4 清除杂点
就是把那些离散的很远的,点都去掉,把不是我们想要的目标的点去掉,还有就是明显错误的点(例如:不在本来的平面上)都去掉。(注意:这时我们右边的图层中应该选中的是刚打开的稠密点云.ply,而不是稀疏点云 model)
按下面的这个按钮:
选择需要清除的点:
然后点下面这个按钮删除:
重复上面的操作:选择->删除->选择->删除->选择->删除……..en,干净、整齐了很多
2.4 网格化(参考:https://blog.csdn.net/moneyhoney123/article/details/78454837)
Filter -> Point Set -> Surface Reconstruction:Poisson
en,我电脑垃圾,所以有点慢:(关于这里的参数设置,可以参考上面的参考博客,我不想深究,就想早点看到结果)
上面的曲面明显多了很多,下面就把多余的删除:
Filter-> Slection -> Slect Face With edges longer than…
然后按下面这两个按钮,删除:
然后,保存整个工程和文件;
2.5 修复流形边
Filter-> Selction ->Slect non Manifold Edges
执行完成之后,再点一次下面的两个按钮,删除之:
2.6 参数化(Parameterization)
Filter–> Texture –> Parameterization from registered rasters
Apply!
2.7 纹理投影
Filter–> Texture –> Project active rasters color to current mesh, filling thetexture
执行完成之后,得把稠密点云和稀疏点云都关闭(隐藏),就能看出创建好的模型了:
2.8 完成了,就可导出了,不导出下次可就看不到了;
—————————————————————————————————————————–
好了,完事了,总结一下:
图越多,效果越好哈,真的是;(这是一句废话)
2.4栅格化的时候,删除多余的面,如果手动删除的话也是可行的,这样鼠标的表面就不会被删除了,最终的结果就不会镂空那么多了。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151334.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...