Image 如何运行修补程序匹配源代码进行修补

Image 如何运行修补程序匹配源代码进行修补,image,algorithm,matlab,image-processing,mingw,Image,Algorithm,Matlab,Image Processing,Mingw,请帮我运行源代码补丁匹配。 包含源代码的论文主页: 以及源代码的链接: 我的问题是,我按照readme.txt文件中的说明,在windows 10的终端上运行build_windows.bat,但出现了一个错误,显示: 未知MEX参数'-inline'。 未知MEX参数'-inline'。 我删除了-inline并在terminal中执行bat文件,幸运的是它工作了,并得到了以下消息: Building with 'MinGW64 Compiler (C++)'. In file includ

请帮我运行源代码补丁匹配。 包含源代码的论文主页:

以及源代码的链接:

我的问题是,我按照readme.txt文件中的说明,在windows 10的终端上运行build_windows.bat,但出现了一个错误,显示:
未知MEX参数'-inline'。
未知MEX参数'-inline'。
我删除了-inline并在terminal中执行bat文件,幸运的是它工作了,并得到了以下消息:

Building with 'MinGW64 Compiler (C++)'.
In file included from C:/MinGW/mingw64/x86_64-w64-mingw32/include/c++/backward/hash_set:60:0,
                 from C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/c++/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]
 #warning \
  ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:17: error: 'stdext' is not a namespace-name
 using namespace stdext;
                 ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:23: error: expected namespace-name before ';' token
 using namespace stdext;
                       ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp: In function 'void knn_check_n(Params*, BITMAP*, BITMAP*, VECBITMAP<int>*, VECBITMAP<int>*, VECBITMAP<int>*, int)':
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7: error: 'hash_set' was not declared in this scope
       hash_set<int> pos;
       ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7: note: suggested alternative:
In file included from C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:0:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/c++/backward/hash_set:84:11: note:   '__gnu_cxx::hash_set'
     class hash_set
           ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:16: error: expected primary-expression before 'int'
       hash_set<int> pos;
                ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4502:33: error: 'pos' was not declared in this scope
         if (check_duplicates && pos.count(p_ann[i])) { fprintf(stderr, "duplicate element at %d,%d: %d,%d (d=%d)\n", x, y, INT_TO_X(p_ann[i]), INT_TO_Y(p_ann[i]), p_annd[i]); exit(1); }
                                 ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4503:9: error: 'pos' was not declared in this scope
         pos.insert(p_ann[i]);
         ^

Building with 'MinGW64 Compiler (C++)'.
In file included from C:/MinGW/mingw64/x86_64-w64-mingw32/include/c++/backward/hash_set:60:0,
                 from C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/c++/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]
 #warning \
  ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:17: error: 'stdext' is not a namespace-name
 using namespace stdext;
                 ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:23: error: expected namespace-name before ';' token
 using namespace stdext;
                       ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp: In function 'void knn_check_n(Params*, BITMAP*, BITMAP*, VECBITMAP<int>*, VECBITMAP<int>*, VECBITMAP<int>*, int)':
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7: error: 'hash_set' was not declared in this scope
       hash_set<int> pos;
       ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7: note: suggested alternative:
In file included from C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:0:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/c++/backward/hash_set:84:11: note:   '__gnu_cxx::hash_set'
     class hash_set
           ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:16: error: expected primary-expression before 'int'
       hash_set<int> pos;
                ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4502:33: error: 'pos' was not declared in this scope
         if (check_duplicates && pos.count(p_ann[i])) { fprintf(stderr, "duplicate element at %d,%d: %d,%d (d=%d)\n", x, y, INT_TO_X(p_ann[i]), INT_TO_Y(p_ann[i]), p_annd[i]); exit(1); }
                                 ^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4503:9: error: 'pos' was not declared in this scope
         pos.insert(p_ann[i]);```

I dont understand reason for dont build bat file
使用“MinGW64编译器(C++)”构建。
在从C:/MinGW/mingw64/x86_64-w64-mingw32/include/C++/backward/hash_set:60:0包含的文件中,
从C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/C++/backward/backward_warning.h:32:2:warning:#warning此文件至少包含一个已弃用或过时的头文件,以后可以在不另行通知的情况下删除。请改用具有同等功能的非弃用接口。有关替换头和接口的列表,请参阅文件backward_warning.h。要禁用此警告,请使用-Wno弃用。[-Wcpp]
#警告\
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:17:错误:“stdext”不是命名空间名称
使用名称空间stdext;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:23:错误:在“;”之前应有命名空间名称代币
使用名称空间stdext;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:在函数“void knn_check_n(参数*,位图*,位图*,向量位图*,向量位图*,向量位图*,int)”中:
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7:错误:“hash\u set”未在此范围内声明
hash_集pos;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7:注:建议的备选方案:
在C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:0中包含的文件中:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/C++/backward/hash_集:84:11:注意:“\uu gnu_cxx::hash_集”
类散列集
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:16:错误:应在“int”之前使用主表达式
hash_集pos;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4502:33:错误:“pos”未在此范围内声明
如果(检查重复项和位置计数(p_-ann[i]){fprintf(stderr,%d处的重复元素,%d(d=%d)\n),x,y,INT-TO-x(p_-ann[i]),INT-TO-y(p_-ann[i]),p_-annd[i]);退出(1)}则
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4503:9:错误:“pos”未在此范围内声明
插入位置(p_ann[i]);
^
使用“MinGW64编译器(C++)”构建。
在从C:/MinGW/mingw64/x86_64-w64-mingw32/include/C++/backward/hash_set:60:0包含的文件中,
从C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/C++/backward/backward_warning.h:32:2:warning:#warning此文件至少包含一个已弃用或过时的头文件,以后可以在不另行通知的情况下删除。请改用具有同等功能的非弃用接口。有关替换头和接口的列表,请参阅文件backward_warning.h。要禁用此警告,请使用-Wno弃用。[-Wcpp]
#警告\
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:17:错误:“stdext”不是命名空间名称
使用名称空间stdext;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:42:23:错误:在“;”之前应有命名空间名称代币
使用名称空间stdext;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:在函数“void knn_check_n(参数*,位图*,位图*,向量位图*,向量位图*,向量位图*,int)”中:
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7:错误:“hash\u set”未在此范围内声明
hash_集pos;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:7:注:建议的备选方案:
在C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:11:0中包含的文件中:
C:/MinGW/mingw64/x86_64-w64-mingw32/include/C++/backward/hash_集:84:11:注意:“\uu gnu_cxx::hash_集”
类散列集
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4500:16:错误:应在“int”之前使用主表达式
hash_集pos;
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4502:33:错误:“pos”未在此范围内声明
如果(检查重复项和位置计数(p_-ann[i]){fprintf(stderr,%d处的重复元素,%d(d=%d)\n),x,y,INT-TO-x(p_-ann[i]),INT-TO-y(p_-ann[i]),p_-annd[i]);退出(1)}则
^
C:\patchmatch-2.1\patchmatch-2.1\knn.cpp:4503:9:错误:“pos”未在此范围内声明
插入位置(p_ann[i])```
我不明白为什么不建立bat文件

考虑一下,这段源代码是在11年前的2009年(名字)编写的。11年来,MATLAB发生了很多变化。删除
-inline
应该没问题。是描述选项功能的
mex
命令的旧文档页的副本。这只是多年来消失的众多选项之一。请注意编译时收到的第一条警告:“此文件至少包含一个已弃用或过时的标题,以后可能会在不另行通知的情况下删除。请改用具有同等功能的非弃用接口。”源代码正在使用不再受支持的过时功能。也许选择合适的C++标准级别可能会有帮助?CrisLuengo,你推荐什么版本?