GMS程序调试指南GMS-Feature-Matcher

https://blog.csdn.net/qq_35705332/article/details/90231913

https://github.com/JiawangBian/GMS-Feature-Matcher

 

代码获得处:https://github.com/JiawangBian/GMS-Feature-Matcher
作者交流处:https://jwbian.net/gms#comment-55(可以查看出现同样的问题)也有作者声明论文中表达错误的地方

作者提供了三个版本:
python/matlab/C++

下面讨论C++版本与Matlab版本

1 C++ version

(1)VS2015新建一个项目,添加src文件夹下面的demo.cpp
(2)添加属性表(opencv3以上即可)
(3)修改demo.cpp头文件路径,修改为绝对路径
#include “H:GMS-Feature-Matcher-masterGMS-Feature-Matcher-masterincludegms_matcher.h”(或者将该文件放在工程下面)
(4)图片读入,可能为空,所以也把图片修改为绝对路径或者搬移到项目下

运行结果

在这里插入图片描述

2 matlab version

存在一个编译问题。

错误展示
  • 1
MEX配置为使用'Microsoft Visual C ++ 2013 Professional(C)'以进行C语言编译。
警告:MATLAB C和Fortran API已更改,现可支持
包含2 ^ 32-1个以上元素的MATLAB变量。不久以后,
您需要更新代码以利用
新的API。您可以在以下网址找到相关详细信息:http:
//www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api html的。

要选择不同的语言,请从以下选择中选择一种命令:
mex -setup C ++ 
mex -setup FORTRAN 
错误使用mex 
文件扩展名“未知。
出错编译(第19行)
mex('MexGMS.cpp','D: / OutPutResult / GMS / include /',IPath,LPath,lib1,
lib2,lib3,lib4); 
出错演示(第4行)
编译;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
解决办法

(1)compile.m文件内

OpenCV = 'H:/Opencv3/opencv331_vc14/build/' 修改为你的路径
version = '331';//修改为你的版本
IPath = ['-I' OpenCV 'include'];//include
LPath = ['-L' OpenCV 'x64/vc14/lib'];//lib
  • 1
  • 2
  • 3
  • 4

(2)lib文件添加
参考作者说明:
在这里插入图片描述
因此我新建了一个lib指向opencv_world331.lib

lib = ['-lopencv_world' version '.lib'];
lib1 = ['-lopencv_core' version '.lib'];
lib2 = ['-lopencv_features2d' version '.lib'];
lib3 = ['-lopencv_imgcodecs' version '.lib'];
lib4 = ['-lopencv_imgproc' version '.lib'];


mex -setup
mex ('MexGMS.cpp', '-IH:/GMS-Feature-Matcher-master/GMS-Feature-Matcher-master/include/', IPath, LPath, lib); //添加的include路径为包含gms_matcher.h的绝对路径;也只用指向新建的lib就好了
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

运行结果

在这里插入图片描述

原文地址:https://www.cnblogs.com/shuimuqingyang/p/14293091.html