SfM环境的搭建windows8.1+vs2010

SfM即Structure form Motion,这个算法的实现,作者Noah Snavely给出了一个具体的实现。

目前最新下载https://github.com/snavely/bundler_sfm

项目主页http://www.cs.cornell.edu/~snavely/bundler/

之前在windows7上部署了一次,不过目前把系统换成了windows8.1,运行出现了一点问题,于是决定把这个过程写一遍。

首先下载解压得到如下图:

image

里面有个文件夹vc++,给出的vs2005的项目工程,在这边我用vs2010.有:

image

vs2010转换项目之后得到如下:

image

生成解决方案之后会有很多错误,如下:

image

错误修改具体可以参考http://blog.csdn.net/azkabannull/article/details/7872958

1、error C1083: 无法打开包括文件:“sysdep1.h”: No such file or directory

在E:\github\bundler_sfm-master\lib\f2c目录下将sysdep1.h0文件名修改为sysdep1.h即可,同时将signal1.h0文件名修改为signal1.h

2、 error C1083: 无法打开包括文件:“arith.h”: No such file or directory   

这时可以在E:\github\bundler_sfm-master\lib\f2c目录下新建一个arith.h文件,在文件里添加如下内容即可:

#define IEEE_8087  
#define Arith_Kind_ASL 1  
#define Long int  
#define Intcast (int)(long)  
#define Double_Align  
#define X64_bit_pointers  
#define QNaN0 0x0  
#define QNaN1 0xfff80000
 


3、修改matrix中个四个内联函数,编译器的问题,内联函数可能不能够识别。改成普通的c的定义实现的方式,即matric.h中修改如下:

image

将实现放到matric.c下:

image

4、error C1083: 无法打开包括文件:“jpeglib.h”: No such file or directory

5、error C2039: “_isnan”: 不是“std”的成员    e:\github\bundler_sfm-master\src\twoframemodel.cpp    402

去掉std::,c库中有这个isnan

6、在Bundle2PMVS.cpp文件中会出现错误error C3861: “mkdir”: 找不到标识符的错误。

        在RadialUndistort.cpp文件中会出现error C3861: “index”: 找不到标识符的错误。

对于第一个错误的原因是:mkdir是Linux下创建目录的函数,需要两个参数,第一个是路径,第二个是权限。而Windows下则是使用_mkdir,只需要一个路径的参数,需要在文件的开头添加#include<direct.h>,同时将mkdir替换为_mkdir,如下所示:

image

对于第二个错误的原因:index是Linux下查找字符串中第一个出现的指定字符的函数,Windows中没有这个函数。需要使用STL中string类的方法来完成这个工作。原先的代码如下所示:

image

下面就可以正确的编译整个项目了。

运行Bundler

1、将路径E:\github\bundler_sfm-master\vc++\Debug中的Bundler.exe、Bundle2PMVS.exe、KeyMatchFull.exe、RadialUndistort.exe、jpeg.dll、ann_1.1_char.dll文件统统考到E:\github\bundler_sfm-master\bin目录下。

2、下载和安装Cygwin

        Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于在各种版本的Microsoft Windows上运行UNIX类系统。由于Bundler默认是通过在Unix环境下执行shell脚本来启动Bundler的,因为在Windows环境下需要安装Cygwin以执行shell脚本。

安装基本的组件参考http://blog.csdn.net/azkabannull/article/details/7872958

3、下载特征检测器

        Bundler推荐使用SIFT来进行特征提取,可以到SIFT的作者David Lowe的主页上下载他提供的SIFT Demo作为我们的检测器。下载页面为:http://www.cs.ubc.ca/~lowe/keypoints/或者直接点击下载地址下载:SIFT demo program(Version 4, July 2005)

        下载完成后,解压该文档,将目录下的siftWin32.exe文件拷贝到E:\github\bundler_sfm-master\bin目录中。

4、准备图片

        将要进行分析处理的图片放到一个目录里,Bundler自己也提供了两套图片,分别放在E:\github\bundler_sfm-master\examples\ET和E:\github\bundler_sfm-master\examples\kermit中。

5、运行Bundler

        打开Cygwin,cd定位到BASE_PATH目录下,然后输入下面的命令:./RunBundler.sh examples/ET 或者:./RunBundler.sh examples/Kermit

如果编译还是有问题,那就直接使用http://www.cs.cornell.edu/~snavely/bundler/distr/bundler-v0.4-source.zip

这个应该是稳定版,github上作者在更新,针对于windows的可能不是很稳定。

转载于:https://www.cnblogs.com/fengbing/p/3595766.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载VisualSFM、PMVS和MeshLab,可以按照以下步骤进行操作: 1. 首先,打开您的浏览器,前往VisualSFM的官方网站(http://ccwu.me/vsfm/)。 2. 在网站的首页上,您会看到下载链接。点击链接下载VisualSFM的安装程序。 3. 一旦下载完成,双击运行安装程序。根据指示进行安装,并选择您想要安装VisualSFM的目录。 4. 在安装完成后,您可以在开始菜单或桌面上找到VisualSFM的快捷方式。双击运行程序打开它。 5. 接下来,我们要下载PMVS。PMVS是VisualSFM的一个插件,用于三维重建。您可以在VisualSFM的官方网站上找到PMVS的下载链接。 6. 点击下载链接,将PMVS的安装文件保存到您的电脑中。 7. 安装PMVS与VisualSFM的安装过程相似。双击运行安装程序,按照指示完成安装。 8. 最后,我们需要下载MeshLab以查看和编辑三维重建的结果。您可以在MeshLab的官方网站上找到下载链接(https://www.meshlab.net/#download)。 9. 点击下载链接,选择适合您操作系统的版本进行下载。 10. 下载完成后,双击运行安装程序,按照指示进行安装。完成后,您可以在开始菜单或桌面上找到MeshLab的快捷方式。 总结:要下载VisualSFM、PMVS和MeshLab,我们需要前往各自的官方网站下载安装程序,然后按照指示进行安装即可。这些软件可以用于三维重建和编辑,帮助您处理和查看生成的模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值