• 线特征---LineMatching代码运行(五)


    [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.7-10 2017-07-31 Q16 http://www.imagemagick.org
    Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
    Features: OpenMP

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

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

    安装过程:

    cd ImageMagick-7.0.7
    ./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 2

    查看是否安装了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++2-dev

     运行结果:

     

        

  • 相关阅读:
    编码问题,编码到吐血
    dz验证码
    奇葩之mysql【四】找不到表了
    EntityFramework 使用Mysql数据库
    Create a custom output cache prodiver in asp.net4
    WPF一个很炫的控件
    yield grammar
    最大公约数的故事
    新人
    学习笔记 简单的amob A%B Problem
  • 原文地址:https://www.cnblogs.com/Jessica-jie/p/7574121.html
Copyright © 2020-2023  润新知