SFM(structure from motion)学习记录(一)
visualSFM用法

添加图片
- "File->Open Multi Images". 一次添加多幅图片
- "SfM->Load NView Match". 可以把之前保存的.nvm文件添加进来
特征检测&全图像对匹配
- 点击2或选择"SfM->Pairwise Matching->Compute Missing Match",执行完后可以回到第一步再添加一些图片,再次计算缺失的匹配。
- 这个过程会比较慢,耐心等待就好^_^
稀疏重建
- 点击3或者选择"SfM->Reconstruct Sparse"
稠密重建
- 点击4
- 该过程会让保存文件,CMVS过程在[name].nvm.cmvs文件夹下会进行。结束后文件夹下包含各种文件如相机信息、点云信息及meshlab使用的文件。[name].i.ply是第i个模型的信息。
相机模型和坐标系统
- 相机模型有8个参数,如果忽略径向畸变的话,有7个参数。
- 给定相机K[R T],K=[f 0 0;0 f 0;0 0 1],径向畸变r,三维点X
- 则X在图像的投影是[x,y,z]=K(RX+T)->(x/z,y/z)
- 假设X在图像的真实位置是mx,my(相对于主点即图像中心)
- 畸变因子r2=r*(mx*mx+my*my),未畸变的测量是(1+r2)*(mx,my)
- 投影误差是:(x/z - (1 + r2) mx, y /z - (1 + r2) my)
当在以图像左上角为原点的坐标系时:
- K = [fx 0 0; 0 fx 0; 0 0 1], Kc = [1 0 cx; 0 fy/fx cy; 1],
- 则Kc * K = [fx 0 cx; 0 fy cy; 0 0 1](u, v, 1)' 表示在像素坐标系下的坐标 (相对于图像左上角
- (u, v, 1)'= Kc*(mx, my, 1)'
- 在进行特征提取和匹配时,会在图像同一目录自动生成[name].sift和[name].mat文件。[name].sift保存提取的图像特征点,[name].mat保存图像间的匹配信息。若想要改变特征检测的参数重新重建模型的话,需要先删除.sift,.mat文件。
- 若想要读回匹配的信息,需要先"SfM->Pairwise Matching->Export F-Matrix Matches"使匹配信息保存到txt文件里。
SFM(structure from motion)学习记录(一)的更多相关文章
- Structure From Motion(二维运动图像中的三维重建)
SfM(Structure from Motion)简介 Structure from motion (SfM) is a photogrammetric range imaging techniqu ...
- Structure From Motion(SFM,从运动恢复结构)
Structure From Motion(SFM,从运动恢复结构) 阅读相关文献: Wu et al. Multicore Bundle Adjustment Agarwal et. al. Bun ...
- [转]第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV
仅供参考,还未运行程序,理解部分有误,请参考英文原版. 绿色部分非文章内容,是个人理解. 转载请注明:http://blog.csdn.net/raby_gyl/article/details/174 ...
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- VisualSFM for Structure from Motion
VisualSFM是Changchang Wu编写的使用 Structure from Motion (SfM)进行3D重建的交互界面,具体内容详见http://homes.cs.washington ...
- leveldb 学习记录(四) skiplist补与变长数字
在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...
- V4L2学习记录【转】
转自:http://blog.chinaunix.net/uid-30254565-id-5637600.html V4L2学习记录 这个还没有分析完,先在这放着,防止电脑坏掉丢了,以后再完善 V4L ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
随机推荐
- python中字典内置方法
- nop 4.1 Widget 探究- 视图组件
1. 系统默认自带了一个NivoSlider 的Wdget. 在Nop.Web项目首页的HomePageTop里 这个写法是 ASP.NET Core MVC 中的新特性 视图组件,与局部视图相似,但 ...
- jsp 内置对象(五)
1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必 ...
- sql 中,如何获取两个日期之前月数、周数、天数
1.获取两个日期之间的月数.周数.天数语法 --1.获取两个日期之间的月数.周数.天数 --1.1)声明参数 ) ) --1.2)获取两个日期直接的月数 select DATEDIFF(MM,@sta ...
- 逆袭之旅DAY28.XIA.异常处理
2018-07-24 14:42:24 第一种: 第二种: 第三种: 执行 try--catch--finally--return(执行return 退出方法) 代码示例: 输入数字,输出对应课 ...
- Win10系列:VC++绘制几何图形2
新建了Direct2D中的资源后,接下来初始化用于绘制图形的应用窗口.在解决方案资源管理器窗口中右键点击项目图标,在弹出的菜单栏中选中"添加", 并在"添加"的 ...
- 对象关系_many2many
jdbc: package demo.test.many2many; import java.util.HashSet; import java.util.Set; public class Stud ...
- mysql插入中文乱码
https://www.cnblogs.com/zhchoutai/p/7364835.html 最简单的一招,不用修改my.ini文件: 1.停掉mysql服务 2.启动:X:\%path%\MyS ...
- day038 navicat pymysql
今日内容: 1.navicat 2.pymysql 1.navicat 需要掌握 #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 ...
- mySQL 分组查询,根据分组的字段,取最小值
今天看到别人问的问题,给别人写了一条sql! CREATE TEMPORARY TABLE tmp_table ( id INTEGER not NULL, uname VARCHAR(10) NOT ...