SfM执行流程
整个过程根据脚本执行过程来分析。
首先我们看到RunBundler.sh,这个shell脚本。
1、定义参数
BASE_PATH="/cygdrive/e/ProjectBefore/LearnCUDA/bundler_sfm-master"; if [ $BASE_PATH == "TODO" ]
then
echo "Please modify this script (RunBundler.sh) with the base path of your bundler installation.";
exit;
fi EXTRACT_FOCAL=$BASE_PATH/bin/extract_focal.pl OS=`uname -o` if [ $OS == "Cygwin" ]
then
MATCHKEYS=$BASE_PATH/bin/KeyMatchFull.exe
BUNDLER=$BASE_PATH/bin/Bundler.exe
else
MATCHKEYS=$BASE_PATH/bin/KeyMatchFull
BUNDLER=$BASE_PATH/bin/bundler
fi TO_SIFT=$BASE_PATH/bin/ToSift.sh IMAGE_DIR="."
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
2、Rename ".JPG" to ".jpg"
用到了正则表达式egrep跟替换sed
3、Create the list of images
这样这个就执行到了perl脚本,脚本中给出了常见相机的ccd尺寸。
这个ccd的尺寸也就是感光器件的面积大小。目前主要尺寸有2/3英寸、1/1.8英寸、1/2.7英寸、1/3.2英寸等
举一个例子,标称1/2.7英寸的感光器件,实际上是把感光器件的全部面积(包括有效和无效的部分),连同其固定支架、电子快门、辅助输出接口等等一股脑都“用一个圆包起来”,这个
圆的直径才是1/2.7英寸,即9.407mm! 而实际参与成像的“CCD感光区”尺寸,只有5.27mm×3.96mm!
其它常见的小CCD实际尺寸如下: 1/2.5英寸:5.38x4.39mm; 1/1.8英寸:7.178x5.319mm; 2/3英寸:8.8x6.6mm;
作者将ccd的尺寸转换成了CCD的感光区域的宽。如果相机的中心点在感光区域的中心的话,这样我们就可以得到相机的内参的中心点。
然后通过jhead来获取照片的exif信息,如下:

另外并不是所有的相机照片都会有上述信息,如下:

这个脚本的目的也就是为了获得可以通过jhead获得的相机参数
4、接下来在看RunBundler.sh,就是特征提取执行ToSift.sh脚本
Run the ToSift script to generate a list of SIFT commands
5、Execute the SIFT commands
sift使用了siftWin32.exe
6、Match images (can take a while)
7、Generate the options file for running bundler
8、Run Bundler
主要流程如上,对于下面重点分析Run Bundler。
SfM执行流程的更多相关文章
- 步步深入:MySQL架构总览->查询执行流程->SQL解析顺序
前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来 ...
- 第二天 ci执行流程
第二天 ci执行流程 welcome 页面 this this->load 单入口框架index.php 两个文件夹 system application定义 定义常亮路径 载入 codeign ...
- 轻量级前端MVVM框架avalon - 执行流程2
接上一章 执行流程1 在这一大堆扫描绑定方法中应该会哪些实现? 首先我们看avalon能帮你做什么? 数据填充,比如表单的一些初始值,切换卡的各个面板的内容({{xxx}},{{xxx|html}}, ...
- [Java编程思想-学习笔记]第4章 控制执行流程
4.1 return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...
- ThinkPHP2.2框架执行流程图,ThinkPHP控制器的执行流程
ThinkPHP2.2框架执行原理.流程图在线手册 ThinkPHP控制器的执行流程 对用户的第一次URL访问 http://<serverIp>/My/index.php/Index/s ...
- 深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇)
最近太忙了,一直没时间继续更新博客,今天忙里偷闲继续我的Mybatis学习之旅.在前九篇中,介绍了mybatis的配置以及使用, 那么本篇将走进mybatis的源码,分析mybatis 的执行流程, ...
- Servlet执行流程和生命周期【慕课网搬】
Servlet执行流程(GET方式为例) 首先用户客户端浏览器发出Get方式(点击超链接方式)向浏览器发出请求. 服务器接收到客户端点击超链接,接收到GET请求之后,服务器到WEB.xml中<s ...
- javascript事件执行流程分析
我一直想搞清楚事件在DOM中的传播方式,今天经高人指点终于明白一二.首先扒了一张图: 事件捕获过程:当我们点击TEXT时,首先是window->document->body->div ...
- asp.net MVC4的执行流程
MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...
随机推荐
- 数据传递-------ajaxJson------spring3mvc中使用ajax传json中文乱码解决
参考来源:http://blog.csdn.net/dangerous_fire/article/details/25904225 第一种解决方法,适用所有情况 因为在controller中返回jso ...
- 设置打印机共享,适用Win7、Vista、xp,不用密码
此处以HP M1213nf为例,其他型号大同小异. 1.设置打印机共享: "开始"→ "控制面板"→ "设备和打印机" 2.找到&quo ...
- 高效程序员的45个习惯·敏捷开发修炼之道(Practices of an Agile Developer)读书笔记
首先,这本书值得再看一遍——这次的阅读,有很多东西都是知其“形”,不知其“神”的,这导致了我对其中某些建议持怀疑态度,接受了的建议也有待商榷. 总之,先记录本书的一些信息: Practices of ...
- fragment间的数据传递
今天我将要讲的是fragment间的数据是如何进行传递的.这里我将举个简单的例子. 首先要有个MainActivity,它托管了MainFragment,而MainFragment又托管了DatePi ...
- js文件中引用其他js文件
这一个功能的作用是做自己的js包时,可以通过引入一个整体的js文件而引入其他js. 只需要在总体的js加上这一句话 document.write("<script type='text ...
- phpcms标签用法(转)
1.显示指定catid的栏目名称和链接 {$CATEGORYS[25]['catname']} {$CATEGORYS[25]['url']} 获取父栏目id/获取父栏目名称 $CATEGORY[ ...
- Stack frame
http://en.citizendium.org/wiki/Stack_frame In computer science, a stack frame is a memory management ...
- GetArxPath
extern HINSTANCE _hdllInstance;CString GetArxPath(){ CString strArxPath; GetModuleFileName(_hdllInst ...
- Mybatis逆向工程使用方法
使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件. 一.mapper生成配置文件 在generatorConfig.xm ...
- vue组件---自定义事件
首先简单回顾下组件事件及组件的复用 demo1:按钮事件 <div class="button_area"> <button-area></butto ...