[1]    https://github.com/dlut-dimt/LineMatching

The code is based on Matlab.

 https://github.com/kailigo/LineSegmentMatching

The code is based on the following two papers. The code is based on OpenCV, and you need CMake to build a project from the code.

@article{li2016hierarchical, title={Hierarchical line matching based on Line--Junction--Line structure descriptor and local homography estimation}, author={Li, Kai and Yao, Jian and Lu, Xiaohu and Li, Li and Zhang, Zhichao}, journal={Neurocomputing}, volume={184}, pages={207--220}, year={2016}, publisher={Elsevier} }

@inproceedings{li2014robust, title={Robust line matching based on ray-point-ray structure descriptor}, author={Li, Kai and Yao, Jian and Lu, Xiaohu}, booktitle={Asian Conference on Computer Vision}, pages={554--569}, year={2014}, organization={Springer} }

[3]    https://github.com/chishuideyu/LBD_and_LineMatching

The code is based on OpenCV ,arpack++.

安装BIAS(没安装完成,由于此库比较老,而且opencv中的函数可代替)

1.BIAS的简单介绍 ---http://www.mip.informatik.uni-kiel.de/tiki-index.php?page=BIAS&highlight=BIAS.

2.How to get it ---http://www.mip.informatik.uni-kiel.de/~wwwadmin/Software/index.html

我下载的是:BIAS-2.8.0.tar.gz

查看imagemagick的版本: convert –version,出现:

Version: ImageMagick 6.7.- -- Q16 http://www.imagemagick.org
Copyright: Copyright (C) - ImageMagick Studio LLC
Features: OpenMP

ImageMagick的源码:   https://github.com/ImageMagick/

下载下来:ImageMagick-master.zip,解压,由于我是在linux安装,查看它的Install-unix.txt,并将其重命名为了:ImageMagick-7.0.

安装过程:

cd ImageMagick-7.0.
./configure
make //build ImageMagick
sudo make install //install ImageMagick make check //Run tests using the installed ImageMagick(可选指令)

ImageMagick is installs binaries in /../usr/local/bin, libraries in /../usr/local/lib, header files in /../usr/local/include and documentation in /../usr/local/share.

安装ARPACK++

下载:https://github.com/m-reuter/arpackpp

阅读“README.md”,对arpackpp (ARPACK++)有大致的了解,并且主要看其Dependencies依赖项,然后看“INSTALL.md”,进行安装:

安装:

[1]只安装头文件,通过cmake

mkdir build
cd build
cmake ..
sudo make install
-- A library with BLAS API found.
-- Looking for Fortran cheev
-- Looking for Fortran cheev - found
-- A library with LAPACK API found.
-- LAPACK_LIBRARIES: /usr/lib/liblapack.a;/usr/lib/libf77blas.a;/usr/lib/libatlas.a
-- ARPACK_LIB found: /usr/lib/libarpack.a //--ARPACK 头文件:/usr/local/include/arpackpp/
//将其头文件连接到工程中

[2]System Libraries: GFORTRAN, BLAS, LAPACK, ARPACK,通过ubuntu软件源安装。

$ sudo apt-get install -y gfortran libopenblas-dev liblapack-dev libarpack2-dev

先运行了一下程序,在CMakelists.txt中这句话的执行出现错误

TARGET_LINK_LIBRARIES(LineMatchingLib ${OpenCV_LIBS} arpack /usr/lib/x86_64-linux-gnu/libsuperlu.so arpack++) 

error:

[100%] Building CXX object CMakeFiles/TestLineMatchingAlgorithm.dir/TestLineMatchingAlgorithm.cpp.o
Linking CXX executable TestLineMatchingAlgorithm
libLineMatchingLib.so: undefined reference to `set_default_options'
libLineMatchingLib.so: undefined reference to `dCreate_Dense_Matrix'
libLineMatchingLib.so: undefined reference to `cgstrs'
libLineMatchingLib.so: undefined reference to `sp_ienv'
libLineMatchingLib.so: undefined reference to `sgstrs'
libLineMatchingLib.so: undefined reference to `StatFree'
libLineMatchingLib.so: undefined reference to `debug_'
libLineMatchingLib.so: undefined reference to `Destroy_CompCol_Matrix'
libLineMatchingLib.so: undefined reference to `dCreate_CompCol_Matrix'
libLineMatchingLib.so: undefined reference to `sgstrf'
libLineMatchingLib.so: undefined reference to `dsaupd_'
libLineMatchingLib.so: undefined reference to `dgstrs'
libLineMatchingLib.so: undefined reference to `Destroy_CompCol_Permuted'
libLineMatchingLib.so: undefined reference to `zgstrs'
libLineMatchingLib.so: undefined reference to `cgstrf'
libLineMatchingLib.so: undefined reference to `StatInit'
libLineMatchingLib.so: undefined reference to `zgstrf'
libLineMatchingLib.so: undefined reference to `dcopy_'
libLineMatchingLib.so: undefined reference to `Destroy_SuperNode_Matrix'
libLineMatchingLib.so: undefined reference to `get_perm_c'
libLineMatchingLib.so: undefined reference to `dseupd_'
libLineMatchingLib.so: undefined reference to `Destroy_SuperMatrix_Store'
libLineMatchingLib.so: undefined reference to `dgstrf'
libLineMatchingLib.so: undefined reference to `sp_preorder'
collect2: error: ld returned 1 exit status
make[2]: *** [TestLineMatchingAlgorithm] Error 1
make[1]: *** [CMakeFiles/TestLineMatchingAlgorithm.dir/all] Error 2
make: *** [all] Error

查看是否安装了superlu:

$ dpkg -L libsuperlu-dev
dpkg-query: package 'libsuperlu-dev' is not installed
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.

通过ubuntu软件源安装superlu遇到了困难,出现了错误:

$ sudo apt-get install libsuperlu-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libsuperlu-dev

上网搜索后说是

#sudo apt-get update   //更新
执行完后,问题就解决了。

但是我执行完后,依然没有什么卵用。。。反正,网上说的各种都有,后来想着要不下载下来编译再安装吧:

下载superlu:[SuperLU (Version 5.2.x)]  ---   https://github.com/xiaoyeli/superlu

阅读README,知道有两种方法安装,so我使用CMake安装:

mkdir build
cd build
cmake ..
make
sudo make install libblas.a
libsuperlu.a
libmatgen.a //库文件:/usr/local/lib/libsuperlu.a
 /usr/local/lib/pkgconfig/superlu.pc
//头文件:/usr/local/include/supermatrix.h
/usr/local/include/slu_Cnames.h
/usr/local/include/slu_dcomplex.h
/usr/local/include/slu_scomplex.h
/usr/local/include/slu_util.h
/usr/local/include/superlu_enum_consts.h
/usr/local/include/slu_sdefs.h
/usr/local/include/slu_ddefs.h
/usr/local/include/slu_cdefs.h
/usr/local/include/slu_zdefs.h 过程中生成了几个测试文件:build/TESTING/s_test.out   # single precision, real
               build/TESTING/d_test.out   # double precision, real
               build/TESTING/c_test.out   # single precision, complex
               build/TESTING/z_test.out   # double precision, complex

由于生成的是静态库libsuperlu.a,不知道怎样连接到自己的库上,感觉用不到就删了,但是库文件都在,如果想看可以参照/home/wj/Downloads/arpackpp/external/SuperLU_5.2.1-build。还得仿照人家写的,最终安了个类似的:

$ sudo apt-get install libsuperlu3-dev

这次终于看见曙光了找到了libsuperlu.so:/usr/lib/libsuperlu.so

$ sudo apt-get install libarpack++-dev

运行结果:

线特征---LineMatching代码运行(五)的更多相关文章

  1. 线特征---LineMatching原理(四)

    参考文章:An efficient and robust line segment matching approach based on LBD descriptor and pairwise geo ...

  2. 线特征---LSD and LBD程序运行(一)

    最近在看有关特征提取的线特征,暑期就看了相关的论文:<基于点线综合特征的双目视觉SLAM方法_谢晓佳>,最近呢,把里面有关线特征提取LSD和描述子LBD的代码跑了一遍,记录如下: [1]L ...

  3. Hbase集群搭建及所有配置调优参数整理及API代码运行

    最近为了方便开发,在自己的虚拟机上搭建了三节点的Hadoop集群与Hbase集群,hadoop集群的搭建与zookeeper集群这里就不再详细说明,原来的笔记中记录过.这里将hbase配置参数进行相应 ...

  4. 第十章实践——系统级I/O代码运行

    第十章实践——系统级I/O代码运行 实验代码清单如下: 1. cp1——复制一个文件到另一个文件中(两个已经存在的文件) 复制前: 执行后结果 2. setecho.echostate——改变.显示输 ...

  5. 如何加速MATLAB代码运行

    学习笔记 V1.0 2015/4/17 如何加速MATLAB代码运行 概述 本文源于LDPCC的MATLAB代码,即<CCSDS标准的LDPC编译码仿真>.由于代码的问题,在信息位长度很长 ...

  6. Spark菜鸟学习营Day6 分布式代码运行调试

    Spark菜鸟学习营Day6 分布式代码运行调试 作为代码调试,一般会分成两个部分 语法调试,也就是确定能够运行 结果调试,也就是确定程序逻辑的正确 其实这个都离不开运行,所以我们说一下如何让开发的S ...

  7. 监控代码运行时长 -- StopWatch用法例程

    在.net环境下,精确的测量出某段代码运行的时长,在网络通信.串口通信以及异步操作中很有意义.现在做了简单的总结.具体代码如下: (1).首先 using System.Diagnostics; (2 ...

  8. 解决“无法连接到Python代码运行助手。请检查本机的设置”问题

    廖雪峰老师python课程里有个代码运行助手,可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码,很方便的一个脚本工具,但是很多人用过之后出现了这样的提示:“无法连接到 ...

  9. Swift学习笔记(一)搭配环境以及代码运行成功

    原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...

随机推荐

  1. Eclipce 配置javaEE

    Eclipse 安装JavaEE插件   Oxygen版Eclipse 导入项目会自动安装你项目需要的一些插件,但是有时候会安装失败,需要手动安装: 这里以Dynamic Web Project项目为 ...

  2. Python异常和调试.md

    异常捕获 try 基本概念 我们使用try except来捕获异常,python的try except有几个特点: 不管函数内部嵌套几层,只要在try的范围内就可以被捕获.这句话的意思是一个函数被tr ...

  3. (Unity4.7)assetbundle 坑爹总结

    使用版本Unity4.7 一.关于依赖打包 1.当一个被打包的资源A引用了其他的资源B,并且没有被打成一个包时,要选用[BuildAssetBundleOptions.CollectDependenc ...

  4. 吴裕雄 python神经网络(8)

    # -*- coding=utf-8 -*-import numpy as npimport kerasfrom keras.models import Sequentialfrom keras.la ...

  5. Linux简介及Linux学习路线图

    一.Linux 为何物 Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有 ...

  6. php图片转base64

    /*读取问价家图片生澈哥哥js文件 */header("Access-Control-Allow-Origin: *");$i=0;$handle = opendir('./ima ...

  7. Java的二分查找

    今天学习了二分查找,虽然代码简单,但还是要有必要,记录一下今天的学习的. public class TestBrinarySeach { public static void main(String[ ...

  8. NBU 还原LINUX ORACLE RAC数据库(CRM)

    CRM集群数据库恢复 linux centos 6.6 oracle 11.2.0.3 集群环境 1.53 oraclea 1.54 oracleb 在linux操作系统root用户下安装好NBUci ...

  9. Redis集群架构【转载】

    Redis 集群的 TCP 端口(Redis Cluster TCP ports) 每个 Redis 集群节点需要两个 TCP 连接打开.正常的 TCP 端口用来服务客户端,例如 6379,加 100 ...

  10. 已知一个函数rand7()能够生成1-7的随机数,请给出一个函数rand10(),该函数能够生成1-10的随机数。

    题目: 已知一个函数rand7()能够生成1-7的随机数,请给出一个函数,该函数能够生成1-10的随机数. 思路: 假如已知一个函数能够生成1-49的随机数,那么如何以此生成1-10的随机数呢? 解法 ...