apap图像拼接_20张以上多图拼图软件

apap图像拼接_20张以上多图拼图软件整理一下APAPimagestitching的代码:项目地址:https://cs.adelaide.edu.au/~tjchin/apap/其中MDLT是两张图片的拼接,调试过程基本很简单,不再赘述;对于BAMDLT多图拼接代码,现将出现的问题及解决办法整理如下:BAMDLT使用依赖三个库,分别是EIGEN,Google’sCeressolver,GLOG其中EIGEN…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

整理一下APAP image stitching的代码:

项目地址:https://cs.adelaide.edu.au/~tjchin/apap/
其中MDLT是两张图片的拼接,调试过程基本很简单,不再赘述;
对于BAMDLT多图拼接代码,现将出现的问题及解决办法整理如下:

  1. BAMDLT使用依赖三个库,分别是EIGEN, Google’s Ceres solver,GLOG
  • 其中EIGEN库的安装按照官方教程 http://eigen.tuxfamily.org/index.php?title=Main_Page
    即可,也不存在由于版本导致的问题;
  • GLOG如果安装的是最新版本,会发现根本没有libglog.so库(该库在matlab函数用mex编译时需要),只有libglog.a库,因此它需要安装old version,old version链接为 https://github.com/google/glog/releases
    0.3.4以前的版本应该都可以,我安装的是glog:0.3.4,安装代码为:
    tar zxvf glog-0.3.4.tar.gz
    cd glog-0.3.4
    ./configure
    make
    sudo make install
    

    安装完成后可以在目录/usr/local/lib下看到liblog.so动态库

  • 同样的,Google’s Ceres solver也不能安装最新版本,否则就找不到libcere_shared.so动态库,也需要安装old version,链接为 https://ceres-solver.googlesource.com/ceres-solver/+refs
    APAP中使用的是1.6.0版本,但在我电脑上该版本无法编译,因此我安装了1.3.0版本,然后重新编译生成了mex文件
    安装过程中首先需要安装依赖项,其次安装Ceres;
    # CMakesudo apt-get install cmake# google-glog + gflagssudo apt-get install libgoogle-glog-dev# BLAS & LAPACKsudo apt-get install libatlas-base-dev# Eigen3sudo apt-get install libeigen3-dev# SuiteSparse and CXSparse (optional)# - If you want to build Ceres as a *static* library (the default)# you can use the SuiteSparse package in the main Ubuntu package# repository:sudo apt-get install libsuitesparse-dev# - However, if you want to build Ceres as a *shared* library, you must# add the following PPA:sudo add-apt-repository ppa:bzindovic/suitesparse-bugfix-1319687sudo apt-get updatesudo apt-get install libsuitesparse-dev# 依赖项安装完成,安装Cerestar zxf ceres-solver-1.3.0.tar.gzmkdir ceres-bincd ceres-bincmake ../ceres-solver-1.3.0make -j3make test# Optionally install Ceres, it can also be exported using CMake which# allows Ceres to be used without requiring installation, see the documentation# for the EXPORT_BUILD_DIR option for more information.make install

    安装完成后可以在/usr/local/lib下发现libceres_shared.so文件等

  1. 代码依赖项安装完毕,接下来是代码,由于我使用的是matlab2015b,对于该版本及以上its pooling function改变了,因此需要将
    将该部分:poolsize = matlabpool('size');if poolsize == 0 %if not, we attemp to do it:    matlabpool open;end修改为:if isempty(gcp('nocreate'))   parpool;end
  2. 前面我说过,我安装Google Ceres Solver版本是1.3.0, 因此需要重新生成ceresRigidError.mexa64和ceresNonrigidError.mexa64文件,运行MDLT_mainImageStitchingNRBA.m,这个时候注意如果出现了这样的警告: Warning: You are using gcc version ‘4.8.4’. The version currently supported with MEX is ‘4.7.x’. 不要忽略,不要忽略,不要忽略 (以前养成的陋习,warning都不管)。这是因为高版本ubuntu系统自带的gcc版本过高,这时候需要将系统gcc版本更换为4.7,如果不更换,即使matlab编译成功,也可能会在调用.mexa64文件报错找不到libceres_shared.so.1.3.0更换gcc版本步骤如下:
    #安装gccsudo add-apt-repository ppa:ubuntu-toolchain-r/testsudo  apt-get updatesudo apt-get  install gcc-4.7sudo apt-get  install g++-4.7#查看g++安装路径which gcc #先切换到g++安装路径下cd /usr/bin/ //我电脑中g++安装路径#在该路径下将gcc链接到gcc-4.7sudo rm g++  //删除原来的符号链接sudo ln -s g++-4.7 g++ //重新创建链接g++ -v //可见版本已经为4.7了 
  3. 重新运行MDLT_mainImageStitchingNRBA.m,如果此时报错…/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found,可以在bash中运行下面命令,然后重启matlab
    ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/MATLAB/R2015b/sys/os/glnxa64/libstdc++.so.6 	
  4. 到这基本大功告成,另外可以给一个建议就是运行matlab时候建议在sudo权限下

参考链接:
https://cs.adelaide.edu.au/~tjchin/apap/#Source
http://ceres-solver.org/installation.html
http://eigen.tuxfamily.org/index.php?title=Main_Page
https://blog.csdn.net/u012702874/article/details/50658441
https://blog.csdn.net/Hansry/article/details/80325296
https://www.jianshu.com/p/b7bd7e3044bc

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190504.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用户自定义类加载器下载_spring类加载器顺序

    用户自定义类加载器下载_spring类加载器顺序在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什么要自定义类加载器?隔离加载类 修改类加载的方式 扩展加载源 防止源码泄漏用户自定义类加载器实现步骤:开发人员可以通过继承抽象类ava.1ang.ClassLoader类的方式,实现自己的类加载器,以满足一些特殊的需求 在JDK1.2之前,在自定义类加载器时,总会去继承ClassLoader类并重写1oadClass()方法,从而实现自定义的类加载类

    2022年9月3日
    2
  • 木马入门

    木马入门木马是如何编写的(一)特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布BackOrifice以来,木马犹如平地上的惊雷,使在Dos——Windows时代中长大的中国网民从五彩缤纷的网络之梦中惊醒,终于认识到的网络也有它邪恶的一面,一时间人心惶惶。  我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!

    2022年6月29日
    28
  • 虚拟机联网的三种方式(虚拟机 macos)

    虚拟机联网与本机共享网络window任务栏网络图标右键打开“网络和internet”设置下拉点击网络和共享中心????点击蓝色的WLAN(xxx)????点击属性(P)、共享????如图勾选启动虚拟机,点击菜单栏中的虚拟机????设置????网络适配器勾选仅主机模式:与主机共享的专业网络如下????最后启动MacOS,打开设置中的网络,我们可以看到以太网前面呈现绿色点,表明设置成功。ps:更改设置前已启动…

    2022年4月12日
    230
  • iOS8下的UIAlertContoller初探

    iOS8下的UIAlertContoller初探

    2021年8月29日
    60
  • 通过因果图法来写测试用例的步骤_通过因果图写测试用例的步骤

    通过因果图法来写测试用例的步骤_通过因果图写测试用例的步骤一、应用场合在一个界面中,有多个控件,测试的时候要考虑控件的组合关系,不同的控件组合会产生不同的输出结果的组合,为了弄清什么样的输入组合会产生什么样的输出组合,使用因果图法。二、因果图核心1、因——原因,输入条件2、果——结果,输出结果使用图形的方式,分析软件输入和输出的对应关系三、图形符号1、基本图形表示输入和输出的对应关系(1)恒等(=)…

    2022年8月14日
    5
  • Android开发-API指南- Calendar Provider

    Android开发-API指南- Calendar ProviderAndroid官方文档原创译文《CalendarProvider》。CalendarProvider是用来存放用户日历事件(event)的数据库。通过CalendarProvider的

    2022年7月1日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号