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)学习记录(一)的更多相关文章

  1. Structure From Motion(二维运动图像中的三维重建)

    SfM(Structure from Motion)简介 Structure from motion (SfM) is a photogrammetric range imaging techniqu ...

  2. Structure From Motion(SFM,从运动恢复结构)

    Structure From Motion(SFM,从运动恢复结构) 阅读相关文献: Wu et al. Multicore Bundle Adjustment Agarwal et. al. Bun ...

  3. [转]第四章 使用OpenCV探测来至运动的结构——Chapter 4:Exploring Structure from Motion Using OpenCV

    仅供参考,还未运行程序,理解部分有误,请参考英文原版. 绿色部分非文章内容,是个人理解. 转载请注明:http://blog.csdn.net/raby_gyl/article/details/174 ...

  4. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  5. VisualSFM for Structure from Motion

    VisualSFM是Changchang Wu编写的使用 Structure from Motion (SfM)进行3D重建的交互界面,具体内容详见http://homes.cs.washington ...

  6. leveldb 学习记录(四) skiplist补与变长数字

    在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...

  7. V4L2学习记录【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637600.html V4L2学习记录 这个还没有分析完,先在这放着,防止电脑坏掉丢了,以后再完善 V4L ...

  8. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  9. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

随机推荐

  1. nodejs sequelize 对应数据库操作符的定义

    const Op = Sequelize.Op [Op.and]: {a: } // 且 (a = 5) [Op.or]: [{a: }, {a: }] // (a = 5 或 a = 6) [Op. ...

  2. Python3+smtplib+poplib+imaplib实现发送和收取邮件(以qq邮箱为例)

    一.说明 1.1 程序说明 (1)smtp是邮件发送协议:pop和imap都是邮件接收协议,两者的区别通常的说法是imap的操作会同步到邮箱服务器而pop不会,表现上我也不是很清楚 (2)本程序实现使 ...

  3. CentOS和AIX查看系统序列号

    一.CentOS查看系统序列号 dmidecode -t dmidecode--将DMI数据库中的信息解码,以可读的文本方式显示:该命令需要root权限. -t 1--DMI数据库包含包括BIOS.系 ...

  4. weblogic查看版本号教程

    1.查看软件版本号 cd /weblogic/bea/wlserver_10.3/server/lib java -cp weblogic.jar weblogic.version 说明:版本号后边的 ...

  5. am335x system upgrade uboot ethernet(二)

    系统可以通过SD卡引道之后,为了之后了调试方便 通过查看网卡的硬件设计 正常来说需要注意的有如下几点: 1) 网口 的接线方式: RMII 2) 网口的PHY地址两张网口,这里我们只需先初始化一张网卡 ...

  6. TiDB 深度实践之旅--真实“踩坑”经历

    美团点评 TiDB 深度实践之旅(9000 字长文 / 真实“踩坑”经历) 4   PingCAP · 154 天前 · 3956 次点击 这是一个创建于 154 天前的主题,其中的信息可能已经有所发 ...

  7. 【转】caffe数据层及参数

    原文: 要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个层(layer)构成,每一层又由许多参数组成.所有的参数都定义在caffe.proto ...

  8. 解决WDCP3环境gbk网站编码程序乱码问题

    因为默认WDCP V3版本环境编码格式是UTF-8版本,如果我们程序采用的是GBK编码肯定都会有乱码问题. 我们到WDCP后台,"网站管理"-"PHP设置",看 ...

  9. 泛型算法,排序的相关操作,lower_bound、upper_bound、equal_range

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  10. QuickHit 项目

    package cn.javaoppday01; import java.util.Random; public class Game { public Player player; public G ...