├── CodeForLineMatching ├── CMakeLists.txt ├── Main(fitPlane).cpp ├── Main.cpp ├── build │ ├── CMakeCache.txt │ ├── CMakeFiles │ │ ├── 3.10.2 │ │ │ ├── CMakeCCompiler.cmake │ │ │ ├── CMakeCXXCompiler.cmake │ │ │ ├── CMakeDetermineCompilerABI_C.bin │ │ │ ├── CMakeDetermineCompilerABI_CXX.bin │ │ │ ├── CMakeSystem.cmake │ │ │ ├── CompilerIdC │ │ │ │ ├── CMakeCCompilerId.c │ │ │ │ └── a.out │ │ │ └── CompilerIdCXX │ │ │ │ ├── CMakeCXXCompilerId.cpp │ │ │ │ └── a.out │ │ ├── CMakeDirectoryInformation.cmake │ │ ├── CMakeError.log │ │ ├── CMakeOutput.log │ │ ├── LineMatchingLib.dir │ │ │ ├── CXX.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── linedetection.cpp.o │ │ │ ├── linedetector.cpp.o │ │ │ ├── link.txt │ │ │ └── progress.make │ │ ├── Makefile.cmake │ │ ├── Makefile2 │ │ ├── TargetDirectories.txt │ │ ├── cmake.check_cache │ │ ├── feature_tests.bin │ │ ├── feature_tests.c │ │ ├── feature_tests.cxx │ │ ├── lineMatching.dir │ │ │ ├── CXX.includecache │ │ │ ├── DependInfo.cmake │ │ │ ├── Main.cpp.o │ │ │ ├── build.make │ │ │ ├── cmake_clean.cmake │ │ │ ├── depend.internal │ │ │ ├── depend.make │ │ │ ├── flags.make │ │ │ ├── link.txt │ │ │ └── progress.make │ │ └── progress.marks │ ├── Makefile │ ├── Plane1.png │ ├── Plane10.png │ ├── Plane11.png │ ├── Plane2.png │ ├── Plane3.png │ ├── Plane4.png │ ├── Plane5.png │ ├── Plane6.png │ ├── Plane7.png │ ├── Plane8.png │ ├── Plane9.png │ ├── cmake_install.cmake │ ├── eigenVec.txt │ ├── info.txt │ ├── libLineMatchingLib.so │ ├── lineMatching │ ├── outleft.png │ └── outright.png ├── image │ ├── LBDout.png │ ├── LBDout1.png │ ├── LBDout2.png │ ├── left1.png │ ├── left5.png │ ├── out.png │ ├── out1.png │ ├── out2.png │ ├── right1.png │ └── right5.png ├── linedetection.cpp ├── linedetector.cpp ├── linedetector.h ├── readMe.txt ├── removed │ ├── 0.cpp │ ├── Demo_LBD_Multi.cpp │ ├── Demo_LBD_single.cpp │ ├── EDLineDetector.cpp │ ├── EDLineDetector.hh │ ├── LineDescriptor.cpp │ ├── LineDescriptor.hh │ ├── LineMatchingAlgorithm.hpp │ ├── LineStructure.hh │ ├── PairwiseLineMatching.cpp │ ├── PairwiseLineMatching.hh │ ├── Untitled1.cpp │ ├── Untitled1.exe │ ├── m.cpp │ └── test.hpp └── system.h ├── Multiple Homography Estimation via Stereo Line Matching for Textureless Indoor Scenes.pdf └── README.md /CodeForLineMatching/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | 3 | find_package(OpenCV PATHS "/usr/local/share/OpenCV") 4 | find_package(OpenGL REQUIRED) 5 | find_package(GLUT REQUIRED) 6 | include_directories(${OpenCV_INCLUDE_DIRS}) 7 | 8 | if(COMMAND cmake_policy) 9 | cmake_policy(SET CMP0003 NEW) 10 | endif(COMMAND cmake_policy) 11 | 12 | SET(BUILD_SHARED_LIBS ON) 13 | 14 | SET(ARPACK_INCLUDE_DIR "/usr/include/arpack++") 15 | SET(ARPACK_LINK_DIR "/usr/lib") 16 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} 17 | "${PROJECT_SOURCE_DIR}/cmake_modules/") 18 | 19 | # Default locations to search for on various platforms. 20 | #LIST(APPEND SEARCH_LIBS /usr/lib) 21 | #LIST(APPEND SEARCH_LIBS /usr/local/lib) 22 | #LIST(APPEND SEARCH_LIBS /opt/local/lib) 23 | 24 | #LIST(APPEND SEARCH_HEADERS /usr/include) 25 | #LIST(APPEND SEARCH_HEADERS /usr/local/include) 26 | #LIST(APPEND SEARCH_HEADERS /opt/local/include) 27 | 28 | #message("-- Check for Google Flags") 29 | #find_library(GFLAGS_LIB NAMES gflags PATHS ${SEARCH_LIBS}) 30 | #find_path(GFLAGS_INCLUDE NAMES gflags/gflags.h PATHS ${SEARCH_HEADERS}) 31 | 32 | #set(GOOGLE_LIBRARIES ${GFLAGS_LIB}) 33 | 34 | include_directories(${linedetection_SOURCE_DIR}/include) 35 | include_directories(library ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS}) 36 | #include_directories(${GFLAGS_INCLUDE}) 37 | #include_directories(.) 38 | INCLUDE_DIRECTORIES(${ARPACK_INCLUDE_DIR} /usr/local/include/opencv) 39 | LINK_DIRECTORIES(${ARPACK_LINK_DIR} /usr/local/lib) 40 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3") #-fno-omit-frame-pointer") 41 | SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c++11 -O3") #-fno-omit-frame-pointer") 42 | 43 | # source files of library "LineMatchingLib" to be created 44 | SET(LineMatchingLib_SRCS 45 | linedetection.cpp 46 | linedetector.cpp 47 | ) 48 | # header files to be installed 49 | SET(LineMatchingLib_HEADER 50 | linedetector.h 51 | system.h 52 | ) 53 | 54 | ADD_LIBRARY(LineMatchingLib 55 | ${LineMatchingLib_SRCS} 56 | ${LineMatchingLib_HEADER}) 57 | TARGET_LINK_LIBRARIES(LineMatchingLib ${OpenCV_LIBS} arpack /usr/lib/x86_64-linux-gnu/libsuperlu.so arpack++) 58 | 59 | set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}) 60 | 61 | add_executable(lineMatching Main.cpp ) 62 | target_link_libraries(lineMatching LineMatchingLib ${OpenCV_LIBS} ${OPENGL_LIBRARIES} ${GLUT_glut_LIBRARY}) 63 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeCCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_C_COMPILER "/usr/bin/cc") 2 | set(CMAKE_C_COMPILER_ARG1 "") 3 | set(CMAKE_C_COMPILER_ID "GNU") 4 | set(CMAKE_C_COMPILER_VERSION "7.3.0") 5 | set(CMAKE_C_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_C_COMPILER_WRAPPER "") 7 | set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") 8 | set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") 9 | set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") 10 | set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") 11 | set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") 12 | 13 | set(CMAKE_C_PLATFORM_ID "Linux") 14 | set(CMAKE_C_SIMULATE_ID "") 15 | set(CMAKE_C_SIMULATE_VERSION "") 16 | 17 | 18 | 19 | set(CMAKE_AR "/usr/bin/ar") 20 | set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-7") 21 | set(CMAKE_RANLIB "/usr/bin/ranlib") 22 | set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7") 23 | set(CMAKE_LINKER "/usr/bin/ld") 24 | set(CMAKE_COMPILER_IS_GNUCC 1) 25 | set(CMAKE_C_COMPILER_LOADED 1) 26 | set(CMAKE_C_COMPILER_WORKS TRUE) 27 | set(CMAKE_C_ABI_COMPILED TRUE) 28 | set(CMAKE_COMPILER_IS_MINGW ) 29 | set(CMAKE_COMPILER_IS_CYGWIN ) 30 | if(CMAKE_COMPILER_IS_CYGWIN) 31 | set(CYGWIN 1) 32 | set(UNIX 1) 33 | endif() 34 | 35 | set(CMAKE_C_COMPILER_ENV_VAR "CC") 36 | 37 | if(CMAKE_COMPILER_IS_MINGW) 38 | set(MINGW 1) 39 | endif() 40 | set(CMAKE_C_COMPILER_ID_RUN 1) 41 | set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) 42 | set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) 43 | set(CMAKE_C_LINKER_PREFERENCE 10) 44 | 45 | # Save compiler ABI information. 46 | set(CMAKE_C_SIZEOF_DATA_PTR "8") 47 | set(CMAKE_C_COMPILER_ABI "ELF") 48 | set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 49 | 50 | if(CMAKE_C_SIZEOF_DATA_PTR) 51 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") 52 | endif() 53 | 54 | if(CMAKE_C_COMPILER_ABI) 55 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") 56 | endif() 57 | 58 | if(CMAKE_C_LIBRARY_ARCHITECTURE) 59 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 60 | endif() 61 | 62 | set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") 63 | if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) 64 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") 65 | endif() 66 | 67 | 68 | 69 | 70 | 71 | set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") 72 | set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 73 | set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 74 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_CXX_COMPILER "/usr/bin/c++") 2 | set(CMAKE_CXX_COMPILER_ARG1 "") 3 | set(CMAKE_CXX_COMPILER_ID "GNU") 4 | set(CMAKE_CXX_COMPILER_VERSION "7.3.0") 5 | set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") 6 | set(CMAKE_CXX_COMPILER_WRAPPER "") 7 | set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") 8 | set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") 9 | set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") 10 | set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") 11 | set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") 12 | set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") 13 | 14 | set(CMAKE_CXX_PLATFORM_ID "Linux") 15 | set(CMAKE_CXX_SIMULATE_ID "") 16 | set(CMAKE_CXX_SIMULATE_VERSION "") 17 | 18 | 19 | 20 | set(CMAKE_AR "/usr/bin/ar") 21 | set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-7") 22 | set(CMAKE_RANLIB "/usr/bin/ranlib") 23 | set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-7") 24 | set(CMAKE_LINKER "/usr/bin/ld") 25 | set(CMAKE_COMPILER_IS_GNUCXX 1) 26 | set(CMAKE_CXX_COMPILER_LOADED 1) 27 | set(CMAKE_CXX_COMPILER_WORKS TRUE) 28 | set(CMAKE_CXX_ABI_COMPILED TRUE) 29 | set(CMAKE_COMPILER_IS_MINGW ) 30 | set(CMAKE_COMPILER_IS_CYGWIN ) 31 | if(CMAKE_COMPILER_IS_CYGWIN) 32 | set(CYGWIN 1) 33 | set(UNIX 1) 34 | endif() 35 | 36 | set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") 37 | 38 | if(CMAKE_COMPILER_IS_MINGW) 39 | set(MINGW 1) 40 | endif() 41 | set(CMAKE_CXX_COMPILER_ID_RUN 1) 42 | set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) 43 | set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) 44 | set(CMAKE_CXX_LINKER_PREFERENCE 30) 45 | set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) 46 | 47 | # Save compiler ABI information. 48 | set(CMAKE_CXX_SIZEOF_DATA_PTR "8") 49 | set(CMAKE_CXX_COMPILER_ABI "ELF") 50 | set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 51 | 52 | if(CMAKE_CXX_SIZEOF_DATA_PTR) 53 | set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") 54 | endif() 55 | 56 | if(CMAKE_CXX_COMPILER_ABI) 57 | set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") 58 | endif() 59 | 60 | if(CMAKE_CXX_LIBRARY_ARCHITECTURE) 61 | set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") 62 | endif() 63 | 64 | set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") 65 | if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) 66 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") 67 | endif() 68 | 69 | 70 | 71 | 72 | 73 | set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") 74 | set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") 75 | set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") 76 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CMakeSystem.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_HOST_SYSTEM "Linux-4.15.0-47-generic") 2 | set(CMAKE_HOST_SYSTEM_NAME "Linux") 3 | set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-47-generic") 4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") 5 | 6 | 7 | 8 | set(CMAKE_SYSTEM "Linux-4.15.0-47-generic") 9 | set(CMAKE_SYSTEM_NAME "Linux") 10 | set(CMAKE_SYSTEM_VERSION "4.15.0-47-generic") 11 | set(CMAKE_SYSTEM_PROCESSOR "x86_64") 12 | 13 | set(CMAKE_CROSSCOMPILING "FALSE") 14 | 15 | set(CMAKE_SYSTEM_LOADED 1) 16 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CompilerIdC/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/3.10.2/CompilerIdC/a.out -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CompilerIdCXX/CMakeCXXCompilerId.cpp: -------------------------------------------------------------------------------- 1 | /* This source file must have a .cpp extension so that all C++ compilers 2 | recognize the extension without flags. Borland does not know .cxx for 3 | example. */ 4 | #ifndef __cplusplus 5 | # error "A C compiler has been selected for C++." 6 | #endif 7 | 8 | 9 | /* Version number components: V=Version, R=Revision, P=Patch 10 | Version date components: YYYY=Year, MM=Month, DD=Day */ 11 | 12 | #if defined(__COMO__) 13 | # define COMPILER_ID "Comeau" 14 | /* __COMO_VERSION__ = VRR */ 15 | # define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) 16 | # define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) 17 | 18 | #elif defined(__INTEL_COMPILER) || defined(__ICC) 19 | # define COMPILER_ID "Intel" 20 | # if defined(_MSC_VER) 21 | # define SIMULATE_ID "MSVC" 22 | # endif 23 | /* __INTEL_COMPILER = VRP */ 24 | # define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) 25 | # define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) 26 | # if defined(__INTEL_COMPILER_UPDATE) 27 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) 28 | # else 29 | # define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) 30 | # endif 31 | # if defined(__INTEL_COMPILER_BUILD_DATE) 32 | /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ 33 | # define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) 34 | # endif 35 | # if defined(_MSC_VER) 36 | /* _MSC_VER = VVRR */ 37 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 38 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 39 | # endif 40 | 41 | #elif defined(__PATHCC__) 42 | # define COMPILER_ID "PathScale" 43 | # define COMPILER_VERSION_MAJOR DEC(__PATHCC__) 44 | # define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) 45 | # if defined(__PATHCC_PATCHLEVEL__) 46 | # define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) 47 | # endif 48 | 49 | #elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) 50 | # define COMPILER_ID "Embarcadero" 51 | # define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) 52 | # define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) 53 | # define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) 54 | 55 | #elif defined(__BORLANDC__) 56 | # define COMPILER_ID "Borland" 57 | /* __BORLANDC__ = 0xVRR */ 58 | # define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) 59 | # define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) 60 | 61 | #elif defined(__WATCOMC__) && __WATCOMC__ < 1200 62 | # define COMPILER_ID "Watcom" 63 | /* __WATCOMC__ = VVRR */ 64 | # define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) 65 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 66 | # if (__WATCOMC__ % 10) > 0 67 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 68 | # endif 69 | 70 | #elif defined(__WATCOMC__) 71 | # define COMPILER_ID "OpenWatcom" 72 | /* __WATCOMC__ = VVRP + 1100 */ 73 | # define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) 74 | # define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) 75 | # if (__WATCOMC__ % 10) > 0 76 | # define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) 77 | # endif 78 | 79 | #elif defined(__SUNPRO_CC) 80 | # define COMPILER_ID "SunPro" 81 | # if __SUNPRO_CC >= 0x5100 82 | /* __SUNPRO_CC = 0xVRRP */ 83 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) 84 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) 85 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 86 | # else 87 | /* __SUNPRO_CC = 0xVRP */ 88 | # define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) 89 | # define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) 90 | # define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) 91 | # endif 92 | 93 | #elif defined(__HP_aCC) 94 | # define COMPILER_ID "HP" 95 | /* __HP_aCC = VVRRPP */ 96 | # define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) 97 | # define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) 98 | # define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) 99 | 100 | #elif defined(__DECCXX) 101 | # define COMPILER_ID "Compaq" 102 | /* __DECCXX_VER = VVRRTPPPP */ 103 | # define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) 104 | # define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) 105 | # define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) 106 | 107 | #elif defined(__IBMCPP__) && defined(__COMPILER_VER__) 108 | # define COMPILER_ID "zOS" 109 | /* __IBMCPP__ = VRP */ 110 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 111 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 112 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 113 | 114 | #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 115 | # define COMPILER_ID "XL" 116 | /* __IBMCPP__ = VRP */ 117 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 118 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 119 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 120 | 121 | #elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 122 | # define COMPILER_ID "VisualAge" 123 | /* __IBMCPP__ = VRP */ 124 | # define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) 125 | # define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) 126 | # define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) 127 | 128 | #elif defined(__PGI) 129 | # define COMPILER_ID "PGI" 130 | # define COMPILER_VERSION_MAJOR DEC(__PGIC__) 131 | # define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) 132 | # if defined(__PGIC_PATCHLEVEL__) 133 | # define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) 134 | # endif 135 | 136 | #elif defined(_CRAYC) 137 | # define COMPILER_ID "Cray" 138 | # define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) 139 | # define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) 140 | 141 | #elif defined(__TI_COMPILER_VERSION__) 142 | # define COMPILER_ID "TI" 143 | /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ 144 | # define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) 145 | # define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) 146 | # define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) 147 | 148 | #elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) 149 | # define COMPILER_ID "Fujitsu" 150 | 151 | #elif defined(__SCO_VERSION__) 152 | # define COMPILER_ID "SCO" 153 | 154 | #elif defined(__clang__) && defined(__apple_build_version__) 155 | # define COMPILER_ID "AppleClang" 156 | # if defined(_MSC_VER) 157 | # define SIMULATE_ID "MSVC" 158 | # endif 159 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 160 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 161 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 162 | # if defined(_MSC_VER) 163 | /* _MSC_VER = VVRR */ 164 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 165 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 166 | # endif 167 | # define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) 168 | 169 | #elif defined(__clang__) 170 | # define COMPILER_ID "Clang" 171 | # if defined(_MSC_VER) 172 | # define SIMULATE_ID "MSVC" 173 | # endif 174 | # define COMPILER_VERSION_MAJOR DEC(__clang_major__) 175 | # define COMPILER_VERSION_MINOR DEC(__clang_minor__) 176 | # define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) 177 | # if defined(_MSC_VER) 178 | /* _MSC_VER = VVRR */ 179 | # define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) 180 | # define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) 181 | # endif 182 | 183 | #elif defined(__GNUC__) || defined(__GNUG__) 184 | # define COMPILER_ID "GNU" 185 | # if defined(__GNUC__) 186 | # define COMPILER_VERSION_MAJOR DEC(__GNUC__) 187 | # else 188 | # define COMPILER_VERSION_MAJOR DEC(__GNUG__) 189 | # endif 190 | # if defined(__GNUC_MINOR__) 191 | # define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) 192 | # endif 193 | # if defined(__GNUC_PATCHLEVEL__) 194 | # define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) 195 | # endif 196 | 197 | #elif defined(_MSC_VER) 198 | # define COMPILER_ID "MSVC" 199 | /* _MSC_VER = VVRR */ 200 | # define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) 201 | # define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) 202 | # if defined(_MSC_FULL_VER) 203 | # if _MSC_VER >= 1400 204 | /* _MSC_FULL_VER = VVRRPPPPP */ 205 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) 206 | # else 207 | /* _MSC_FULL_VER = VVRRPPPP */ 208 | # define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) 209 | # endif 210 | # endif 211 | # if defined(_MSC_BUILD) 212 | # define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) 213 | # endif 214 | 215 | #elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) 216 | # define COMPILER_ID "ADSP" 217 | #if defined(__VISUALDSPVERSION__) 218 | /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ 219 | # define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) 220 | # define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) 221 | # define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) 222 | #endif 223 | 224 | #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) 225 | # define COMPILER_ID "IAR" 226 | # if defined(__VER__) 227 | # define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) 228 | # define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) 229 | # define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) 230 | # define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) 231 | # endif 232 | 233 | #elif defined(__ARMCC_VERSION) 234 | # define COMPILER_ID "ARMCC" 235 | #if __ARMCC_VERSION >= 1000000 236 | /* __ARMCC_VERSION = VRRPPPP */ 237 | # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) 238 | # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) 239 | # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) 240 | #else 241 | /* __ARMCC_VERSION = VRPPPP */ 242 | # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) 243 | # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) 244 | # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) 245 | #endif 246 | 247 | 248 | #elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) 249 | # define COMPILER_ID "MIPSpro" 250 | # if defined(_SGI_COMPILER_VERSION) 251 | /* _SGI_COMPILER_VERSION = VRP */ 252 | # define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) 253 | # define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) 254 | # define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) 255 | # else 256 | /* _COMPILER_VERSION = VRP */ 257 | # define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) 258 | # define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) 259 | # define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) 260 | # endif 261 | 262 | 263 | /* These compilers are either not known or too old to define an 264 | identification macro. Try to identify the platform and guess that 265 | it is the native compiler. */ 266 | #elif defined(__sgi) 267 | # define COMPILER_ID "MIPSpro" 268 | 269 | #elif defined(__hpux) || defined(__hpua) 270 | # define COMPILER_ID "HP" 271 | 272 | #else /* unknown compiler */ 273 | # define COMPILER_ID "" 274 | #endif 275 | 276 | /* Construct the string literal in pieces to prevent the source from 277 | getting matched. Store it in a pointer rather than an array 278 | because some compilers will just produce instructions to fill the 279 | array rather than assigning a pointer to a static array. */ 280 | char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; 281 | #ifdef SIMULATE_ID 282 | char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; 283 | #endif 284 | 285 | #ifdef __QNXNTO__ 286 | char const* qnxnto = "INFO" ":" "qnxnto[]"; 287 | #endif 288 | 289 | #if defined(__CRAYXE) || defined(__CRAYXC) 290 | char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; 291 | #endif 292 | 293 | #define STRINGIFY_HELPER(X) #X 294 | #define STRINGIFY(X) STRINGIFY_HELPER(X) 295 | 296 | /* Identify known platforms by name. */ 297 | #if defined(__linux) || defined(__linux__) || defined(linux) 298 | # define PLATFORM_ID "Linux" 299 | 300 | #elif defined(__CYGWIN__) 301 | # define PLATFORM_ID "Cygwin" 302 | 303 | #elif defined(__MINGW32__) 304 | # define PLATFORM_ID "MinGW" 305 | 306 | #elif defined(__APPLE__) 307 | # define PLATFORM_ID "Darwin" 308 | 309 | #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) 310 | # define PLATFORM_ID "Windows" 311 | 312 | #elif defined(__FreeBSD__) || defined(__FreeBSD) 313 | # define PLATFORM_ID "FreeBSD" 314 | 315 | #elif defined(__NetBSD__) || defined(__NetBSD) 316 | # define PLATFORM_ID "NetBSD" 317 | 318 | #elif defined(__OpenBSD__) || defined(__OPENBSD) 319 | # define PLATFORM_ID "OpenBSD" 320 | 321 | #elif defined(__sun) || defined(sun) 322 | # define PLATFORM_ID "SunOS" 323 | 324 | #elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) 325 | # define PLATFORM_ID "AIX" 326 | 327 | #elif defined(__sgi) || defined(__sgi__) || defined(_SGI) 328 | # define PLATFORM_ID "IRIX" 329 | 330 | #elif defined(__hpux) || defined(__hpux__) 331 | # define PLATFORM_ID "HP-UX" 332 | 333 | #elif defined(__HAIKU__) 334 | # define PLATFORM_ID "Haiku" 335 | 336 | #elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) 337 | # define PLATFORM_ID "BeOS" 338 | 339 | #elif defined(__QNX__) || defined(__QNXNTO__) 340 | # define PLATFORM_ID "QNX" 341 | 342 | #elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) 343 | # define PLATFORM_ID "Tru64" 344 | 345 | #elif defined(__riscos) || defined(__riscos__) 346 | # define PLATFORM_ID "RISCos" 347 | 348 | #elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) 349 | # define PLATFORM_ID "SINIX" 350 | 351 | #elif defined(__UNIX_SV__) 352 | # define PLATFORM_ID "UNIX_SV" 353 | 354 | #elif defined(__bsdos__) 355 | # define PLATFORM_ID "BSDOS" 356 | 357 | #elif defined(_MPRAS) || defined(MPRAS) 358 | # define PLATFORM_ID "MP-RAS" 359 | 360 | #elif defined(__osf) || defined(__osf__) 361 | # define PLATFORM_ID "OSF1" 362 | 363 | #elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) 364 | # define PLATFORM_ID "SCO_SV" 365 | 366 | #elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) 367 | # define PLATFORM_ID "ULTRIX" 368 | 369 | #elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) 370 | # define PLATFORM_ID "Xenix" 371 | 372 | #elif defined(__WATCOMC__) 373 | # if defined(__LINUX__) 374 | # define PLATFORM_ID "Linux" 375 | 376 | # elif defined(__DOS__) 377 | # define PLATFORM_ID "DOS" 378 | 379 | # elif defined(__OS2__) 380 | # define PLATFORM_ID "OS2" 381 | 382 | # elif defined(__WINDOWS__) 383 | # define PLATFORM_ID "Windows3x" 384 | 385 | # else /* unknown platform */ 386 | # define PLATFORM_ID 387 | # endif 388 | 389 | #else /* unknown platform */ 390 | # define PLATFORM_ID 391 | 392 | #endif 393 | 394 | /* For windows compilers MSVC and Intel we can determine 395 | the architecture of the compiler being used. This is because 396 | the compilers do not have flags that can change the architecture, 397 | but rather depend on which compiler is being used 398 | */ 399 | #if defined(_WIN32) && defined(_MSC_VER) 400 | # if defined(_M_IA64) 401 | # define ARCHITECTURE_ID "IA64" 402 | 403 | # elif defined(_M_X64) || defined(_M_AMD64) 404 | # define ARCHITECTURE_ID "x64" 405 | 406 | # elif defined(_M_IX86) 407 | # define ARCHITECTURE_ID "X86" 408 | 409 | # elif defined(_M_ARM64) 410 | # define ARCHITECTURE_ID "ARM64" 411 | 412 | # elif defined(_M_ARM) 413 | # if _M_ARM == 4 414 | # define ARCHITECTURE_ID "ARMV4I" 415 | # elif _M_ARM == 5 416 | # define ARCHITECTURE_ID "ARMV5I" 417 | # else 418 | # define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) 419 | # endif 420 | 421 | # elif defined(_M_MIPS) 422 | # define ARCHITECTURE_ID "MIPS" 423 | 424 | # elif defined(_M_SH) 425 | # define ARCHITECTURE_ID "SHx" 426 | 427 | # else /* unknown architecture */ 428 | # define ARCHITECTURE_ID "" 429 | # endif 430 | 431 | #elif defined(__WATCOMC__) 432 | # if defined(_M_I86) 433 | # define ARCHITECTURE_ID "I86" 434 | 435 | # elif defined(_M_IX86) 436 | # define ARCHITECTURE_ID "X86" 437 | 438 | # else /* unknown architecture */ 439 | # define ARCHITECTURE_ID "" 440 | # endif 441 | 442 | #elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) 443 | # if defined(__ICCARM__) 444 | # define ARCHITECTURE_ID "ARM" 445 | 446 | # elif defined(__ICCAVR__) 447 | # define ARCHITECTURE_ID "AVR" 448 | 449 | # else /* unknown architecture */ 450 | # define ARCHITECTURE_ID "" 451 | # endif 452 | #else 453 | # define ARCHITECTURE_ID 454 | #endif 455 | 456 | /* Convert integer to decimal digit literals. */ 457 | #define DEC(n) \ 458 | ('0' + (((n) / 10000000)%10)), \ 459 | ('0' + (((n) / 1000000)%10)), \ 460 | ('0' + (((n) / 100000)%10)), \ 461 | ('0' + (((n) / 10000)%10)), \ 462 | ('0' + (((n) / 1000)%10)), \ 463 | ('0' + (((n) / 100)%10)), \ 464 | ('0' + (((n) / 10)%10)), \ 465 | ('0' + ((n) % 10)) 466 | 467 | /* Convert integer to hex digit literals. */ 468 | #define HEX(n) \ 469 | ('0' + ((n)>>28 & 0xF)), \ 470 | ('0' + ((n)>>24 & 0xF)), \ 471 | ('0' + ((n)>>20 & 0xF)), \ 472 | ('0' + ((n)>>16 & 0xF)), \ 473 | ('0' + ((n)>>12 & 0xF)), \ 474 | ('0' + ((n)>>8 & 0xF)), \ 475 | ('0' + ((n)>>4 & 0xF)), \ 476 | ('0' + ((n) & 0xF)) 477 | 478 | /* Construct a string literal encoding the version number components. */ 479 | #ifdef COMPILER_VERSION_MAJOR 480 | char const info_version[] = { 481 | 'I', 'N', 'F', 'O', ':', 482 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', 483 | COMPILER_VERSION_MAJOR, 484 | # ifdef COMPILER_VERSION_MINOR 485 | '.', COMPILER_VERSION_MINOR, 486 | # ifdef COMPILER_VERSION_PATCH 487 | '.', COMPILER_VERSION_PATCH, 488 | # ifdef COMPILER_VERSION_TWEAK 489 | '.', COMPILER_VERSION_TWEAK, 490 | # endif 491 | # endif 492 | # endif 493 | ']','\0'}; 494 | #endif 495 | 496 | /* Construct a string literal encoding the internal version number. */ 497 | #ifdef COMPILER_VERSION_INTERNAL 498 | char const info_version_internal[] = { 499 | 'I', 'N', 'F', 'O', ':', 500 | 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', 501 | 'i','n','t','e','r','n','a','l','[', 502 | COMPILER_VERSION_INTERNAL,']','\0'}; 503 | #endif 504 | 505 | /* Construct a string literal encoding the version number components. */ 506 | #ifdef SIMULATE_VERSION_MAJOR 507 | char const info_simulate_version[] = { 508 | 'I', 'N', 'F', 'O', ':', 509 | 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', 510 | SIMULATE_VERSION_MAJOR, 511 | # ifdef SIMULATE_VERSION_MINOR 512 | '.', SIMULATE_VERSION_MINOR, 513 | # ifdef SIMULATE_VERSION_PATCH 514 | '.', SIMULATE_VERSION_PATCH, 515 | # ifdef SIMULATE_VERSION_TWEAK 516 | '.', SIMULATE_VERSION_TWEAK, 517 | # endif 518 | # endif 519 | # endif 520 | ']','\0'}; 521 | #endif 522 | 523 | /* Construct the string literal in pieces to prevent the source from 524 | getting matched. Store it in a pointer rather than an array 525 | because some compilers will just produce instructions to fill the 526 | array rather than assigning a pointer to a static array. */ 527 | char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; 528 | char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; 529 | 530 | 531 | 532 | 533 | #if defined(_MSC_VER) && defined(_MSVC_LANG) 534 | #define CXX_STD _MSVC_LANG 535 | #else 536 | #define CXX_STD __cplusplus 537 | #endif 538 | 539 | const char* info_language_dialect_default = "INFO" ":" "dialect_default[" 540 | #if CXX_STD > 201402L 541 | "17" 542 | #elif CXX_STD >= 201402L 543 | "14" 544 | #elif CXX_STD >= 201103L 545 | "11" 546 | #else 547 | "98" 548 | #endif 549 | "]"; 550 | 551 | /*--------------------------------------------------------------------------*/ 552 | 553 | int main(int argc, char* argv[]) 554 | { 555 | int require = 0; 556 | require += info_compiler[argc]; 557 | require += info_platform[argc]; 558 | #ifdef COMPILER_VERSION_MAJOR 559 | require += info_version[argc]; 560 | #endif 561 | #ifdef COMPILER_VERSION_INTERNAL 562 | require += info_version_internal[argc]; 563 | #endif 564 | #ifdef SIMULATE_ID 565 | require += info_simulate[argc]; 566 | #endif 567 | #ifdef SIMULATE_VERSION_MAJOR 568 | require += info_simulate_version[argc]; 569 | #endif 570 | #if defined(__CRAYXE) || defined(__CRAYXC) 571 | require += info_cray[argc]; 572 | #endif 573 | require += info_language_dialect_default[argc]; 574 | (void)argv; 575 | return require; 576 | } 577 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/3.10.2/CompilerIdCXX/a.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/3.10.2/CompilerIdCXX/a.out -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/CMakeDirectoryInformation.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # Relative path conversion top directories. 5 | set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/scott/gitcode/Line/LineMatching") 6 | set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/scott/gitcode/Line/LineMatching/build") 7 | 8 | # Force unix paths in dependencies. 9 | set(CMAKE_FORCE_UNIX_PATHS 1) 10 | 11 | 12 | # The C and CXX include file regular expressions for this directory. 13 | set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") 14 | set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") 15 | set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) 16 | set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) 17 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/CMakeError.log: -------------------------------------------------------------------------------- 1 | Determining if the pthread_create exist failed with the following output: 2 | Change Dir: /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp 3 | 4 | Run Build Command:"/usr/bin/make" "cmTC_695ac/fast" 5 | /usr/bin/make -f CMakeFiles/cmTC_695ac.dir/build.make CMakeFiles/cmTC_695ac.dir/build 6 | make[1]: Entering directory '/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp' 7 | Building C object CMakeFiles/cmTC_695ac.dir/CheckSymbolExists.c.o 8 | /usr/bin/cc -fPIC -o CMakeFiles/cmTC_695ac.dir/CheckSymbolExists.c.o -c /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c 9 | Linking C executable cmTC_695ac 10 | /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_695ac.dir/link.txt --verbose=1 11 | /usr/bin/cc -fPIC -rdynamic CMakeFiles/cmTC_695ac.dir/CheckSymbolExists.c.o -o cmTC_695ac 12 | CMakeFiles/cmTC_695ac.dir/CheckSymbolExists.c.o: In function `main': 13 | CheckSymbolExists.c:(.text+0x1b): undefined reference to `pthread_create' 14 | collect2: error: ld returned 1 exit status 15 | CMakeFiles/cmTC_695ac.dir/build.make:97: recipe for target 'cmTC_695ac' failed 16 | make[1]: *** [cmTC_695ac] Error 1 17 | make[1]: Leaving directory '/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp' 18 | Makefile:126: recipe for target 'cmTC_695ac/fast' failed 19 | make: *** [cmTC_695ac/fast] Error 2 20 | 21 | File /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c: 22 | /* */ 23 | #include 24 | 25 | int main(int argc, char** argv) 26 | { 27 | (void)argv; 28 | #ifndef pthread_create 29 | return ((int*)(&pthread_create))[argc]; 30 | #else 31 | (void)argc; 32 | return 0; 33 | #endif 34 | } 35 | 36 | Determining if the function pthread_create exists in the pthreads failed with the following output: 37 | Change Dir: /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp 38 | 39 | Run Build Command:"/usr/bin/make" "cmTC_5fa76/fast" 40 | /usr/bin/make -f CMakeFiles/cmTC_5fa76.dir/build.make CMakeFiles/cmTC_5fa76.dir/build 41 | make[1]: Entering directory '/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp' 42 | Building C object CMakeFiles/cmTC_5fa76.dir/CheckFunctionExists.c.o 43 | /usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_5fa76.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.10/Modules/CheckFunctionExists.c 44 | Linking C executable cmTC_5fa76 45 | /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5fa76.dir/link.txt --verbose=1 46 | /usr/bin/cc -fPIC -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_5fa76.dir/CheckFunctionExists.c.o -o cmTC_5fa76 -lpthreads 47 | /usr/bin/ld: cannot find -lpthreads 48 | collect2: error: ld returned 1 exit status 49 | CMakeFiles/cmTC_5fa76.dir/build.make:97: recipe for target 'cmTC_5fa76' failed 50 | make[1]: *** [cmTC_5fa76] Error 1 51 | make[1]: Leaving directory '/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/CMakeTmp' 52 | Makefile:126: recipe for target 'cmTC_5fa76/fast' failed 53 | make: *** [cmTC_5fa76/fast] Error 2 54 | 55 | 56 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "CXX" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_CXX 7 | "/home/scott/gitcode/Line/LineMatching/linedetection.cpp" "/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o" 8 | "/home/scott/gitcode/Line/LineMatching/linedetector.cpp" "/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o" 9 | ) 10 | set(CMAKE_CXX_COMPILER_ID "GNU") 11 | 12 | # The include file search paths: 13 | set(CMAKE_CXX_TARGET_INCLUDE_PATH 14 | "/usr/local/include/opencv4" 15 | "/include" 16 | "../library" 17 | "/usr/include/arpack++" 18 | "/usr/local/include/opencv" 19 | ) 20 | 21 | # Targets to which this target links. 22 | set(CMAKE_TARGET_LINKED_INFO_FILES 23 | ) 24 | 25 | # Fortran module output directory. 26 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 27 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/build.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # Delete rule output on recipe failure. 5 | .DELETE_ON_ERROR: 6 | 7 | 8 | #============================================================================= 9 | # Special targets provided by cmake. 10 | 11 | # Disable implicit rules so canonical targets will work. 12 | .SUFFIXES: 13 | 14 | 15 | # Remove some rules from gmake that .SUFFIXES does not remove. 16 | SUFFIXES = 17 | 18 | .SUFFIXES: .hpux_make_needs_suffix_list 19 | 20 | 21 | # Suppress display of executed commands. 22 | $(VERBOSE).SILENT: 23 | 24 | 25 | # A target that is always out of date. 26 | cmake_force: 27 | 28 | .PHONY : cmake_force 29 | 30 | #============================================================================= 31 | # Set environment variables for the build. 32 | 33 | # The shell in which to execute make rules. 34 | SHELL = /bin/sh 35 | 36 | # The CMake executable. 37 | CMAKE_COMMAND = /usr/bin/cmake 38 | 39 | # The command to remove a file. 40 | RM = /usr/bin/cmake -E remove -f 41 | 42 | # Escaping for special characters. 43 | EQUALS = = 44 | 45 | # The top-level source directory on which CMake was run. 46 | CMAKE_SOURCE_DIR = /home/scott/gitcode/Line/LineMatching 47 | 48 | # The top-level build directory on which CMake was run. 49 | CMAKE_BINARY_DIR = /home/scott/gitcode/Line/LineMatching/build 50 | 51 | # Include any dependencies generated for this target. 52 | include CMakeFiles/LineMatchingLib.dir/depend.make 53 | 54 | # Include the progress variables for this target. 55 | include CMakeFiles/LineMatchingLib.dir/progress.make 56 | 57 | # Include the compile flags for this target's objects. 58 | include CMakeFiles/LineMatchingLib.dir/flags.make 59 | 60 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o: CMakeFiles/LineMatchingLib.dir/flags.make 61 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o: ../linedetection.cpp 62 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o" 63 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o -c /home/scott/gitcode/Line/LineMatching/linedetection.cpp 64 | 65 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.i: cmake_force 66 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/LineMatchingLib.dir/linedetection.cpp.i" 67 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/scott/gitcode/Line/LineMatching/linedetection.cpp > CMakeFiles/LineMatchingLib.dir/linedetection.cpp.i 68 | 69 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.s: cmake_force 70 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/LineMatchingLib.dir/linedetection.cpp.s" 71 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/scott/gitcode/Line/LineMatching/linedetection.cpp -o CMakeFiles/LineMatchingLib.dir/linedetection.cpp.s 72 | 73 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.requires: 74 | 75 | .PHONY : CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.requires 76 | 77 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.provides: CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.requires 78 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.provides.build 79 | .PHONY : CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.provides 80 | 81 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.provides.build: CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o 82 | 83 | 84 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o: CMakeFiles/LineMatchingLib.dir/flags.make 85 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o: ../linedetector.cpp 86 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o" 87 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o -c /home/scott/gitcode/Line/LineMatching/linedetector.cpp 88 | 89 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.i: cmake_force 90 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/LineMatchingLib.dir/linedetector.cpp.i" 91 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/scott/gitcode/Line/LineMatching/linedetector.cpp > CMakeFiles/LineMatchingLib.dir/linedetector.cpp.i 92 | 93 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.s: cmake_force 94 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/LineMatchingLib.dir/linedetector.cpp.s" 95 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/scott/gitcode/Line/LineMatching/linedetector.cpp -o CMakeFiles/LineMatchingLib.dir/linedetector.cpp.s 96 | 97 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.requires: 98 | 99 | .PHONY : CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.requires 100 | 101 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.provides: CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.requires 102 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.provides.build 103 | .PHONY : CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.provides 104 | 105 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.provides.build: CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o 106 | 107 | 108 | # Object files for target LineMatchingLib 109 | LineMatchingLib_OBJECTS = \ 110 | "CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o" \ 111 | "CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o" 112 | 113 | # External object files for target LineMatchingLib 114 | LineMatchingLib_EXTERNAL_OBJECTS = 115 | 116 | libLineMatchingLib.so: CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o 117 | libLineMatchingLib.so: CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o 118 | libLineMatchingLib.so: CMakeFiles/LineMatchingLib.dir/build.make 119 | libLineMatchingLib.so: /usr/local/lib/libopencv_aruco.so.4.0.0 120 | libLineMatchingLib.so: /usr/local/lib/libopencv_bgsegm.so.4.0.0 121 | libLineMatchingLib.so: /usr/local/lib/libopencv_bioinspired.so.4.0.0 122 | libLineMatchingLib.so: /usr/local/lib/libopencv_ccalib.so.4.0.0 123 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudabgsegm.so.4.0.0 124 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudaobjdetect.so.4.0.0 125 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudastereo.so.4.0.0 126 | libLineMatchingLib.so: /usr/local/lib/libopencv_dnn_objdetect.so.4.0.0 127 | libLineMatchingLib.so: /usr/local/lib/libopencv_dpm.so.4.0.0 128 | libLineMatchingLib.so: /usr/local/lib/libopencv_face.so.4.0.0 129 | libLineMatchingLib.so: /usr/local/lib/libopencv_freetype.so.4.0.0 130 | libLineMatchingLib.so: /usr/local/lib/libopencv_fuzzy.so.4.0.0 131 | libLineMatchingLib.so: /usr/local/lib/libopencv_gapi.so.4.0.0 132 | libLineMatchingLib.so: /usr/local/lib/libopencv_hdf.so.4.0.0 133 | libLineMatchingLib.so: /usr/local/lib/libopencv_hfs.so.4.0.0 134 | libLineMatchingLib.so: /usr/local/lib/libopencv_img_hash.so.4.0.0 135 | libLineMatchingLib.so: /usr/local/lib/libopencv_line_descriptor.so.4.0.0 136 | libLineMatchingLib.so: /usr/local/lib/libopencv_optflow.so.4.0.0 137 | libLineMatchingLib.so: /usr/local/lib/libopencv_reg.so.4.0.0 138 | libLineMatchingLib.so: /usr/local/lib/libopencv_rgbd.so.4.0.0 139 | libLineMatchingLib.so: /usr/local/lib/libopencv_saliency.so.4.0.0 140 | libLineMatchingLib.so: /usr/local/lib/libopencv_sfm.so.4.0.0 141 | libLineMatchingLib.so: /usr/local/lib/libopencv_stereo.so.4.0.0 142 | libLineMatchingLib.so: /usr/local/lib/libopencv_stitching.so.4.0.0 143 | libLineMatchingLib.so: /usr/local/lib/libopencv_structured_light.so.4.0.0 144 | libLineMatchingLib.so: /usr/local/lib/libopencv_superres.so.4.0.0 145 | libLineMatchingLib.so: /usr/local/lib/libopencv_surface_matching.so.4.0.0 146 | libLineMatchingLib.so: /usr/local/lib/libopencv_tracking.so.4.0.0 147 | libLineMatchingLib.so: /usr/local/lib/libopencv_videostab.so.4.0.0 148 | libLineMatchingLib.so: /usr/local/lib/libopencv_viz.so.4.0.0 149 | libLineMatchingLib.so: /usr/local/lib/libopencv_xfeatures2d.so.4.0.0 150 | libLineMatchingLib.so: /usr/local/lib/libopencv_ximgproc.so.4.0.0 151 | libLineMatchingLib.so: /usr/local/lib/libopencv_xobjdetect.so.4.0.0 152 | libLineMatchingLib.so: /usr/local/lib/libopencv_xphoto.so.4.0.0 153 | libLineMatchingLib.so: /usr/lib/x86_64-linux-gnu/libsuperlu.so 154 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudafeatures2d.so.4.0.0 155 | libLineMatchingLib.so: /usr/local/lib/libopencv_shape.so.4.0.0 156 | libLineMatchingLib.so: /usr/local/lib/libopencv_phase_unwrapping.so.4.0.0 157 | libLineMatchingLib.so: /usr/local/lib/libopencv_datasets.so.4.0.0 158 | libLineMatchingLib.so: /usr/local/lib/libopencv_plot.so.4.0.0 159 | libLineMatchingLib.so: /usr/local/lib/libopencv_text.so.4.0.0 160 | libLineMatchingLib.so: /usr/local/lib/libopencv_dnn.so.4.0.0 161 | libLineMatchingLib.so: /usr/local/lib/libopencv_ml.so.4.0.0 162 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudaoptflow.so.4.0.0 163 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudalegacy.so.4.0.0 164 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudawarping.so.4.0.0 165 | libLineMatchingLib.so: /usr/local/lib/libopencv_photo.so.4.0.0 166 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudaimgproc.so.4.0.0 167 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudafilters.so.4.0.0 168 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudaarithm.so.4.0.0 169 | libLineMatchingLib.so: /usr/local/lib/libopencv_video.so.4.0.0 170 | libLineMatchingLib.so: /usr/local/lib/libopencv_objdetect.so.4.0.0 171 | libLineMatchingLib.so: /usr/local/lib/libopencv_calib3d.so.4.0.0 172 | libLineMatchingLib.so: /usr/local/lib/libopencv_features2d.so.4.0.0 173 | libLineMatchingLib.so: /usr/local/lib/libopencv_flann.so.4.0.0 174 | libLineMatchingLib.so: /usr/local/lib/libopencv_highgui.so.4.0.0 175 | libLineMatchingLib.so: /usr/local/lib/libopencv_videoio.so.4.0.0 176 | libLineMatchingLib.so: /usr/local/lib/libopencv_imgcodecs.so.4.0.0 177 | libLineMatchingLib.so: /usr/local/lib/libopencv_imgproc.so.4.0.0 178 | libLineMatchingLib.so: /usr/local/lib/libopencv_core.so.4.0.0 179 | libLineMatchingLib.so: /usr/local/lib/libopencv_cudev.so.4.0.0 180 | libLineMatchingLib.so: CMakeFiles/LineMatchingLib.dir/link.txt 181 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX shared library libLineMatchingLib.so" 182 | $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/LineMatchingLib.dir/link.txt --verbose=$(VERBOSE) 183 | 184 | # Rule to build all files generated by this target. 185 | CMakeFiles/LineMatchingLib.dir/build: libLineMatchingLib.so 186 | 187 | .PHONY : CMakeFiles/LineMatchingLib.dir/build 188 | 189 | CMakeFiles/LineMatchingLib.dir/requires: CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o.requires 190 | CMakeFiles/LineMatchingLib.dir/requires: CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o.requires 191 | 192 | .PHONY : CMakeFiles/LineMatchingLib.dir/requires 193 | 194 | CMakeFiles/LineMatchingLib.dir/clean: 195 | $(CMAKE_COMMAND) -P CMakeFiles/LineMatchingLib.dir/cmake_clean.cmake 196 | .PHONY : CMakeFiles/LineMatchingLib.dir/clean 197 | 198 | CMakeFiles/LineMatchingLib.dir/depend: 199 | cd /home/scott/gitcode/Line/LineMatching/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/scott/gitcode/Line/LineMatching /home/scott/gitcode/Line/LineMatching /home/scott/gitcode/Line/LineMatching/build /home/scott/gitcode/Line/LineMatching/build /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/LineMatchingLib.dir/DependInfo.cmake --color=$(COLOR) 200 | .PHONY : CMakeFiles/LineMatchingLib.dir/depend 201 | 202 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o" 3 | "CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o" 4 | "libLineMatchingLib.pdb" 5 | "libLineMatchingLib.so" 6 | ) 7 | 8 | # Per-language clean rules from dependency scanning. 9 | foreach(lang CXX) 10 | include(CMakeFiles/LineMatchingLib.dir/cmake_clean_${lang}.cmake OPTIONAL) 11 | endforeach() 12 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/depend.internal: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o 5 | /home/scott/gitcode/Line/LineMatching/linedetection.cpp 6 | /home/scott/gitcode/Line/LineMatching/linedetector.h 7 | /home/scott/gitcode/Line/LineMatching/system.h 8 | /usr/include/arpack++/arch.h 9 | /usr/include/arpack++/arcomp.h 10 | /usr/include/arpack++/arerror.h 11 | /usr/include/arpack++/arhbmat.h 12 | /usr/include/arpack++/arlcomp.h 13 | /usr/include/arpack++/arlnames.h 14 | /usr/include/arpack++/arlsmat.h 15 | /usr/include/arpack++/arlspdef.h 16 | /usr/include/arpack++/arlspen.h 17 | /usr/include/arpack++/arlssym.h 18 | /usr/include/arpack++/arlsupm.h 19 | /usr/include/arpack++/arlutil.h 20 | /usr/include/arpack++/armat.h 21 | /usr/include/arpack++/arpackf.h 22 | /usr/include/arpack++/arrseig.h 23 | /usr/include/arpack++/arrssym.h 24 | /usr/include/arpack++/arseig.h 25 | /usr/include/arpack++/arssym.h 26 | /usr/include/arpack++/blas1c.h 27 | /usr/include/arpack++/blas1f.h 28 | /usr/include/arpack++/debug.h 29 | /usr/include/arpack++/saupp.h 30 | /usr/include/arpack++/seupp.h 31 | /usr/include/arpack++/superluc.h 32 | /usr/local/include/opencv4/opencv2/calib3d.hpp 33 | /usr/local/include/opencv4/opencv2/core.hpp 34 | /usr/local/include/opencv4/opencv2/core/affine.hpp 35 | /usr/local/include/opencv4/opencv2/core/base.hpp 36 | /usr/local/include/opencv4/opencv2/core/bufferpool.hpp 37 | /usr/local/include/opencv4/opencv2/core/check.hpp 38 | /usr/local/include/opencv4/opencv2/core/cuda.hpp 39 | /usr/local/include/opencv4/opencv2/core/cuda.inl.hpp 40 | /usr/local/include/opencv4/opencv2/core/cuda_types.hpp 41 | /usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h 42 | /usr/local/include/opencv4/opencv2/core/cv_cpu_helper.h 43 | /usr/local/include/opencv4/opencv2/core/cvdef.h 44 | /usr/local/include/opencv4/opencv2/core/cvstd.hpp 45 | /usr/local/include/opencv4/opencv2/core/cvstd.inl.hpp 46 | /usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp 47 | /usr/local/include/opencv4/opencv2/core/fast_math.hpp 48 | /usr/local/include/opencv4/opencv2/core/hal/interface.h 49 | /usr/local/include/opencv4/opencv2/core/mat.hpp 50 | /usr/local/include/opencv4/opencv2/core/mat.inl.hpp 51 | /usr/local/include/opencv4/opencv2/core/matx.hpp 52 | /usr/local/include/opencv4/opencv2/core/neon_utils.hpp 53 | /usr/local/include/opencv4/opencv2/core/operations.hpp 54 | /usr/local/include/opencv4/opencv2/core/optim.hpp 55 | /usr/local/include/opencv4/opencv2/core/ovx.hpp 56 | /usr/local/include/opencv4/opencv2/core/persistence.hpp 57 | /usr/local/include/opencv4/opencv2/core/saturate.hpp 58 | /usr/local/include/opencv4/opencv2/core/traits.hpp 59 | /usr/local/include/opencv4/opencv2/core/types.hpp 60 | /usr/local/include/opencv4/opencv2/core/utility.hpp 61 | /usr/local/include/opencv4/opencv2/core/version.hpp 62 | /usr/local/include/opencv4/opencv2/core/vsx_utils.hpp 63 | /usr/local/include/opencv4/opencv2/cudaarithm.hpp 64 | /usr/local/include/opencv4/opencv2/cudabgsegm.hpp 65 | /usr/local/include/opencv4/opencv2/cudafeatures2d.hpp 66 | /usr/local/include/opencv4/opencv2/cudafilters.hpp 67 | /usr/local/include/opencv4/opencv2/cudaimgproc.hpp 68 | /usr/local/include/opencv4/opencv2/cudaobjdetect.hpp 69 | /usr/local/include/opencv4/opencv2/cudaoptflow.hpp 70 | /usr/local/include/opencv4/opencv2/cudastereo.hpp 71 | /usr/local/include/opencv4/opencv2/cudawarping.hpp 72 | /usr/local/include/opencv4/opencv2/dnn.hpp 73 | /usr/local/include/opencv4/opencv2/dnn/dict.hpp 74 | /usr/local/include/opencv4/opencv2/dnn/dnn.hpp 75 | /usr/local/include/opencv4/opencv2/dnn/dnn.inl.hpp 76 | /usr/local/include/opencv4/opencv2/dnn/layer.hpp 77 | /usr/local/include/opencv4/opencv2/dnn/version.hpp 78 | /usr/local/include/opencv4/opencv2/features2d.hpp 79 | /usr/local/include/opencv4/opencv2/flann.hpp 80 | /usr/local/include/opencv4/opencv2/flann/all_indices.h 81 | /usr/local/include/opencv4/opencv2/flann/allocator.h 82 | /usr/local/include/opencv4/opencv2/flann/any.h 83 | /usr/local/include/opencv4/opencv2/flann/autotuned_index.h 84 | /usr/local/include/opencv4/opencv2/flann/composite_index.h 85 | /usr/local/include/opencv4/opencv2/flann/config.h 86 | /usr/local/include/opencv4/opencv2/flann/defines.h 87 | /usr/local/include/opencv4/opencv2/flann/dist.h 88 | /usr/local/include/opencv4/opencv2/flann/dynamic_bitset.h 89 | /usr/local/include/opencv4/opencv2/flann/flann_base.hpp 90 | /usr/local/include/opencv4/opencv2/flann/general.h 91 | /usr/local/include/opencv4/opencv2/flann/ground_truth.h 92 | /usr/local/include/opencv4/opencv2/flann/heap.h 93 | /usr/local/include/opencv4/opencv2/flann/hierarchical_clustering_index.h 94 | /usr/local/include/opencv4/opencv2/flann/index_testing.h 95 | /usr/local/include/opencv4/opencv2/flann/kdtree_index.h 96 | /usr/local/include/opencv4/opencv2/flann/kdtree_single_index.h 97 | /usr/local/include/opencv4/opencv2/flann/kmeans_index.h 98 | /usr/local/include/opencv4/opencv2/flann/linear_index.h 99 | /usr/local/include/opencv4/opencv2/flann/logger.h 100 | /usr/local/include/opencv4/opencv2/flann/lsh_index.h 101 | /usr/local/include/opencv4/opencv2/flann/lsh_table.h 102 | /usr/local/include/opencv4/opencv2/flann/matrix.h 103 | /usr/local/include/opencv4/opencv2/flann/miniflann.hpp 104 | /usr/local/include/opencv4/opencv2/flann/nn_index.h 105 | /usr/local/include/opencv4/opencv2/flann/params.h 106 | /usr/local/include/opencv4/opencv2/flann/random.h 107 | /usr/local/include/opencv4/opencv2/flann/result_set.h 108 | /usr/local/include/opencv4/opencv2/flann/sampling.h 109 | /usr/local/include/opencv4/opencv2/flann/saving.h 110 | /usr/local/include/opencv4/opencv2/flann/timer.h 111 | /usr/local/include/opencv4/opencv2/highgui.hpp 112 | /usr/local/include/opencv4/opencv2/imgcodecs.hpp 113 | /usr/local/include/opencv4/opencv2/imgproc.hpp 114 | /usr/local/include/opencv4/opencv2/ml.hpp 115 | /usr/local/include/opencv4/opencv2/ml/ml.inl.hpp 116 | /usr/local/include/opencv4/opencv2/objdetect.hpp 117 | /usr/local/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp 118 | /usr/local/include/opencv4/opencv2/opencv.hpp 119 | /usr/local/include/opencv4/opencv2/opencv_modules.hpp 120 | /usr/local/include/opencv4/opencv2/photo.hpp 121 | /usr/local/include/opencv4/opencv2/shape.hpp 122 | /usr/local/include/opencv4/opencv2/shape/emdL1.hpp 123 | /usr/local/include/opencv4/opencv2/shape/hist_cost.hpp 124 | /usr/local/include/opencv4/opencv2/shape/shape_distance.hpp 125 | /usr/local/include/opencv4/opencv2/shape/shape_transformer.hpp 126 | /usr/local/include/opencv4/opencv2/stitching.hpp 127 | /usr/local/include/opencv4/opencv2/stitching/detail/blenders.hpp 128 | /usr/local/include/opencv4/opencv2/stitching/detail/camera.hpp 129 | /usr/local/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp 130 | /usr/local/include/opencv4/opencv2/stitching/detail/matchers.hpp 131 | /usr/local/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp 132 | /usr/local/include/opencv4/opencv2/stitching/detail/seam_finders.hpp 133 | /usr/local/include/opencv4/opencv2/stitching/detail/util.hpp 134 | /usr/local/include/opencv4/opencv2/stitching/detail/util_inl.hpp 135 | /usr/local/include/opencv4/opencv2/stitching/detail/warpers.hpp 136 | /usr/local/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp 137 | /usr/local/include/opencv4/opencv2/stitching/warpers.hpp 138 | /usr/local/include/opencv4/opencv2/superres.hpp 139 | /usr/local/include/opencv4/opencv2/superres/optical_flow.hpp 140 | /usr/local/include/opencv4/opencv2/video.hpp 141 | /usr/local/include/opencv4/opencv2/video/background_segm.hpp 142 | /usr/local/include/opencv4/opencv2/video/tracking.hpp 143 | /usr/local/include/opencv4/opencv2/videoio.hpp 144 | /usr/local/include/opencv4/opencv2/videostab.hpp 145 | /usr/local/include/opencv4/opencv2/videostab/deblurring.hpp 146 | /usr/local/include/opencv4/opencv2/videostab/fast_marching.hpp 147 | /usr/local/include/opencv4/opencv2/videostab/fast_marching_inl.hpp 148 | /usr/local/include/opencv4/opencv2/videostab/frame_source.hpp 149 | /usr/local/include/opencv4/opencv2/videostab/global_motion.hpp 150 | /usr/local/include/opencv4/opencv2/videostab/inpainting.hpp 151 | /usr/local/include/opencv4/opencv2/videostab/log.hpp 152 | /usr/local/include/opencv4/opencv2/videostab/motion_core.hpp 153 | /usr/local/include/opencv4/opencv2/videostab/motion_stabilizing.hpp 154 | /usr/local/include/opencv4/opencv2/videostab/optical_flow.hpp 155 | /usr/local/include/opencv4/opencv2/videostab/outlier_rejection.hpp 156 | /usr/local/include/opencv4/opencv2/videostab/ring_buffer.hpp 157 | /usr/local/include/opencv4/opencv2/videostab/stabilizer.hpp 158 | /usr/local/include/opencv4/opencv2/videostab/wobble_suppression.hpp 159 | /usr/local/include/opencv4/opencv2/viz.hpp 160 | /usr/local/include/opencv4/opencv2/viz/types.hpp 161 | /usr/local/include/opencv4/opencv2/viz/viz3d.hpp 162 | /usr/local/include/opencv4/opencv2/viz/vizcore.hpp 163 | /usr/local/include/opencv4/opencv2/viz/widgets.hpp 164 | /usr/local/include/opencv4/opencv2/xfeatures2d/cuda.hpp 165 | CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o 166 | /home/scott/gitcode/Line/LineMatching/linedetector.cpp 167 | /home/scott/gitcode/Line/LineMatching/linedetector.h 168 | /home/scott/gitcode/Line/LineMatching/system.h 169 | /usr/local/include/opencv4/opencv2/calib3d.hpp 170 | /usr/local/include/opencv4/opencv2/core.hpp 171 | /usr/local/include/opencv4/opencv2/core/affine.hpp 172 | /usr/local/include/opencv4/opencv2/core/base.hpp 173 | /usr/local/include/opencv4/opencv2/core/bufferpool.hpp 174 | /usr/local/include/opencv4/opencv2/core/check.hpp 175 | /usr/local/include/opencv4/opencv2/core/cuda.hpp 176 | /usr/local/include/opencv4/opencv2/core/cuda.inl.hpp 177 | /usr/local/include/opencv4/opencv2/core/cuda_types.hpp 178 | /usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h 179 | /usr/local/include/opencv4/opencv2/core/cv_cpu_helper.h 180 | /usr/local/include/opencv4/opencv2/core/cvdef.h 181 | /usr/local/include/opencv4/opencv2/core/cvstd.hpp 182 | /usr/local/include/opencv4/opencv2/core/cvstd.inl.hpp 183 | /usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp 184 | /usr/local/include/opencv4/opencv2/core/fast_math.hpp 185 | /usr/local/include/opencv4/opencv2/core/hal/interface.h 186 | /usr/local/include/opencv4/opencv2/core/mat.hpp 187 | /usr/local/include/opencv4/opencv2/core/mat.inl.hpp 188 | /usr/local/include/opencv4/opencv2/core/matx.hpp 189 | /usr/local/include/opencv4/opencv2/core/neon_utils.hpp 190 | /usr/local/include/opencv4/opencv2/core/operations.hpp 191 | /usr/local/include/opencv4/opencv2/core/optim.hpp 192 | /usr/local/include/opencv4/opencv2/core/ovx.hpp 193 | /usr/local/include/opencv4/opencv2/core/persistence.hpp 194 | /usr/local/include/opencv4/opencv2/core/saturate.hpp 195 | /usr/local/include/opencv4/opencv2/core/traits.hpp 196 | /usr/local/include/opencv4/opencv2/core/types.hpp 197 | /usr/local/include/opencv4/opencv2/core/utility.hpp 198 | /usr/local/include/opencv4/opencv2/core/version.hpp 199 | /usr/local/include/opencv4/opencv2/core/vsx_utils.hpp 200 | /usr/local/include/opencv4/opencv2/cudaarithm.hpp 201 | /usr/local/include/opencv4/opencv2/cudabgsegm.hpp 202 | /usr/local/include/opencv4/opencv2/cudafeatures2d.hpp 203 | /usr/local/include/opencv4/opencv2/cudafilters.hpp 204 | /usr/local/include/opencv4/opencv2/cudaimgproc.hpp 205 | /usr/local/include/opencv4/opencv2/cudaobjdetect.hpp 206 | /usr/local/include/opencv4/opencv2/cudaoptflow.hpp 207 | /usr/local/include/opencv4/opencv2/cudastereo.hpp 208 | /usr/local/include/opencv4/opencv2/cudawarping.hpp 209 | /usr/local/include/opencv4/opencv2/dnn.hpp 210 | /usr/local/include/opencv4/opencv2/dnn/dict.hpp 211 | /usr/local/include/opencv4/opencv2/dnn/dnn.hpp 212 | /usr/local/include/opencv4/opencv2/dnn/dnn.inl.hpp 213 | /usr/local/include/opencv4/opencv2/dnn/layer.hpp 214 | /usr/local/include/opencv4/opencv2/dnn/version.hpp 215 | /usr/local/include/opencv4/opencv2/features2d.hpp 216 | /usr/local/include/opencv4/opencv2/flann.hpp 217 | /usr/local/include/opencv4/opencv2/flann/all_indices.h 218 | /usr/local/include/opencv4/opencv2/flann/allocator.h 219 | /usr/local/include/opencv4/opencv2/flann/any.h 220 | /usr/local/include/opencv4/opencv2/flann/autotuned_index.h 221 | /usr/local/include/opencv4/opencv2/flann/composite_index.h 222 | /usr/local/include/opencv4/opencv2/flann/config.h 223 | /usr/local/include/opencv4/opencv2/flann/defines.h 224 | /usr/local/include/opencv4/opencv2/flann/dist.h 225 | /usr/local/include/opencv4/opencv2/flann/dynamic_bitset.h 226 | /usr/local/include/opencv4/opencv2/flann/flann_base.hpp 227 | /usr/local/include/opencv4/opencv2/flann/general.h 228 | /usr/local/include/opencv4/opencv2/flann/ground_truth.h 229 | /usr/local/include/opencv4/opencv2/flann/heap.h 230 | /usr/local/include/opencv4/opencv2/flann/hierarchical_clustering_index.h 231 | /usr/local/include/opencv4/opencv2/flann/index_testing.h 232 | /usr/local/include/opencv4/opencv2/flann/kdtree_index.h 233 | /usr/local/include/opencv4/opencv2/flann/kdtree_single_index.h 234 | /usr/local/include/opencv4/opencv2/flann/kmeans_index.h 235 | /usr/local/include/opencv4/opencv2/flann/linear_index.h 236 | /usr/local/include/opencv4/opencv2/flann/logger.h 237 | /usr/local/include/opencv4/opencv2/flann/lsh_index.h 238 | /usr/local/include/opencv4/opencv2/flann/lsh_table.h 239 | /usr/local/include/opencv4/opencv2/flann/matrix.h 240 | /usr/local/include/opencv4/opencv2/flann/miniflann.hpp 241 | /usr/local/include/opencv4/opencv2/flann/nn_index.h 242 | /usr/local/include/opencv4/opencv2/flann/params.h 243 | /usr/local/include/opencv4/opencv2/flann/random.h 244 | /usr/local/include/opencv4/opencv2/flann/result_set.h 245 | /usr/local/include/opencv4/opencv2/flann/sampling.h 246 | /usr/local/include/opencv4/opencv2/flann/saving.h 247 | /usr/local/include/opencv4/opencv2/flann/timer.h 248 | /usr/local/include/opencv4/opencv2/highgui.hpp 249 | /usr/local/include/opencv4/opencv2/imgcodecs.hpp 250 | /usr/local/include/opencv4/opencv2/imgproc.hpp 251 | /usr/local/include/opencv4/opencv2/ml.hpp 252 | /usr/local/include/opencv4/opencv2/ml/ml.inl.hpp 253 | /usr/local/include/opencv4/opencv2/objdetect.hpp 254 | /usr/local/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp 255 | /usr/local/include/opencv4/opencv2/opencv.hpp 256 | /usr/local/include/opencv4/opencv2/opencv_modules.hpp 257 | /usr/local/include/opencv4/opencv2/photo.hpp 258 | /usr/local/include/opencv4/opencv2/shape.hpp 259 | /usr/local/include/opencv4/opencv2/shape/emdL1.hpp 260 | /usr/local/include/opencv4/opencv2/shape/hist_cost.hpp 261 | /usr/local/include/opencv4/opencv2/shape/shape_distance.hpp 262 | /usr/local/include/opencv4/opencv2/shape/shape_transformer.hpp 263 | /usr/local/include/opencv4/opencv2/stitching.hpp 264 | /usr/local/include/opencv4/opencv2/stitching/detail/blenders.hpp 265 | /usr/local/include/opencv4/opencv2/stitching/detail/camera.hpp 266 | /usr/local/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp 267 | /usr/local/include/opencv4/opencv2/stitching/detail/matchers.hpp 268 | /usr/local/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp 269 | /usr/local/include/opencv4/opencv2/stitching/detail/seam_finders.hpp 270 | /usr/local/include/opencv4/opencv2/stitching/detail/util.hpp 271 | /usr/local/include/opencv4/opencv2/stitching/detail/util_inl.hpp 272 | /usr/local/include/opencv4/opencv2/stitching/detail/warpers.hpp 273 | /usr/local/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp 274 | /usr/local/include/opencv4/opencv2/stitching/warpers.hpp 275 | /usr/local/include/opencv4/opencv2/superres.hpp 276 | /usr/local/include/opencv4/opencv2/superres/optical_flow.hpp 277 | /usr/local/include/opencv4/opencv2/video.hpp 278 | /usr/local/include/opencv4/opencv2/video/background_segm.hpp 279 | /usr/local/include/opencv4/opencv2/video/tracking.hpp 280 | /usr/local/include/opencv4/opencv2/videoio.hpp 281 | /usr/local/include/opencv4/opencv2/videostab.hpp 282 | /usr/local/include/opencv4/opencv2/videostab/deblurring.hpp 283 | /usr/local/include/opencv4/opencv2/videostab/fast_marching.hpp 284 | /usr/local/include/opencv4/opencv2/videostab/fast_marching_inl.hpp 285 | /usr/local/include/opencv4/opencv2/videostab/frame_source.hpp 286 | /usr/local/include/opencv4/opencv2/videostab/global_motion.hpp 287 | /usr/local/include/opencv4/opencv2/videostab/inpainting.hpp 288 | /usr/local/include/opencv4/opencv2/videostab/log.hpp 289 | /usr/local/include/opencv4/opencv2/videostab/motion_core.hpp 290 | /usr/local/include/opencv4/opencv2/videostab/motion_stabilizing.hpp 291 | /usr/local/include/opencv4/opencv2/videostab/optical_flow.hpp 292 | /usr/local/include/opencv4/opencv2/videostab/outlier_rejection.hpp 293 | /usr/local/include/opencv4/opencv2/videostab/ring_buffer.hpp 294 | /usr/local/include/opencv4/opencv2/videostab/stabilizer.hpp 295 | /usr/local/include/opencv4/opencv2/videostab/wobble_suppression.hpp 296 | /usr/local/include/opencv4/opencv2/viz.hpp 297 | /usr/local/include/opencv4/opencv2/viz/types.hpp 298 | /usr/local/include/opencv4/opencv2/viz/viz3d.hpp 299 | /usr/local/include/opencv4/opencv2/viz/vizcore.hpp 300 | /usr/local/include/opencv4/opencv2/viz/widgets.hpp 301 | /usr/local/include/opencv4/opencv2/xfeatures2d/cuda.hpp 302 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # compile CXX with /usr/bin/c++ 5 | CXX_FLAGS = -std=c++11 -O3 -fPIC 6 | 7 | CXX_DEFINES = -DLineMatchingLib_EXPORTS 8 | 9 | CXX_INCLUDES = -isystem /usr/local/include/opencv4 -I/include -I/home/scott/gitcode/Line/LineMatching/library -I/usr/include/arpack++ -I/usr/local/include/opencv 10 | 11 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/c++ -fPIC -std=c++11 -O3 -shared -Wl,-soname,libLineMatchingLib.so -o libLineMatchingLib.so CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o -L/usr/local/cuda/lib64 -L/usr/local/lib -Wl,-rpath,/usr/local/cuda/lib64:/usr/local/lib /usr/local/lib/libopencv_aruco.so.4.0.0 /usr/local/lib/libopencv_bgsegm.so.4.0.0 /usr/local/lib/libopencv_bioinspired.so.4.0.0 /usr/local/lib/libopencv_ccalib.so.4.0.0 /usr/local/lib/libopencv_cudabgsegm.so.4.0.0 /usr/local/lib/libopencv_cudaobjdetect.so.4.0.0 /usr/local/lib/libopencv_cudastereo.so.4.0.0 /usr/local/lib/libopencv_dnn_objdetect.so.4.0.0 /usr/local/lib/libopencv_dpm.so.4.0.0 /usr/local/lib/libopencv_face.so.4.0.0 /usr/local/lib/libopencv_freetype.so.4.0.0 /usr/local/lib/libopencv_fuzzy.so.4.0.0 /usr/local/lib/libopencv_gapi.so.4.0.0 /usr/local/lib/libopencv_hdf.so.4.0.0 /usr/local/lib/libopencv_hfs.so.4.0.0 /usr/local/lib/libopencv_img_hash.so.4.0.0 /usr/local/lib/libopencv_line_descriptor.so.4.0.0 /usr/local/lib/libopencv_optflow.so.4.0.0 /usr/local/lib/libopencv_reg.so.4.0.0 /usr/local/lib/libopencv_rgbd.so.4.0.0 /usr/local/lib/libopencv_saliency.so.4.0.0 /usr/local/lib/libopencv_sfm.so.4.0.0 /usr/local/lib/libopencv_stereo.so.4.0.0 /usr/local/lib/libopencv_stitching.so.4.0.0 /usr/local/lib/libopencv_structured_light.so.4.0.0 /usr/local/lib/libopencv_superres.so.4.0.0 /usr/local/lib/libopencv_surface_matching.so.4.0.0 /usr/local/lib/libopencv_tracking.so.4.0.0 /usr/local/lib/libopencv_videostab.so.4.0.0 /usr/local/lib/libopencv_viz.so.4.0.0 /usr/local/lib/libopencv_xfeatures2d.so.4.0.0 /usr/local/lib/libopencv_ximgproc.so.4.0.0 /usr/local/lib/libopencv_xobjdetect.so.4.0.0 /usr/local/lib/libopencv_xphoto.so.4.0.0 -larpack -lsuperlu -larpack++ /usr/local/lib/libopencv_cudafeatures2d.so.4.0.0 /usr/local/lib/libopencv_shape.so.4.0.0 /usr/local/lib/libopencv_phase_unwrapping.so.4.0.0 /usr/local/lib/libopencv_datasets.so.4.0.0 /usr/local/lib/libopencv_plot.so.4.0.0 /usr/local/lib/libopencv_text.so.4.0.0 /usr/local/lib/libopencv_dnn.so.4.0.0 /usr/local/lib/libopencv_ml.so.4.0.0 /usr/local/lib/libopencv_cudaoptflow.so.4.0.0 /usr/local/lib/libopencv_cudalegacy.so.4.0.0 /usr/local/lib/libopencv_cudawarping.so.4.0.0 /usr/local/lib/libopencv_photo.so.4.0.0 /usr/local/lib/libopencv_cudaimgproc.so.4.0.0 /usr/local/lib/libopencv_cudafilters.so.4.0.0 /usr/local/lib/libopencv_cudaarithm.so.4.0.0 /usr/local/lib/libopencv_video.so.4.0.0 /usr/local/lib/libopencv_objdetect.so.4.0.0 /usr/local/lib/libopencv_calib3d.so.4.0.0 /usr/local/lib/libopencv_features2d.so.4.0.0 /usr/local/lib/libopencv_flann.so.4.0.0 /usr/local/lib/libopencv_highgui.so.4.0.0 /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 /usr/local/lib/libopencv_cudev.so.4.0.0 2 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/LineMatchingLib.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 1 2 | CMAKE_PROGRESS_2 = 2 3 | CMAKE_PROGRESS_3 = 3 4 | 5 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/Makefile.cmake: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # The generator used is: 5 | set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") 6 | 7 | # The top level Makefile was generated from the following files: 8 | set(CMAKE_MAKEFILE_DEPENDS 9 | "CMakeCache.txt" 10 | "../CMakeLists.txt" 11 | "CMakeFiles/3.10.2/CMakeCCompiler.cmake" 12 | "CMakeFiles/3.10.2/CMakeCXXCompiler.cmake" 13 | "CMakeFiles/3.10.2/CMakeSystem.cmake" 14 | "/usr/local/lib/cmake/opencv4/OpenCVConfig-version.cmake" 15 | "/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake" 16 | "/usr/local/lib/cmake/opencv4/OpenCVModules-release.cmake" 17 | "/usr/local/lib/cmake/opencv4/OpenCVModules.cmake" 18 | "/usr/share/cmake-3.10/Modules/CMakeCInformation.cmake" 19 | "/usr/share/cmake-3.10/Modules/CMakeCXXInformation.cmake" 20 | "/usr/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake" 21 | "/usr/share/cmake-3.10/Modules/CMakeGenericSystem.cmake" 22 | "/usr/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake" 23 | "/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake" 24 | "/usr/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake" 25 | "/usr/share/cmake-3.10/Modules/CheckIncludeFile.cmake" 26 | "/usr/share/cmake-3.10/Modules/CheckLibraryExists.cmake" 27 | "/usr/share/cmake-3.10/Modules/CheckSymbolExists.cmake" 28 | "/usr/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake" 29 | "/usr/share/cmake-3.10/Modules/Compiler/GNU-C.cmake" 30 | "/usr/share/cmake-3.10/Modules/Compiler/GNU-CXX.cmake" 31 | "/usr/share/cmake-3.10/Modules/Compiler/GNU.cmake" 32 | "/usr/share/cmake-3.10/Modules/FindCUDA.cmake" 33 | "/usr/share/cmake-3.10/Modules/FindCUDA/select_compute_arch.cmake" 34 | "/usr/share/cmake-3.10/Modules/FindGLUT.cmake" 35 | "/usr/share/cmake-3.10/Modules/FindOpenGL.cmake" 36 | "/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake" 37 | "/usr/share/cmake-3.10/Modules/FindPackageMessage.cmake" 38 | "/usr/share/cmake-3.10/Modules/FindThreads.cmake" 39 | "/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-C.cmake" 40 | "/usr/share/cmake-3.10/Modules/Platform/Linux-GNU-CXX.cmake" 41 | "/usr/share/cmake-3.10/Modules/Platform/Linux-GNU.cmake" 42 | "/usr/share/cmake-3.10/Modules/Platform/Linux.cmake" 43 | "/usr/share/cmake-3.10/Modules/Platform/UnixPaths.cmake" 44 | ) 45 | 46 | # The corresponding makefile is: 47 | set(CMAKE_MAKEFILE_OUTPUTS 48 | "Makefile" 49 | "CMakeFiles/cmake.check_cache" 50 | ) 51 | 52 | # Byproducts of CMake generate step: 53 | set(CMAKE_MAKEFILE_PRODUCTS 54 | "CMakeFiles/CMakeDirectoryInformation.cmake" 55 | ) 56 | 57 | # Dependency information for all targets: 58 | set(CMAKE_DEPEND_INFO_FILES 59 | "CMakeFiles/LineMatchingLib.dir/DependInfo.cmake" 60 | "CMakeFiles/lineMatching.dir/DependInfo.cmake" 61 | ) 62 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/Makefile2: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | 7 | .PHONY : default_target 8 | 9 | # The main recursive all target 10 | all: 11 | 12 | .PHONY : all 13 | 14 | # The main recursive preinstall target 15 | preinstall: 16 | 17 | .PHONY : preinstall 18 | 19 | #============================================================================= 20 | # Special targets provided by cmake. 21 | 22 | # Disable implicit rules so canonical targets will work. 23 | .SUFFIXES: 24 | 25 | 26 | # Remove some rules from gmake that .SUFFIXES does not remove. 27 | SUFFIXES = 28 | 29 | .SUFFIXES: .hpux_make_needs_suffix_list 30 | 31 | 32 | # Suppress display of executed commands. 33 | $(VERBOSE).SILENT: 34 | 35 | 36 | # A target that is always out of date. 37 | cmake_force: 38 | 39 | .PHONY : cmake_force 40 | 41 | #============================================================================= 42 | # Set environment variables for the build. 43 | 44 | # The shell in which to execute make rules. 45 | SHELL = /bin/sh 46 | 47 | # The CMake executable. 48 | CMAKE_COMMAND = /usr/bin/cmake 49 | 50 | # The command to remove a file. 51 | RM = /usr/bin/cmake -E remove -f 52 | 53 | # Escaping for special characters. 54 | EQUALS = = 55 | 56 | # The top-level source directory on which CMake was run. 57 | CMAKE_SOURCE_DIR = /home/scott/gitcode/Line/LineMatching 58 | 59 | # The top-level build directory on which CMake was run. 60 | CMAKE_BINARY_DIR = /home/scott/gitcode/Line/LineMatching/build 61 | 62 | #============================================================================= 63 | # Target rules for target CMakeFiles/LineMatchingLib.dir 64 | 65 | # All Build rule for target. 66 | CMakeFiles/LineMatchingLib.dir/all: 67 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/depend 68 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/build 69 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=1,2,3 "Built target LineMatchingLib" 70 | .PHONY : CMakeFiles/LineMatchingLib.dir/all 71 | 72 | # Include target in all. 73 | all: CMakeFiles/LineMatchingLib.dir/all 74 | 75 | .PHONY : all 76 | 77 | # Build rule for subdir invocation for target. 78 | CMakeFiles/LineMatchingLib.dir/rule: cmake_check_build_system 79 | $(CMAKE_COMMAND) -E cmake_progress_start /home/scott/gitcode/Line/LineMatching/build/CMakeFiles 3 80 | $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/LineMatchingLib.dir/all 81 | $(CMAKE_COMMAND) -E cmake_progress_start /home/scott/gitcode/Line/LineMatching/build/CMakeFiles 0 82 | .PHONY : CMakeFiles/LineMatchingLib.dir/rule 83 | 84 | # Convenience name for target. 85 | LineMatchingLib: CMakeFiles/LineMatchingLib.dir/rule 86 | 87 | .PHONY : LineMatchingLib 88 | 89 | # clean rule for target. 90 | CMakeFiles/LineMatchingLib.dir/clean: 91 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/clean 92 | .PHONY : CMakeFiles/LineMatchingLib.dir/clean 93 | 94 | # clean rule for target. 95 | clean: CMakeFiles/LineMatchingLib.dir/clean 96 | 97 | .PHONY : clean 98 | 99 | #============================================================================= 100 | # Target rules for target CMakeFiles/lineMatching.dir 101 | 102 | # All Build rule for target. 103 | CMakeFiles/lineMatching.dir/all: CMakeFiles/LineMatchingLib.dir/all 104 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/depend 105 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/build 106 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=4,5 "Built target lineMatching" 107 | .PHONY : CMakeFiles/lineMatching.dir/all 108 | 109 | # Include target in all. 110 | all: CMakeFiles/lineMatching.dir/all 111 | 112 | .PHONY : all 113 | 114 | # Build rule for subdir invocation for target. 115 | CMakeFiles/lineMatching.dir/rule: cmake_check_build_system 116 | $(CMAKE_COMMAND) -E cmake_progress_start /home/scott/gitcode/Line/LineMatching/build/CMakeFiles 5 117 | $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/lineMatching.dir/all 118 | $(CMAKE_COMMAND) -E cmake_progress_start /home/scott/gitcode/Line/LineMatching/build/CMakeFiles 0 119 | .PHONY : CMakeFiles/lineMatching.dir/rule 120 | 121 | # Convenience name for target. 122 | lineMatching: CMakeFiles/lineMatching.dir/rule 123 | 124 | .PHONY : lineMatching 125 | 126 | # clean rule for target. 127 | CMakeFiles/lineMatching.dir/clean: 128 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/clean 129 | .PHONY : CMakeFiles/lineMatching.dir/clean 130 | 131 | # clean rule for target. 132 | clean: CMakeFiles/lineMatching.dir/clean 133 | 134 | .PHONY : clean 135 | 136 | #============================================================================= 137 | # Special targets to cleanup operation of make. 138 | 139 | # Special rule to run CMake to check the build system integrity. 140 | # No rule that depends on this can have commands that come from listfiles 141 | # because they might be regenerated. 142 | cmake_check_build_system: 143 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 144 | .PHONY : cmake_check_build_system 145 | 146 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/TargetDirectories.txt: -------------------------------------------------------------------------------- 1 | /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/edit_cache.dir 2 | /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/rebuild_cache.dir 3 | /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/LineMatchingLib.dir 4 | /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/lineMatching.dir 5 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/cmake.check_cache: -------------------------------------------------------------------------------- 1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file 2 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/feature_tests.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/feature_tests.bin -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/feature_tests.c: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "C_FEATURE:" 4 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "c_function_prototypes\n" 10 | "C_FEATURE:" 11 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "c_restrict\n" 17 | "C_FEATURE:" 18 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "c_static_assert\n" 24 | "C_FEATURE:" 25 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "c_variadic_macros\n" 31 | 32 | }; 33 | 34 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 35 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/feature_tests.cxx: -------------------------------------------------------------------------------- 1 | 2 | const char features[] = {"\n" 3 | "CXX_FEATURE:" 4 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 5 | "1" 6 | #else 7 | "0" 8 | #endif 9 | "cxx_aggregate_default_initializers\n" 10 | "CXX_FEATURE:" 11 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 12 | "1" 13 | #else 14 | "0" 15 | #endif 16 | "cxx_alias_templates\n" 17 | "CXX_FEATURE:" 18 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 19 | "1" 20 | #else 21 | "0" 22 | #endif 23 | "cxx_alignas\n" 24 | "CXX_FEATURE:" 25 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 26 | "1" 27 | #else 28 | "0" 29 | #endif 30 | "cxx_alignof\n" 31 | "CXX_FEATURE:" 32 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 33 | "1" 34 | #else 35 | "0" 36 | #endif 37 | "cxx_attributes\n" 38 | "CXX_FEATURE:" 39 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 40 | "1" 41 | #else 42 | "0" 43 | #endif 44 | "cxx_attribute_deprecated\n" 45 | "CXX_FEATURE:" 46 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 47 | "1" 48 | #else 49 | "0" 50 | #endif 51 | "cxx_auto_type\n" 52 | "CXX_FEATURE:" 53 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 54 | "1" 55 | #else 56 | "0" 57 | #endif 58 | "cxx_binary_literals\n" 59 | "CXX_FEATURE:" 60 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 61 | "1" 62 | #else 63 | "0" 64 | #endif 65 | "cxx_constexpr\n" 66 | "CXX_FEATURE:" 67 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 68 | "1" 69 | #else 70 | "0" 71 | #endif 72 | "cxx_contextual_conversions\n" 73 | "CXX_FEATURE:" 74 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 75 | "1" 76 | #else 77 | "0" 78 | #endif 79 | "cxx_decltype\n" 80 | "CXX_FEATURE:" 81 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 82 | "1" 83 | #else 84 | "0" 85 | #endif 86 | "cxx_decltype_auto\n" 87 | "CXX_FEATURE:" 88 | #if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L 89 | "1" 90 | #else 91 | "0" 92 | #endif 93 | "cxx_decltype_incomplete_return_types\n" 94 | "CXX_FEATURE:" 95 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 96 | "1" 97 | #else 98 | "0" 99 | #endif 100 | "cxx_default_function_template_args\n" 101 | "CXX_FEATURE:" 102 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 103 | "1" 104 | #else 105 | "0" 106 | #endif 107 | "cxx_defaulted_functions\n" 108 | "CXX_FEATURE:" 109 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 110 | "1" 111 | #else 112 | "0" 113 | #endif 114 | "cxx_defaulted_move_initializers\n" 115 | "CXX_FEATURE:" 116 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 117 | "1" 118 | #else 119 | "0" 120 | #endif 121 | "cxx_delegating_constructors\n" 122 | "CXX_FEATURE:" 123 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 124 | "1" 125 | #else 126 | "0" 127 | #endif 128 | "cxx_deleted_functions\n" 129 | "CXX_FEATURE:" 130 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 131 | "1" 132 | #else 133 | "0" 134 | #endif 135 | "cxx_digit_separators\n" 136 | "CXX_FEATURE:" 137 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 138 | "1" 139 | #else 140 | "0" 141 | #endif 142 | "cxx_enum_forward_declarations\n" 143 | "CXX_FEATURE:" 144 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 145 | "1" 146 | #else 147 | "0" 148 | #endif 149 | "cxx_explicit_conversions\n" 150 | "CXX_FEATURE:" 151 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 152 | "1" 153 | #else 154 | "0" 155 | #endif 156 | "cxx_extended_friend_declarations\n" 157 | "CXX_FEATURE:" 158 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 159 | "1" 160 | #else 161 | "0" 162 | #endif 163 | "cxx_extern_templates\n" 164 | "CXX_FEATURE:" 165 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 166 | "1" 167 | #else 168 | "0" 169 | #endif 170 | "cxx_final\n" 171 | "CXX_FEATURE:" 172 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 173 | "1" 174 | #else 175 | "0" 176 | #endif 177 | "cxx_func_identifier\n" 178 | "CXX_FEATURE:" 179 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 180 | "1" 181 | #else 182 | "0" 183 | #endif 184 | "cxx_generalized_initializers\n" 185 | "CXX_FEATURE:" 186 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 187 | "1" 188 | #else 189 | "0" 190 | #endif 191 | "cxx_generic_lambdas\n" 192 | "CXX_FEATURE:" 193 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 194 | "1" 195 | #else 196 | "0" 197 | #endif 198 | "cxx_inheriting_constructors\n" 199 | "CXX_FEATURE:" 200 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 201 | "1" 202 | #else 203 | "0" 204 | #endif 205 | "cxx_inline_namespaces\n" 206 | "CXX_FEATURE:" 207 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 208 | "1" 209 | #else 210 | "0" 211 | #endif 212 | "cxx_lambdas\n" 213 | "CXX_FEATURE:" 214 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 215 | "1" 216 | #else 217 | "0" 218 | #endif 219 | "cxx_lambda_init_captures\n" 220 | "CXX_FEATURE:" 221 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 222 | "1" 223 | #else 224 | "0" 225 | #endif 226 | "cxx_local_type_template_args\n" 227 | "CXX_FEATURE:" 228 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 229 | "1" 230 | #else 231 | "0" 232 | #endif 233 | "cxx_long_long_type\n" 234 | "CXX_FEATURE:" 235 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 236 | "1" 237 | #else 238 | "0" 239 | #endif 240 | "cxx_noexcept\n" 241 | "CXX_FEATURE:" 242 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 243 | "1" 244 | #else 245 | "0" 246 | #endif 247 | "cxx_nonstatic_member_init\n" 248 | "CXX_FEATURE:" 249 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 250 | "1" 251 | #else 252 | "0" 253 | #endif 254 | "cxx_nullptr\n" 255 | "CXX_FEATURE:" 256 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 257 | "1" 258 | #else 259 | "0" 260 | #endif 261 | "cxx_override\n" 262 | "CXX_FEATURE:" 263 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 264 | "1" 265 | #else 266 | "0" 267 | #endif 268 | "cxx_range_for\n" 269 | "CXX_FEATURE:" 270 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 271 | "1" 272 | #else 273 | "0" 274 | #endif 275 | "cxx_raw_string_literals\n" 276 | "CXX_FEATURE:" 277 | #if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L 278 | "1" 279 | #else 280 | "0" 281 | #endif 282 | "cxx_reference_qualified_functions\n" 283 | "CXX_FEATURE:" 284 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 285 | "1" 286 | #else 287 | "0" 288 | #endif 289 | "cxx_relaxed_constexpr\n" 290 | "CXX_FEATURE:" 291 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L 292 | "1" 293 | #else 294 | "0" 295 | #endif 296 | "cxx_return_type_deduction\n" 297 | "CXX_FEATURE:" 298 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 299 | "1" 300 | #else 301 | "0" 302 | #endif 303 | "cxx_right_angle_brackets\n" 304 | "CXX_FEATURE:" 305 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 306 | "1" 307 | #else 308 | "0" 309 | #endif 310 | "cxx_rvalue_references\n" 311 | "CXX_FEATURE:" 312 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 313 | "1" 314 | #else 315 | "0" 316 | #endif 317 | "cxx_sizeof_member\n" 318 | "CXX_FEATURE:" 319 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 320 | "1" 321 | #else 322 | "0" 323 | #endif 324 | "cxx_static_assert\n" 325 | "CXX_FEATURE:" 326 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 327 | "1" 328 | #else 329 | "0" 330 | #endif 331 | "cxx_strong_enums\n" 332 | "CXX_FEATURE:" 333 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus 334 | "1" 335 | #else 336 | "0" 337 | #endif 338 | "cxx_template_template_parameters\n" 339 | "CXX_FEATURE:" 340 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L 341 | "1" 342 | #else 343 | "0" 344 | #endif 345 | "cxx_thread_local\n" 346 | "CXX_FEATURE:" 347 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 348 | "1" 349 | #else 350 | "0" 351 | #endif 352 | "cxx_trailing_return_types\n" 353 | "CXX_FEATURE:" 354 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 355 | "1" 356 | #else 357 | "0" 358 | #endif 359 | "cxx_unicode_literals\n" 360 | "CXX_FEATURE:" 361 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 362 | "1" 363 | #else 364 | "0" 365 | #endif 366 | "cxx_uniform_initialization\n" 367 | "CXX_FEATURE:" 368 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 369 | "1" 370 | #else 371 | "0" 372 | #endif 373 | "cxx_unrestricted_unions\n" 374 | "CXX_FEATURE:" 375 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L 376 | "1" 377 | #else 378 | "0" 379 | #endif 380 | "cxx_user_literals\n" 381 | "CXX_FEATURE:" 382 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L 383 | "1" 384 | #else 385 | "0" 386 | #endif 387 | "cxx_variable_templates\n" 388 | "CXX_FEATURE:" 389 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 390 | "1" 391 | #else 392 | "0" 393 | #endif 394 | "cxx_variadic_macros\n" 395 | "CXX_FEATURE:" 396 | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) 397 | "1" 398 | #else 399 | "0" 400 | #endif 401 | "cxx_variadic_templates\n" 402 | 403 | }; 404 | 405 | int main(int argc, char** argv) { (void)argv; return features[argc]; } 406 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/DependInfo.cmake: -------------------------------------------------------------------------------- 1 | # The set of languages for which implicit dependencies are needed: 2 | set(CMAKE_DEPENDS_LANGUAGES 3 | "CXX" 4 | ) 5 | # The set of files for implicit dependencies of each language: 6 | set(CMAKE_DEPENDS_CHECK_CXX 7 | "/home/scott/gitcode/Line/LineMatching/Main.cpp" "/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/lineMatching.dir/Main.cpp.o" 8 | ) 9 | set(CMAKE_CXX_COMPILER_ID "GNU") 10 | 11 | # The include file search paths: 12 | set(CMAKE_CXX_TARGET_INCLUDE_PATH 13 | "/usr/local/include/opencv4" 14 | "/include" 15 | "../library" 16 | "/usr/include/arpack++" 17 | "/usr/local/include/opencv" 18 | ) 19 | 20 | # Targets to which this target links. 21 | set(CMAKE_TARGET_LINKED_INFO_FILES 22 | "/home/scott/gitcode/Line/LineMatching/build/CMakeFiles/LineMatchingLib.dir/DependInfo.cmake" 23 | ) 24 | 25 | # Fortran module output directory. 26 | set(CMAKE_Fortran_TARGET_MODULE_DIR "") 27 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/Main.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/CMakeFiles/lineMatching.dir/Main.cpp.o -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/build.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # Delete rule output on recipe failure. 5 | .DELETE_ON_ERROR: 6 | 7 | 8 | #============================================================================= 9 | # Special targets provided by cmake. 10 | 11 | # Disable implicit rules so canonical targets will work. 12 | .SUFFIXES: 13 | 14 | 15 | # Remove some rules from gmake that .SUFFIXES does not remove. 16 | SUFFIXES = 17 | 18 | .SUFFIXES: .hpux_make_needs_suffix_list 19 | 20 | 21 | # Suppress display of executed commands. 22 | $(VERBOSE).SILENT: 23 | 24 | 25 | # A target that is always out of date. 26 | cmake_force: 27 | 28 | .PHONY : cmake_force 29 | 30 | #============================================================================= 31 | # Set environment variables for the build. 32 | 33 | # The shell in which to execute make rules. 34 | SHELL = /bin/sh 35 | 36 | # The CMake executable. 37 | CMAKE_COMMAND = /usr/bin/cmake 38 | 39 | # The command to remove a file. 40 | RM = /usr/bin/cmake -E remove -f 41 | 42 | # Escaping for special characters. 43 | EQUALS = = 44 | 45 | # The top-level source directory on which CMake was run. 46 | CMAKE_SOURCE_DIR = /home/scott/gitcode/Line/LineMatching 47 | 48 | # The top-level build directory on which CMake was run. 49 | CMAKE_BINARY_DIR = /home/scott/gitcode/Line/LineMatching/build 50 | 51 | # Include any dependencies generated for this target. 52 | include CMakeFiles/lineMatching.dir/depend.make 53 | 54 | # Include the progress variables for this target. 55 | include CMakeFiles/lineMatching.dir/progress.make 56 | 57 | # Include the compile flags for this target's objects. 58 | include CMakeFiles/lineMatching.dir/flags.make 59 | 60 | CMakeFiles/lineMatching.dir/Main.cpp.o: CMakeFiles/lineMatching.dir/flags.make 61 | CMakeFiles/lineMatching.dir/Main.cpp.o: ../Main.cpp 62 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/lineMatching.dir/Main.cpp.o" 63 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/lineMatching.dir/Main.cpp.o -c /home/scott/gitcode/Line/LineMatching/Main.cpp 64 | 65 | CMakeFiles/lineMatching.dir/Main.cpp.i: cmake_force 66 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/lineMatching.dir/Main.cpp.i" 67 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/scott/gitcode/Line/LineMatching/Main.cpp > CMakeFiles/lineMatching.dir/Main.cpp.i 68 | 69 | CMakeFiles/lineMatching.dir/Main.cpp.s: cmake_force 70 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/lineMatching.dir/Main.cpp.s" 71 | /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/scott/gitcode/Line/LineMatching/Main.cpp -o CMakeFiles/lineMatching.dir/Main.cpp.s 72 | 73 | CMakeFiles/lineMatching.dir/Main.cpp.o.requires: 74 | 75 | .PHONY : CMakeFiles/lineMatching.dir/Main.cpp.o.requires 76 | 77 | CMakeFiles/lineMatching.dir/Main.cpp.o.provides: CMakeFiles/lineMatching.dir/Main.cpp.o.requires 78 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/Main.cpp.o.provides.build 79 | .PHONY : CMakeFiles/lineMatching.dir/Main.cpp.o.provides 80 | 81 | CMakeFiles/lineMatching.dir/Main.cpp.o.provides.build: CMakeFiles/lineMatching.dir/Main.cpp.o 82 | 83 | 84 | # Object files for target lineMatching 85 | lineMatching_OBJECTS = \ 86 | "CMakeFiles/lineMatching.dir/Main.cpp.o" 87 | 88 | # External object files for target lineMatching 89 | lineMatching_EXTERNAL_OBJECTS = 90 | 91 | lineMatching: CMakeFiles/lineMatching.dir/Main.cpp.o 92 | lineMatching: CMakeFiles/lineMatching.dir/build.make 93 | lineMatching: libLineMatchingLib.so 94 | lineMatching: /usr/local/lib/libopencv_aruco.so.4.0.0 95 | lineMatching: /usr/local/lib/libopencv_bgsegm.so.4.0.0 96 | lineMatching: /usr/local/lib/libopencv_bioinspired.so.4.0.0 97 | lineMatching: /usr/local/lib/libopencv_ccalib.so.4.0.0 98 | lineMatching: /usr/local/lib/libopencv_cudabgsegm.so.4.0.0 99 | lineMatching: /usr/local/lib/libopencv_cudaobjdetect.so.4.0.0 100 | lineMatching: /usr/local/lib/libopencv_cudastereo.so.4.0.0 101 | lineMatching: /usr/local/lib/libopencv_dnn_objdetect.so.4.0.0 102 | lineMatching: /usr/local/lib/libopencv_dpm.so.4.0.0 103 | lineMatching: /usr/local/lib/libopencv_face.so.4.0.0 104 | lineMatching: /usr/local/lib/libopencv_freetype.so.4.0.0 105 | lineMatching: /usr/local/lib/libopencv_fuzzy.so.4.0.0 106 | lineMatching: /usr/local/lib/libopencv_gapi.so.4.0.0 107 | lineMatching: /usr/local/lib/libopencv_hdf.so.4.0.0 108 | lineMatching: /usr/local/lib/libopencv_hfs.so.4.0.0 109 | lineMatching: /usr/local/lib/libopencv_img_hash.so.4.0.0 110 | lineMatching: /usr/local/lib/libopencv_line_descriptor.so.4.0.0 111 | lineMatching: /usr/local/lib/libopencv_optflow.so.4.0.0 112 | lineMatching: /usr/local/lib/libopencv_reg.so.4.0.0 113 | lineMatching: /usr/local/lib/libopencv_rgbd.so.4.0.0 114 | lineMatching: /usr/local/lib/libopencv_saliency.so.4.0.0 115 | lineMatching: /usr/local/lib/libopencv_sfm.so.4.0.0 116 | lineMatching: /usr/local/lib/libopencv_stereo.so.4.0.0 117 | lineMatching: /usr/local/lib/libopencv_stitching.so.4.0.0 118 | lineMatching: /usr/local/lib/libopencv_structured_light.so.4.0.0 119 | lineMatching: /usr/local/lib/libopencv_superres.so.4.0.0 120 | lineMatching: /usr/local/lib/libopencv_surface_matching.so.4.0.0 121 | lineMatching: /usr/local/lib/libopencv_tracking.so.4.0.0 122 | lineMatching: /usr/local/lib/libopencv_videostab.so.4.0.0 123 | lineMatching: /usr/local/lib/libopencv_viz.so.4.0.0 124 | lineMatching: /usr/local/lib/libopencv_xfeatures2d.so.4.0.0 125 | lineMatching: /usr/local/lib/libopencv_ximgproc.so.4.0.0 126 | lineMatching: /usr/local/lib/libopencv_xobjdetect.so.4.0.0 127 | lineMatching: /usr/local/lib/libopencv_xphoto.so.4.0.0 128 | lineMatching: /usr/lib/x86_64-linux-gnu/libGL.so 129 | lineMatching: /usr/lib/x86_64-linux-gnu/libGLU.so 130 | lineMatching: /usr/lib/x86_64-linux-gnu/libglut.so 131 | lineMatching: /usr/local/lib/libopencv_cudafeatures2d.so.4.0.0 132 | lineMatching: /usr/local/lib/libopencv_phase_unwrapping.so.4.0.0 133 | lineMatching: /usr/local/lib/libopencv_datasets.so.4.0.0 134 | lineMatching: /usr/local/lib/libopencv_plot.so.4.0.0 135 | lineMatching: /usr/local/lib/libopencv_text.so.4.0.0 136 | lineMatching: /usr/local/lib/libopencv_dnn.so.4.0.0 137 | lineMatching: /usr/local/lib/libopencv_cudaoptflow.so.4.0.0 138 | lineMatching: /usr/local/lib/libopencv_cudalegacy.so.4.0.0 139 | lineMatching: /usr/local/lib/libopencv_cudawarping.so.4.0.0 140 | lineMatching: /usr/local/lib/libopencv_photo.so.4.0.0 141 | lineMatching: /usr/local/lib/libopencv_cudaimgproc.so.4.0.0 142 | lineMatching: /usr/local/lib/libopencv_cudafilters.so.4.0.0 143 | lineMatching: /usr/local/lib/libopencv_video.so.4.0.0 144 | lineMatching: /usr/local/lib/libopencv_cudaarithm.so.4.0.0 145 | lineMatching: /usr/local/lib/libopencv_ml.so.4.0.0 146 | lineMatching: /usr/local/lib/libopencv_shape.so.4.0.0 147 | lineMatching: /usr/local/lib/libopencv_objdetect.so.4.0.0 148 | lineMatching: /usr/local/lib/libopencv_calib3d.so.4.0.0 149 | lineMatching: /usr/local/lib/libopencv_features2d.so.4.0.0 150 | lineMatching: /usr/local/lib/libopencv_flann.so.4.0.0 151 | lineMatching: /usr/local/lib/libopencv_highgui.so.4.0.0 152 | lineMatching: /usr/local/lib/libopencv_videoio.so.4.0.0 153 | lineMatching: /usr/local/lib/libopencv_imgcodecs.so.4.0.0 154 | lineMatching: /usr/local/lib/libopencv_imgproc.so.4.0.0 155 | lineMatching: /usr/local/lib/libopencv_core.so.4.0.0 156 | lineMatching: /usr/local/lib/libopencv_cudev.so.4.0.0 157 | lineMatching: /usr/lib/x86_64-linux-gnu/libsuperlu.so 158 | lineMatching: CMakeFiles/lineMatching.dir/link.txt 159 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/scott/gitcode/Line/LineMatching/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable lineMatching" 160 | $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/lineMatching.dir/link.txt --verbose=$(VERBOSE) 161 | 162 | # Rule to build all files generated by this target. 163 | CMakeFiles/lineMatching.dir/build: lineMatching 164 | 165 | .PHONY : CMakeFiles/lineMatching.dir/build 166 | 167 | CMakeFiles/lineMatching.dir/requires: CMakeFiles/lineMatching.dir/Main.cpp.o.requires 168 | 169 | .PHONY : CMakeFiles/lineMatching.dir/requires 170 | 171 | CMakeFiles/lineMatching.dir/clean: 172 | $(CMAKE_COMMAND) -P CMakeFiles/lineMatching.dir/cmake_clean.cmake 173 | .PHONY : CMakeFiles/lineMatching.dir/clean 174 | 175 | CMakeFiles/lineMatching.dir/depend: 176 | cd /home/scott/gitcode/Line/LineMatching/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/scott/gitcode/Line/LineMatching /home/scott/gitcode/Line/LineMatching /home/scott/gitcode/Line/LineMatching/build /home/scott/gitcode/Line/LineMatching/build /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/lineMatching.dir/DependInfo.cmake --color=$(COLOR) 177 | .PHONY : CMakeFiles/lineMatching.dir/depend 178 | 179 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/cmake_clean.cmake: -------------------------------------------------------------------------------- 1 | file(REMOVE_RECURSE 2 | "CMakeFiles/lineMatching.dir/Main.cpp.o" 3 | "lineMatching.pdb" 4 | "lineMatching" 5 | ) 6 | 7 | # Per-language clean rules from dependency scanning. 8 | foreach(lang CXX) 9 | include(CMakeFiles/lineMatching.dir/cmake_clean_${lang}.cmake OPTIONAL) 10 | endforeach() 11 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/depend.internal: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | CMakeFiles/lineMatching.dir/Main.cpp.o 5 | /home/scott/gitcode/Line/LineMatching/Main.cpp 6 | /home/scott/gitcode/Line/LineMatching/linedetector.h 7 | /home/scott/gitcode/Line/LineMatching/system.h 8 | /usr/include/arpack++/arch.h 9 | /usr/include/arpack++/arcomp.h 10 | /usr/include/arpack++/arerror.h 11 | /usr/include/arpack++/arhbmat.h 12 | /usr/include/arpack++/arlcomp.h 13 | /usr/include/arpack++/arlnames.h 14 | /usr/include/arpack++/arlsmat.h 15 | /usr/include/arpack++/arlspdef.h 16 | /usr/include/arpack++/arlspen.h 17 | /usr/include/arpack++/arlssym.h 18 | /usr/include/arpack++/arlsupm.h 19 | /usr/include/arpack++/arlutil.h 20 | /usr/include/arpack++/armat.h 21 | /usr/include/arpack++/arpackf.h 22 | /usr/include/arpack++/arrseig.h 23 | /usr/include/arpack++/arrssym.h 24 | /usr/include/arpack++/arseig.h 25 | /usr/include/arpack++/arssym.h 26 | /usr/include/arpack++/blas1c.h 27 | /usr/include/arpack++/blas1f.h 28 | /usr/include/arpack++/debug.h 29 | /usr/include/arpack++/saupp.h 30 | /usr/include/arpack++/seupp.h 31 | /usr/include/arpack++/superluc.h 32 | /usr/local/include/opencv4/opencv2/calib3d.hpp 33 | /usr/local/include/opencv4/opencv2/core.hpp 34 | /usr/local/include/opencv4/opencv2/core/affine.hpp 35 | /usr/local/include/opencv4/opencv2/core/base.hpp 36 | /usr/local/include/opencv4/opencv2/core/bufferpool.hpp 37 | /usr/local/include/opencv4/opencv2/core/check.hpp 38 | /usr/local/include/opencv4/opencv2/core/cuda.hpp 39 | /usr/local/include/opencv4/opencv2/core/cuda.inl.hpp 40 | /usr/local/include/opencv4/opencv2/core/cuda_types.hpp 41 | /usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h 42 | /usr/local/include/opencv4/opencv2/core/cv_cpu_helper.h 43 | /usr/local/include/opencv4/opencv2/core/cvdef.h 44 | /usr/local/include/opencv4/opencv2/core/cvstd.hpp 45 | /usr/local/include/opencv4/opencv2/core/cvstd.inl.hpp 46 | /usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp 47 | /usr/local/include/opencv4/opencv2/core/fast_math.hpp 48 | /usr/local/include/opencv4/opencv2/core/hal/interface.h 49 | /usr/local/include/opencv4/opencv2/core/mat.hpp 50 | /usr/local/include/opencv4/opencv2/core/mat.inl.hpp 51 | /usr/local/include/opencv4/opencv2/core/matx.hpp 52 | /usr/local/include/opencv4/opencv2/core/neon_utils.hpp 53 | /usr/local/include/opencv4/opencv2/core/operations.hpp 54 | /usr/local/include/opencv4/opencv2/core/optim.hpp 55 | /usr/local/include/opencv4/opencv2/core/ovx.hpp 56 | /usr/local/include/opencv4/opencv2/core/persistence.hpp 57 | /usr/local/include/opencv4/opencv2/core/saturate.hpp 58 | /usr/local/include/opencv4/opencv2/core/traits.hpp 59 | /usr/local/include/opencv4/opencv2/core/types.hpp 60 | /usr/local/include/opencv4/opencv2/core/utility.hpp 61 | /usr/local/include/opencv4/opencv2/core/version.hpp 62 | /usr/local/include/opencv4/opencv2/core/vsx_utils.hpp 63 | /usr/local/include/opencv4/opencv2/cudaarithm.hpp 64 | /usr/local/include/opencv4/opencv2/cudabgsegm.hpp 65 | /usr/local/include/opencv4/opencv2/cudafeatures2d.hpp 66 | /usr/local/include/opencv4/opencv2/cudafilters.hpp 67 | /usr/local/include/opencv4/opencv2/cudaimgproc.hpp 68 | /usr/local/include/opencv4/opencv2/cudaobjdetect.hpp 69 | /usr/local/include/opencv4/opencv2/cudaoptflow.hpp 70 | /usr/local/include/opencv4/opencv2/cudastereo.hpp 71 | /usr/local/include/opencv4/opencv2/cudawarping.hpp 72 | /usr/local/include/opencv4/opencv2/dnn.hpp 73 | /usr/local/include/opencv4/opencv2/dnn/dict.hpp 74 | /usr/local/include/opencv4/opencv2/dnn/dnn.hpp 75 | /usr/local/include/opencv4/opencv2/dnn/dnn.inl.hpp 76 | /usr/local/include/opencv4/opencv2/dnn/layer.hpp 77 | /usr/local/include/opencv4/opencv2/dnn/version.hpp 78 | /usr/local/include/opencv4/opencv2/features2d.hpp 79 | /usr/local/include/opencv4/opencv2/flann.hpp 80 | /usr/local/include/opencv4/opencv2/flann/all_indices.h 81 | /usr/local/include/opencv4/opencv2/flann/allocator.h 82 | /usr/local/include/opencv4/opencv2/flann/any.h 83 | /usr/local/include/opencv4/opencv2/flann/autotuned_index.h 84 | /usr/local/include/opencv4/opencv2/flann/composite_index.h 85 | /usr/local/include/opencv4/opencv2/flann/config.h 86 | /usr/local/include/opencv4/opencv2/flann/defines.h 87 | /usr/local/include/opencv4/opencv2/flann/dist.h 88 | /usr/local/include/opencv4/opencv2/flann/dynamic_bitset.h 89 | /usr/local/include/opencv4/opencv2/flann/flann_base.hpp 90 | /usr/local/include/opencv4/opencv2/flann/general.h 91 | /usr/local/include/opencv4/opencv2/flann/ground_truth.h 92 | /usr/local/include/opencv4/opencv2/flann/heap.h 93 | /usr/local/include/opencv4/opencv2/flann/hierarchical_clustering_index.h 94 | /usr/local/include/opencv4/opencv2/flann/index_testing.h 95 | /usr/local/include/opencv4/opencv2/flann/kdtree_index.h 96 | /usr/local/include/opencv4/opencv2/flann/kdtree_single_index.h 97 | /usr/local/include/opencv4/opencv2/flann/kmeans_index.h 98 | /usr/local/include/opencv4/opencv2/flann/linear_index.h 99 | /usr/local/include/opencv4/opencv2/flann/logger.h 100 | /usr/local/include/opencv4/opencv2/flann/lsh_index.h 101 | /usr/local/include/opencv4/opencv2/flann/lsh_table.h 102 | /usr/local/include/opencv4/opencv2/flann/matrix.h 103 | /usr/local/include/opencv4/opencv2/flann/miniflann.hpp 104 | /usr/local/include/opencv4/opencv2/flann/nn_index.h 105 | /usr/local/include/opencv4/opencv2/flann/params.h 106 | /usr/local/include/opencv4/opencv2/flann/random.h 107 | /usr/local/include/opencv4/opencv2/flann/result_set.h 108 | /usr/local/include/opencv4/opencv2/flann/sampling.h 109 | /usr/local/include/opencv4/opencv2/flann/saving.h 110 | /usr/local/include/opencv4/opencv2/flann/timer.h 111 | /usr/local/include/opencv4/opencv2/highgui.hpp 112 | /usr/local/include/opencv4/opencv2/imgcodecs.hpp 113 | /usr/local/include/opencv4/opencv2/imgproc.hpp 114 | /usr/local/include/opencv4/opencv2/ml.hpp 115 | /usr/local/include/opencv4/opencv2/ml/ml.inl.hpp 116 | /usr/local/include/opencv4/opencv2/objdetect.hpp 117 | /usr/local/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp 118 | /usr/local/include/opencv4/opencv2/opencv.hpp 119 | /usr/local/include/opencv4/opencv2/opencv_modules.hpp 120 | /usr/local/include/opencv4/opencv2/photo.hpp 121 | /usr/local/include/opencv4/opencv2/shape.hpp 122 | /usr/local/include/opencv4/opencv2/shape/emdL1.hpp 123 | /usr/local/include/opencv4/opencv2/shape/hist_cost.hpp 124 | /usr/local/include/opencv4/opencv2/shape/shape_distance.hpp 125 | /usr/local/include/opencv4/opencv2/shape/shape_transformer.hpp 126 | /usr/local/include/opencv4/opencv2/stitching.hpp 127 | /usr/local/include/opencv4/opencv2/stitching/detail/blenders.hpp 128 | /usr/local/include/opencv4/opencv2/stitching/detail/camera.hpp 129 | /usr/local/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp 130 | /usr/local/include/opencv4/opencv2/stitching/detail/matchers.hpp 131 | /usr/local/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp 132 | /usr/local/include/opencv4/opencv2/stitching/detail/seam_finders.hpp 133 | /usr/local/include/opencv4/opencv2/stitching/detail/util.hpp 134 | /usr/local/include/opencv4/opencv2/stitching/detail/util_inl.hpp 135 | /usr/local/include/opencv4/opencv2/stitching/detail/warpers.hpp 136 | /usr/local/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp 137 | /usr/local/include/opencv4/opencv2/stitching/warpers.hpp 138 | /usr/local/include/opencv4/opencv2/superres.hpp 139 | /usr/local/include/opencv4/opencv2/superres/optical_flow.hpp 140 | /usr/local/include/opencv4/opencv2/video.hpp 141 | /usr/local/include/opencv4/opencv2/video/background_segm.hpp 142 | /usr/local/include/opencv4/opencv2/video/tracking.hpp 143 | /usr/local/include/opencv4/opencv2/videoio.hpp 144 | /usr/local/include/opencv4/opencv2/videostab.hpp 145 | /usr/local/include/opencv4/opencv2/videostab/deblurring.hpp 146 | /usr/local/include/opencv4/opencv2/videostab/fast_marching.hpp 147 | /usr/local/include/opencv4/opencv2/videostab/fast_marching_inl.hpp 148 | /usr/local/include/opencv4/opencv2/videostab/frame_source.hpp 149 | /usr/local/include/opencv4/opencv2/videostab/global_motion.hpp 150 | /usr/local/include/opencv4/opencv2/videostab/inpainting.hpp 151 | /usr/local/include/opencv4/opencv2/videostab/log.hpp 152 | /usr/local/include/opencv4/opencv2/videostab/motion_core.hpp 153 | /usr/local/include/opencv4/opencv2/videostab/motion_stabilizing.hpp 154 | /usr/local/include/opencv4/opencv2/videostab/optical_flow.hpp 155 | /usr/local/include/opencv4/opencv2/videostab/outlier_rejection.hpp 156 | /usr/local/include/opencv4/opencv2/videostab/ring_buffer.hpp 157 | /usr/local/include/opencv4/opencv2/videostab/stabilizer.hpp 158 | /usr/local/include/opencv4/opencv2/videostab/wobble_suppression.hpp 159 | /usr/local/include/opencv4/opencv2/viz.hpp 160 | /usr/local/include/opencv4/opencv2/viz/types.hpp 161 | /usr/local/include/opencv4/opencv2/viz/viz3d.hpp 162 | /usr/local/include/opencv4/opencv2/viz/vizcore.hpp 163 | /usr/local/include/opencv4/opencv2/viz/widgets.hpp 164 | /usr/local/include/opencv4/opencv2/xfeatures2d/cuda.hpp 165 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/depend.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | CMakeFiles/lineMatching.dir/Main.cpp.o: ../Main.cpp 5 | CMakeFiles/lineMatching.dir/Main.cpp.o: ../linedetector.h 6 | CMakeFiles/lineMatching.dir/Main.cpp.o: ../system.h 7 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arch.h 8 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arcomp.h 9 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arerror.h 10 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arhbmat.h 11 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlcomp.h 12 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlnames.h 13 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlsmat.h 14 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlspdef.h 15 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlspen.h 16 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlssym.h 17 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlsupm.h 18 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arlutil.h 19 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/armat.h 20 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arpackf.h 21 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arrseig.h 22 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arrssym.h 23 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arseig.h 24 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/arssym.h 25 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/blas1c.h 26 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/blas1f.h 27 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/debug.h 28 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/saupp.h 29 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/seupp.h 30 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/include/arpack++/superluc.h 31 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/calib3d.hpp 32 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core.hpp 33 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/affine.hpp 34 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/base.hpp 35 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/bufferpool.hpp 36 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/check.hpp 37 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cuda.hpp 38 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cuda.inl.hpp 39 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cuda_types.hpp 40 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cv_cpu_dispatch.h 41 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cv_cpu_helper.h 42 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvdef.h 43 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvstd.hpp 44 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvstd.inl.hpp 45 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/cvstd_wrapper.hpp 46 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/fast_math.hpp 47 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/hal/interface.h 48 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/mat.hpp 49 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/mat.inl.hpp 50 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/matx.hpp 51 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/neon_utils.hpp 52 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/operations.hpp 53 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/optim.hpp 54 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/ovx.hpp 55 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/persistence.hpp 56 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/saturate.hpp 57 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/traits.hpp 58 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/types.hpp 59 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/utility.hpp 60 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/version.hpp 61 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/core/vsx_utils.hpp 62 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudaarithm.hpp 63 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudabgsegm.hpp 64 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudafeatures2d.hpp 65 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudafilters.hpp 66 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudaimgproc.hpp 67 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudaobjdetect.hpp 68 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudaoptflow.hpp 69 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudastereo.hpp 70 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/cudawarping.hpp 71 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/dnn.hpp 72 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/dict.hpp 73 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/dnn.hpp 74 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/dnn.inl.hpp 75 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/layer.hpp 76 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/dnn/version.hpp 77 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/features2d.hpp 78 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann.hpp 79 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/all_indices.h 80 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/allocator.h 81 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/any.h 82 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/autotuned_index.h 83 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/composite_index.h 84 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/config.h 85 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/defines.h 86 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/dist.h 87 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/dynamic_bitset.h 88 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/flann_base.hpp 89 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/general.h 90 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/ground_truth.h 91 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/heap.h 92 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/hierarchical_clustering_index.h 93 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/index_testing.h 94 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/kdtree_index.h 95 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/kdtree_single_index.h 96 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/kmeans_index.h 97 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/linear_index.h 98 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/logger.h 99 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/lsh_index.h 100 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/lsh_table.h 101 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/matrix.h 102 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/miniflann.hpp 103 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/nn_index.h 104 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/params.h 105 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/random.h 106 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/result_set.h 107 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/sampling.h 108 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/saving.h 109 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/flann/timer.h 110 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/highgui.hpp 111 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/imgcodecs.hpp 112 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/imgproc.hpp 113 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/ml.hpp 114 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/ml/ml.inl.hpp 115 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/objdetect.hpp 116 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/objdetect/detection_based_tracker.hpp 117 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/opencv.hpp 118 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/opencv_modules.hpp 119 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/photo.hpp 120 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/shape.hpp 121 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/shape/emdL1.hpp 122 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/shape/hist_cost.hpp 123 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/shape/shape_distance.hpp 124 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/shape/shape_transformer.hpp 125 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching.hpp 126 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/blenders.hpp 127 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/camera.hpp 128 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/exposure_compensate.hpp 129 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/matchers.hpp 130 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/motion_estimators.hpp 131 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/seam_finders.hpp 132 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/util.hpp 133 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/util_inl.hpp 134 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/warpers.hpp 135 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/detail/warpers_inl.hpp 136 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/stitching/warpers.hpp 137 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/superres.hpp 138 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/superres/optical_flow.hpp 139 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/video.hpp 140 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/video/background_segm.hpp 141 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/video/tracking.hpp 142 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videoio.hpp 143 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab.hpp 144 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/deblurring.hpp 145 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/fast_marching.hpp 146 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/fast_marching_inl.hpp 147 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/frame_source.hpp 148 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/global_motion.hpp 149 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/inpainting.hpp 150 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/log.hpp 151 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/motion_core.hpp 152 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/motion_stabilizing.hpp 153 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/optical_flow.hpp 154 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/outlier_rejection.hpp 155 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/ring_buffer.hpp 156 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/stabilizer.hpp 157 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/videostab/wobble_suppression.hpp 158 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/viz.hpp 159 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/viz/types.hpp 160 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/viz/viz3d.hpp 161 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/viz/vizcore.hpp 162 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/viz/widgets.hpp 163 | CMakeFiles/lineMatching.dir/Main.cpp.o: /usr/local/include/opencv4/opencv2/xfeatures2d/cuda.hpp 164 | 165 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/flags.make: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # compile CXX with /usr/bin/c++ 5 | CXX_FLAGS = -std=c++11 -O3 6 | 7 | CXX_DEFINES = 8 | 9 | CXX_INCLUDES = -isystem /usr/local/include/opencv4 -I/include -I/home/scott/gitcode/Line/LineMatching/library -I/usr/include/arpack++ -I/usr/local/include/opencv 10 | 11 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/link.txt: -------------------------------------------------------------------------------- 1 | /usr/bin/c++ -std=c++11 -O3 -rdynamic CMakeFiles/lineMatching.dir/Main.cpp.o -o lineMatching -L/usr/local/cuda/lib64 -L/usr/local/lib -Wl,-rpath,/usr/local/cuda/lib64:/usr/local/lib:/home/scott/gitcode/Line/LineMatching/build libLineMatchingLib.so /usr/local/lib/libopencv_aruco.so.4.0.0 /usr/local/lib/libopencv_bgsegm.so.4.0.0 /usr/local/lib/libopencv_bioinspired.so.4.0.0 /usr/local/lib/libopencv_ccalib.so.4.0.0 /usr/local/lib/libopencv_cudabgsegm.so.4.0.0 /usr/local/lib/libopencv_cudaobjdetect.so.4.0.0 /usr/local/lib/libopencv_cudastereo.so.4.0.0 /usr/local/lib/libopencv_dnn_objdetect.so.4.0.0 /usr/local/lib/libopencv_dpm.so.4.0.0 /usr/local/lib/libopencv_face.so.4.0.0 /usr/local/lib/libopencv_freetype.so.4.0.0 /usr/local/lib/libopencv_fuzzy.so.4.0.0 /usr/local/lib/libopencv_gapi.so.4.0.0 /usr/local/lib/libopencv_hdf.so.4.0.0 /usr/local/lib/libopencv_hfs.so.4.0.0 /usr/local/lib/libopencv_img_hash.so.4.0.0 /usr/local/lib/libopencv_line_descriptor.so.4.0.0 /usr/local/lib/libopencv_optflow.so.4.0.0 /usr/local/lib/libopencv_reg.so.4.0.0 /usr/local/lib/libopencv_rgbd.so.4.0.0 /usr/local/lib/libopencv_saliency.so.4.0.0 /usr/local/lib/libopencv_sfm.so.4.0.0 /usr/local/lib/libopencv_stereo.so.4.0.0 /usr/local/lib/libopencv_stitching.so.4.0.0 /usr/local/lib/libopencv_structured_light.so.4.0.0 /usr/local/lib/libopencv_superres.so.4.0.0 /usr/local/lib/libopencv_surface_matching.so.4.0.0 /usr/local/lib/libopencv_tracking.so.4.0.0 /usr/local/lib/libopencv_videostab.so.4.0.0 /usr/local/lib/libopencv_viz.so.4.0.0 /usr/local/lib/libopencv_xfeatures2d.so.4.0.0 /usr/local/lib/libopencv_ximgproc.so.4.0.0 /usr/local/lib/libopencv_xobjdetect.so.4.0.0 /usr/local/lib/libopencv_xphoto.so.4.0.0 -lGL -lGLU -lglut /usr/local/lib/libopencv_cudafeatures2d.so.4.0.0 /usr/local/lib/libopencv_phase_unwrapping.so.4.0.0 /usr/local/lib/libopencv_datasets.so.4.0.0 /usr/local/lib/libopencv_plot.so.4.0.0 /usr/local/lib/libopencv_text.so.4.0.0 /usr/local/lib/libopencv_dnn.so.4.0.0 /usr/local/lib/libopencv_cudaoptflow.so.4.0.0 /usr/local/lib/libopencv_cudalegacy.so.4.0.0 /usr/local/lib/libopencv_cudawarping.so.4.0.0 /usr/local/lib/libopencv_photo.so.4.0.0 /usr/local/lib/libopencv_cudaimgproc.so.4.0.0 /usr/local/lib/libopencv_cudafilters.so.4.0.0 /usr/local/lib/libopencv_video.so.4.0.0 /usr/local/lib/libopencv_cudaarithm.so.4.0.0 /usr/local/lib/libopencv_ml.so.4.0.0 /usr/local/lib/libopencv_shape.so.4.0.0 /usr/local/lib/libopencv_objdetect.so.4.0.0 /usr/local/lib/libopencv_calib3d.so.4.0.0 /usr/local/lib/libopencv_features2d.so.4.0.0 /usr/local/lib/libopencv_flann.so.4.0.0 /usr/local/lib/libopencv_highgui.so.4.0.0 /usr/local/lib/libopencv_videoio.so.4.0.0 /usr/local/lib/libopencv_imgcodecs.so.4.0.0 /usr/local/lib/libopencv_imgproc.so.4.0.0 /usr/local/lib/libopencv_core.so.4.0.0 /usr/local/lib/libopencv_cudev.so.4.0.0 -larpack -lsuperlu -larpack++ 2 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/lineMatching.dir/progress.make: -------------------------------------------------------------------------------- 1 | CMAKE_PROGRESS_1 = 4 2 | CMAKE_PROGRESS_2 = 5 3 | 4 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/CMakeFiles/progress.marks: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/Makefile: -------------------------------------------------------------------------------- 1 | # CMAKE generated file: DO NOT EDIT! 2 | # Generated by "Unix Makefiles" Generator, CMake Version 3.10 3 | 4 | # Default target executed when no arguments are given to make. 5 | default_target: all 6 | 7 | .PHONY : default_target 8 | 9 | # Allow only one "make -f Makefile2" at a time, but pass parallelism. 10 | .NOTPARALLEL: 11 | 12 | 13 | #============================================================================= 14 | # Special targets provided by cmake. 15 | 16 | # Disable implicit rules so canonical targets will work. 17 | .SUFFIXES: 18 | 19 | 20 | # Remove some rules from gmake that .SUFFIXES does not remove. 21 | SUFFIXES = 22 | 23 | .SUFFIXES: .hpux_make_needs_suffix_list 24 | 25 | 26 | # Suppress display of executed commands. 27 | $(VERBOSE).SILENT: 28 | 29 | 30 | # A target that is always out of date. 31 | cmake_force: 32 | 33 | .PHONY : cmake_force 34 | 35 | #============================================================================= 36 | # Set environment variables for the build. 37 | 38 | # The shell in which to execute make rules. 39 | SHELL = /bin/sh 40 | 41 | # The CMake executable. 42 | CMAKE_COMMAND = /usr/bin/cmake 43 | 44 | # The command to remove a file. 45 | RM = /usr/bin/cmake -E remove -f 46 | 47 | # Escaping for special characters. 48 | EQUALS = = 49 | 50 | # The top-level source directory on which CMake was run. 51 | CMAKE_SOURCE_DIR = /home/scott/gitcode/Line/LineMatching 52 | 53 | # The top-level build directory on which CMake was run. 54 | CMAKE_BINARY_DIR = /home/scott/gitcode/Line/LineMatching/build 55 | 56 | #============================================================================= 57 | # Targets provided globally by CMake. 58 | 59 | # Special rule for the target edit_cache 60 | edit_cache: 61 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." 62 | /usr/bin/cmake-gui -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) 63 | .PHONY : edit_cache 64 | 65 | # Special rule for the target edit_cache 66 | edit_cache/fast: edit_cache 67 | 68 | .PHONY : edit_cache/fast 69 | 70 | # Special rule for the target rebuild_cache 71 | rebuild_cache: 72 | @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." 73 | /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) 74 | .PHONY : rebuild_cache 75 | 76 | # Special rule for the target rebuild_cache 77 | rebuild_cache/fast: rebuild_cache 78 | 79 | .PHONY : rebuild_cache/fast 80 | 81 | # The main all target 82 | all: cmake_check_build_system 83 | $(CMAKE_COMMAND) -E cmake_progress_start /home/scott/gitcode/Line/LineMatching/build/CMakeFiles /home/scott/gitcode/Line/LineMatching/build/CMakeFiles/progress.marks 84 | $(MAKE) -f CMakeFiles/Makefile2 all 85 | $(CMAKE_COMMAND) -E cmake_progress_start /home/scott/gitcode/Line/LineMatching/build/CMakeFiles 0 86 | .PHONY : all 87 | 88 | # The main clean target 89 | clean: 90 | $(MAKE) -f CMakeFiles/Makefile2 clean 91 | .PHONY : clean 92 | 93 | # The main clean target 94 | clean/fast: clean 95 | 96 | .PHONY : clean/fast 97 | 98 | # Prepare targets for installation. 99 | preinstall: all 100 | $(MAKE) -f CMakeFiles/Makefile2 preinstall 101 | .PHONY : preinstall 102 | 103 | # Prepare targets for installation. 104 | preinstall/fast: 105 | $(MAKE) -f CMakeFiles/Makefile2 preinstall 106 | .PHONY : preinstall/fast 107 | 108 | # clear depends 109 | depend: 110 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 111 | .PHONY : depend 112 | 113 | #============================================================================= 114 | # Target rules for targets named LineMatchingLib 115 | 116 | # Build rule for target. 117 | LineMatchingLib: cmake_check_build_system 118 | $(MAKE) -f CMakeFiles/Makefile2 LineMatchingLib 119 | .PHONY : LineMatchingLib 120 | 121 | # fast build rule for target. 122 | LineMatchingLib/fast: 123 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/build 124 | .PHONY : LineMatchingLib/fast 125 | 126 | #============================================================================= 127 | # Target rules for targets named lineMatching 128 | 129 | # Build rule for target. 130 | lineMatching: cmake_check_build_system 131 | $(MAKE) -f CMakeFiles/Makefile2 lineMatching 132 | .PHONY : lineMatching 133 | 134 | # fast build rule for target. 135 | lineMatching/fast: 136 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/build 137 | .PHONY : lineMatching/fast 138 | 139 | Main.o: Main.cpp.o 140 | 141 | .PHONY : Main.o 142 | 143 | # target to build an object file 144 | Main.cpp.o: 145 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/Main.cpp.o 146 | .PHONY : Main.cpp.o 147 | 148 | Main.i: Main.cpp.i 149 | 150 | .PHONY : Main.i 151 | 152 | # target to preprocess a source file 153 | Main.cpp.i: 154 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/Main.cpp.i 155 | .PHONY : Main.cpp.i 156 | 157 | Main.s: Main.cpp.s 158 | 159 | .PHONY : Main.s 160 | 161 | # target to generate assembly for a file 162 | Main.cpp.s: 163 | $(MAKE) -f CMakeFiles/lineMatching.dir/build.make CMakeFiles/lineMatching.dir/Main.cpp.s 164 | .PHONY : Main.cpp.s 165 | 166 | linedetection.o: linedetection.cpp.o 167 | 168 | .PHONY : linedetection.o 169 | 170 | # target to build an object file 171 | linedetection.cpp.o: 172 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetection.cpp.o 173 | .PHONY : linedetection.cpp.o 174 | 175 | linedetection.i: linedetection.cpp.i 176 | 177 | .PHONY : linedetection.i 178 | 179 | # target to preprocess a source file 180 | linedetection.cpp.i: 181 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetection.cpp.i 182 | .PHONY : linedetection.cpp.i 183 | 184 | linedetection.s: linedetection.cpp.s 185 | 186 | .PHONY : linedetection.s 187 | 188 | # target to generate assembly for a file 189 | linedetection.cpp.s: 190 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetection.cpp.s 191 | .PHONY : linedetection.cpp.s 192 | 193 | linedetector.o: linedetector.cpp.o 194 | 195 | .PHONY : linedetector.o 196 | 197 | # target to build an object file 198 | linedetector.cpp.o: 199 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetector.cpp.o 200 | .PHONY : linedetector.cpp.o 201 | 202 | linedetector.i: linedetector.cpp.i 203 | 204 | .PHONY : linedetector.i 205 | 206 | # target to preprocess a source file 207 | linedetector.cpp.i: 208 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetector.cpp.i 209 | .PHONY : linedetector.cpp.i 210 | 211 | linedetector.s: linedetector.cpp.s 212 | 213 | .PHONY : linedetector.s 214 | 215 | # target to generate assembly for a file 216 | linedetector.cpp.s: 217 | $(MAKE) -f CMakeFiles/LineMatchingLib.dir/build.make CMakeFiles/LineMatchingLib.dir/linedetector.cpp.s 218 | .PHONY : linedetector.cpp.s 219 | 220 | # Help Target 221 | help: 222 | @echo "The following are some of the valid targets for this Makefile:" 223 | @echo "... all (the default if no target is provided)" 224 | @echo "... clean" 225 | @echo "... depend" 226 | @echo "... edit_cache" 227 | @echo "... rebuild_cache" 228 | @echo "... LineMatchingLib" 229 | @echo "... lineMatching" 230 | @echo "... Main.o" 231 | @echo "... Main.i" 232 | @echo "... Main.s" 233 | @echo "... linedetection.o" 234 | @echo "... linedetection.i" 235 | @echo "... linedetection.s" 236 | @echo "... linedetector.o" 237 | @echo "... linedetector.i" 238 | @echo "... linedetector.s" 239 | .PHONY : help 240 | 241 | 242 | 243 | #============================================================================= 244 | # Special targets to cleanup operation of make. 245 | 246 | # Special rule to run CMake to check the build system integrity. 247 | # No rule that depends on this can have commands that come from listfiles 248 | # because they might be regenerated. 249 | cmake_check_build_system: 250 | $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 251 | .PHONY : cmake_check_build_system 252 | 253 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane1.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane10.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane11.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane2.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane3.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane4.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane5.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane6.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane7.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane8.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/Plane9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/Plane9.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/cmake_install.cmake: -------------------------------------------------------------------------------- 1 | # Install script for directory: /home/scott/gitcode/Line/LineMatching 2 | 3 | # Set the install prefix 4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX) 5 | set(CMAKE_INSTALL_PREFIX "/usr/local") 6 | endif() 7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 8 | 9 | # Set the install configuration name. 10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) 11 | if(BUILD_TYPE) 12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" 13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") 14 | else() 15 | set(CMAKE_INSTALL_CONFIG_NAME "") 16 | endif() 17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") 18 | endif() 19 | 20 | # Set the component getting installed. 21 | if(NOT CMAKE_INSTALL_COMPONENT) 22 | if(COMPONENT) 23 | message(STATUS "Install component: \"${COMPONENT}\"") 24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") 25 | else() 26 | set(CMAKE_INSTALL_COMPONENT) 27 | endif() 28 | endif() 29 | 30 | # Install shared libraries without execute permission? 31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) 32 | set(CMAKE_INSTALL_SO_NO_EXE "1") 33 | endif() 34 | 35 | # Is this installation the result of a crosscompile? 36 | if(NOT DEFINED CMAKE_CROSSCOMPILING) 37 | set(CMAKE_CROSSCOMPILING "FALSE") 38 | endif() 39 | 40 | if(CMAKE_INSTALL_COMPONENT) 41 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") 42 | else() 43 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") 44 | endif() 45 | 46 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT 47 | "${CMAKE_INSTALL_MANIFEST_FILES}") 48 | file(WRITE "/home/scott/gitcode/Line/LineMatching/build/${CMAKE_INSTALL_MANIFEST}" 49 | "${CMAKE_INSTALL_MANIFEST_CONTENT}") 50 | -------------------------------------------------------------------------------- /CodeForLineMatching/build/libLineMatchingLib.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/libLineMatchingLib.so -------------------------------------------------------------------------------- /CodeForLineMatching/build/lineMatching: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/lineMatching -------------------------------------------------------------------------------- /CodeForLineMatching/build/outleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/outleft.png -------------------------------------------------------------------------------- /CodeForLineMatching/build/outright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/build/outright.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/LBDout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/LBDout.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/LBDout1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/LBDout1.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/LBDout2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/LBDout2.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/left1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/left1.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/left5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/left5.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/out.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/out1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/out1.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/out2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/out2.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/right1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/right1.png -------------------------------------------------------------------------------- /CodeForLineMatching/image/right5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/image/right5.png -------------------------------------------------------------------------------- /CodeForLineMatching/linedetector.cpp: -------------------------------------------------------------------------------- 1 | #include "linedetector.h" 2 | 3 | void LineDetector::mergeLines(SEGMENT * seg1, SEGMENT * seg2, SEGMENT * seg_merged) 4 | { 5 | double xg = 0.0, yg = 0.0; 6 | double delta1x = 0.0, delta1y = 0.0, delta2x = 0.0, delta2y = 0.0; 7 | float ax = 0, bx = 0, cx = 0, dx = 0; 8 | float ay = 0, by = 0, cy = 0, dy = 0; 9 | double li = 0.0, lj = 0.0; 10 | double thi = 0.0, thj = 0.0, thr = 0.0; 11 | double axg = 0.0, bxg = 0.0, cxg = 0.0, dxg = 0.0, delta1xg = 0.0, delta2xg = 0.0; 12 | 13 | ax = seg1->x1; 14 | ay = seg1->y1; 15 | 16 | bx = seg1->x2; 17 | by = seg1->y2; 18 | cx = seg2->x1; 19 | cy = seg2->y1; 20 | 21 | dx = seg2->x2; 22 | dy = seg2->y2; 23 | 24 | float dlix = (bx - ax); 25 | float dliy = (by - ay); 26 | float dljx = (dx - cx); 27 | float dljy = (dy - cy); 28 | 29 | li = sqrt((double) (dlix * dlix) + (double) (dliy * dliy)); 30 | lj = sqrt((double) (dljx * dljx) + (double) (dljy * dljy)); 31 | 32 | xg = (li * (double) (ax + bx) + lj * (double) (cx + dx)) 33 | / (double) (2.0 * (li + lj)); 34 | yg = (li * (double) (ay + by) + lj * (double) (cy + dy)) 35 | / (double) (2.0 * (li + lj)); 36 | 37 | if(dlix == 0.0f) thi = CV_PI / 2.0; 38 | else thi = atan(dliy / dlix); 39 | 40 | if(dljx == 0.0f) thj = CV_PI / 2.0; 41 | else thj = atan(dljy / dljx); 42 | 43 | if (fabs(thi - thj) <= CV_PI / 2.0) 44 | { 45 | thr = (li * thi + lj * thj) / (li + lj); 46 | } 47 | else 48 | { 49 | double tmp = thj - CV_PI * (thj / fabs(thj)); 50 | thr = li * thi + lj * tmp; 51 | thr /= (li + lj); 52 | } 53 | 54 | axg = ((double) ay - yg) * sin(thr) + ((double) ax - xg) * cos(thr); 55 | 56 | bxg = ((double) by - yg) * sin(thr) + ((double) bx - xg) * cos(thr); 57 | 58 | cxg = ((double) cy - yg) * sin(thr) + ((double) cx - xg) * cos(thr); 59 | 60 | dxg = ((double) dy - yg) * sin(thr) + ((double) dx - xg) * cos(thr); 61 | 62 | delta1xg = min(axg,min(bxg,min(cxg,dxg))); 63 | delta2xg = max(axg,max(bxg,max(cxg,dxg))); 64 | 65 | delta1x = delta1xg * cos(thr) + xg; 66 | delta1y = delta1xg * sin(thr) + yg; 67 | delta2x = delta2xg * cos(thr) + xg; 68 | delta2y = delta2xg * sin(thr) + yg; 69 | 70 | seg_merged->x1 = (float) delta1x; 71 | seg_merged->y1 = (float) delta1y; 72 | seg_merged->x2 = (float) delta2x; 73 | seg_merged->y2 = (float) delta2y; 74 | } 75 | 76 | double LineDetector::distPointLine( const Mat & p, Mat & l ) 77 | { 78 | double x, y, w; 79 | 80 | x = l.at(0,0); 81 | y = l.at(1,0); 82 | 83 | w = sqrt(x*x+y*y); 84 | 85 | l.at(0,0) = x / w; 86 | l.at(1,0) = y / w; 87 | l.at(2,0) = l.at(2,0) / w; 88 | 89 | return l.dot(p); 90 | } 91 | 92 | bool LineDetector::mergeSegments( SEGMENT * seg1, SEGMENT * seg2, SEGMENT * seg_merged ) 93 | { 94 | double o[] = { 0.0, 0.0, 1.0 }; 95 | double a[] = { 0.0, 0.0, 1.0 }; 96 | double b[] = { 0.0, 0.0, 1.0 }; 97 | double c[3]; 98 | 99 | o[0] = ( seg2->x1 + seg2->x2 ) / 2.0; 100 | o[1] = ( seg2->y1 + seg2->y2 ) / 2.0; 101 | 102 | a[0] = seg1->x1; 103 | a[1] = seg1->y1; 104 | b[0] = seg1->x2; 105 | b[1] = seg1->y2; 106 | 107 | Mat ori = Mat(3, 1, CV_64FC1, o).clone(); 108 | Mat p1 = Mat(3, 1, CV_64FC1, a).clone(); 109 | Mat p2 = Mat(3, 1, CV_64FC1, b).clone(); 110 | Mat l1 = Mat(3, 1, CV_64FC1, c).clone(); 111 | 112 | l1 = p1.cross(p2); 113 | 114 | Point2f seg1mid, seg2mid; 115 | seg1mid.x = (seg1->x1 + seg1->x2) /2.0f; 116 | seg1mid.y = (seg1->y1 + seg1->y2) /2.0f; 117 | seg2mid.x = (seg2->x1 + seg2->x2) /2.0f; 118 | seg2mid.y = (seg2->y1 + seg2->y2) /2.0f; 119 | 120 | double seg1len, seg2len; 121 | seg1len = sqrt((seg1->x1 - seg1->x2)*(seg1->x1 - seg1->x2)+(seg1->y1 - seg1->y2)*(seg1->y1 - seg1->y2)); 122 | seg2len = sqrt((seg2->x1 - seg2->x2)*(seg2->x1 - seg2->x2)+(seg2->y1 - seg2->y2)*(seg2->y1 - seg2->y2)); 123 | 124 | double middist = sqrt((seg1mid.x - seg2mid.x)*(seg1mid.x - seg2mid.x) + (seg1mid.y - seg2mid.y)*(seg1mid.y - seg2mid.y)); 125 | 126 | float angdiff = seg1->angle - seg2->angle; 127 | angdiff = fabs(angdiff); 128 | 129 | double dist = distPointLine( ori, l1 ); 130 | 131 | if ( fabs( dist ) <= threshold_dist * 2.0 132 | && middist <= seg1len / 2.0 + seg2len / 2.0 + 20.0 133 | && angdiff <= CV_PI / 180.0f * 5.0f) { 134 | mergeLines(seg1, seg2, seg2); 135 | return true; 136 | } else { 137 | return false; 138 | } 139 | } 140 | 141 | template 142 | void LineDetector::incidentPoint( tType * pt, Mat & l ) 143 | { 144 | double a[] = { (double)pt->x, (double)pt->y, 1.0 }; 145 | double b[] = { l.at(0,0), l.at(1,0), 0.0 }; 146 | double c[3]; 147 | 148 | Mat xk = Mat(3, 1, CV_64FC1, a).clone(); 149 | Mat lh = Mat(3, 1, CV_64FC1, b).clone(); 150 | Mat lk = Mat(3, 1, CV_64FC1, c).clone(); 151 | 152 | lk = xk.cross(lh); 153 | xk = lk.cross(l); 154 | 155 | double s = 1.0 / xk.at(2,0); 156 | xk.convertTo(xk, -1, s); 157 | 158 | pt->x = (float)xk.at(0,0) < 0.0f ? 0.0f : (float)xk.at(0,0) 159 | >= (imagewidth - 1.0f) ? (imagewidth - 1.0f) : (float)xk.at(0,0); 160 | pt->y = (float)xk.at(1,0) < 0.0f ? 0.0f : (float)xk.at(1,0) 161 | >= (imageheight - 1.0f) ? (imageheight - 1.0f) : (float)xk.at(1,0); 162 | 163 | } 164 | 165 | void LineDetector::extractSegments( vector * points, vector * segments ) 166 | { 167 | bool is_line; 168 | 169 | int i, j; 170 | SEGMENT seg; 171 | Point2i ps, pe, pt; 172 | 173 | vector l_points; 174 | 175 | int total = points->size(); 176 | 177 | for ( i = 0; i + threshold_length < total; i++ ) { 178 | ps = points->at(i); 179 | pe = points->at(i + threshold_length); 180 | 181 | double a[] = { (double)ps.x, (double)ps.y, 1 }; 182 | double b[] = { (double)pe.x, (double)pe.y, 1 }; 183 | double c[3], d[3]; 184 | 185 | Mat p1 = Mat(3, 1, CV_64FC1, a).clone(); 186 | Mat p2 = Mat(3, 1, CV_64FC1, b).clone(); 187 | Mat p = Mat(3, 1, CV_64FC1, c).clone(); 188 | Mat l = Mat(3, 1, CV_64FC1, d).clone(); 189 | l = p1.cross(p2); 190 | 191 | is_line = true; 192 | 193 | l_points.clear(); 194 | l_points.push_back(ps); 195 | 196 | for ( j = 1; j < threshold_length; j++ ) { 197 | pt.x = points->at(i+j).x; 198 | pt.y = points->at(i+j).y; 199 | 200 | p.at(0,0) = (double)pt.x; 201 | p.at(1,0) = (double)pt.y; 202 | p.at(2,0) = 1.0; 203 | 204 | double dist = distPointLine( p, l ); 205 | 206 | if ( fabs( dist ) > threshold_dist ) { 207 | is_line = false; 208 | break; 209 | } 210 | l_points.push_back(pt); 211 | } 212 | 213 | // Line check fail, test next point 214 | if ( is_line == false ) 215 | continue; 216 | 217 | l_points.push_back(pe); 218 | 219 | Vec4f line; 220 | fitLine( Mat(l_points), line, DIST_L2, 0, 0.01, 0.01); 221 | a[0] = line[2]; 222 | a[1] = line[3]; 223 | b[0] = line[2] + line[0]; 224 | b[1] = line[3] + line[1]; 225 | 226 | p1 = Mat(3, 1, CV_64FC1, a).clone(); 227 | p2 = Mat(3, 1, CV_64FC1, b).clone(); 228 | 229 | l = p1.cross(p2); 230 | 231 | incidentPoint( &ps, l ); 232 | 233 | // Extending line 234 | for ( j = threshold_length + 1; i + j < total; j++ ) { 235 | pt.x = points->at(i+j).x; 236 | pt.y = points->at(i+j).y; 237 | 238 | p.at(0,0) = (double)pt.x; 239 | p.at(1,0) = (double)pt.y; 240 | p.at(2,0) = 1.0; 241 | 242 | double dist = distPointLine( p, l ); 243 | 244 | if ( fabs( dist ) > threshold_dist ) { 245 | j--; 246 | break; 247 | } 248 | 249 | pe = pt; 250 | l_points.push_back(pt); 251 | } 252 | fitLine( Mat(l_points), line, DIST_L2, 0, 0.01, 0.01); 253 | a[0] = line[2]; 254 | a[1] = line[3]; 255 | b[0] = line[2] + line[0]; 256 | b[1] = line[3] + line[1]; 257 | 258 | p1 = Mat(3, 1, CV_64FC1, a).clone(); 259 | p2 = Mat(3, 1, CV_64FC1, b).clone(); 260 | 261 | l = p1.cross(p2); 262 | 263 | Point2f e1, e2; 264 | e1.x = ps.x; 265 | e1.y = ps.y; 266 | e2.x = pe.x; 267 | e2.y = pe.y; 268 | 269 | incidentPoint( &e1, l ); 270 | incidentPoint( &e2, l ); 271 | seg.x1 = e1.x; 272 | seg.y1 = e1.y; 273 | seg.x2 = e2.x; 274 | seg.y2 = e2.y; 275 | 276 | segments->push_back(seg); 277 | i = i + j; 278 | } 279 | } 280 | 281 | void LineDetector::pointInboardTest(Mat & src, Point2i * pt) 282 | { 283 | pt->x = pt->x <= 5.0f ? 5.0f : pt->x >= src.cols - 5.0f ? src.cols - 5.0f : pt->x; 284 | pt->y = pt->y <= 5.0f ? 5.0f : pt->y >= src.rows - 5.0f ? src.rows - 5.0f : pt->y; 285 | } 286 | 287 | bool LineDetector::getPointChain( const Mat & img, const Point pt, Point * chained_pt, 288 | int & direction, int step ) 289 | { 290 | int ri, ci; 291 | int indices[8][2]={ {1,1}, {1,0}, {1,-1}, {0,-1}, {-1,-1},{-1,0}, {-1,1}, {0,1} }; 292 | 293 | for ( int i = 0; i < 8; i++ ) { 294 | ci = pt.x + indices[i][1]; 295 | ri = pt.y + indices[i][0]; 296 | 297 | if ( ri < 0 || ri == img.rows || ci < 0 || ci == img.cols ) 298 | continue; 299 | 300 | if ( img.at(ri, ci) == 0 ) 301 | continue; 302 | 303 | if(step == 0) { 304 | chained_pt->x = ci; 305 | chained_pt->y = ri; 306 | direction = i; 307 | return true; 308 | } else { 309 | if(abs(i-direction) <= 2 || abs(i-direction) >= 6) 310 | { 311 | chained_pt->x = ci; 312 | chained_pt->y = ri; 313 | direction = i; 314 | return true; 315 | } else 316 | continue; 317 | } 318 | } 319 | return false; 320 | } 321 | 322 | void LineDetector::lineDetection( Mat & src, vector & segments_all, bool merge ) 323 | { 324 | int r, c; 325 | imageheight=src.rows; imagewidth=src.cols; 326 | 327 | vector points; 328 | vector segments, segments_tmp, segments_tmp2; 329 | Mat canny = src.clone(); 330 | Canny(src, canny, 50, 50, 3); 331 | 332 | for(int i=0; i src.rows-5 || j < 5 || j > src.cols - 5) 335 | canny.at(i,j) = 0; 336 | } 337 | } 338 | 339 | SEGMENT seg, seg1, seg2; 340 | 341 | for ( r = 0; r < imageheight; r++ ) { 342 | for ( c = 0; c < imagewidth; c++ ) { 343 | // Find seeds - skip for non-seeds 344 | if ( canny.at(r,c) == 0 ) 345 | continue; 346 | 347 | // Found seeds 348 | Point2i pt; 349 | pt.x = c; 350 | pt.y = r; 351 | 352 | points.push_back(pt); 353 | canny.at(pt.y, pt.x) = 0; 354 | 355 | int direction = 0; 356 | int step = 0; 357 | while (getPointChain( canny, pt, &pt, direction, step)) { 358 | points.push_back(pt); 359 | step++; 360 | canny.at(pt.y, pt.x) = 0; 361 | } 362 | 363 | if ( points.size() < (unsigned int)threshold_length + 1 ) { 364 | points.clear(); 365 | continue; 366 | } 367 | 368 | extractSegments( &points, &segments ); 369 | 370 | if ( segments.size() == 0 ) { 371 | points.clear(); 372 | continue; 373 | } 374 | for ( int i = 0; i < (int)segments.size(); i++ ) { 375 | seg = segments.at(i); 376 | float length = sqrt((seg.x1 - seg.x2)*(seg.x1 - seg.x2) + (seg.y1 - seg.y2)*(seg.y1 - seg.y2)); 377 | if(length < threshold_length) continue; 378 | if( (seg.x1 <= 5.0f && seg.x2 <= 5.0f) 379 | || (seg.y1 <= 5.0f && seg.y2 <= 5.0f) 380 | || (seg.x1 >= imagewidth - 5.0f && seg.x2 >= imagewidth - 5.0f) 381 | || (seg.y1 >= imageheight - 5.0f && seg.y2 >= imageheight - 5.0f) ) 382 | continue; 383 | 384 | additionalOperationsOnSegments(src, &seg); 385 | if(!merge) { 386 | segments_all.push_back(seg); 387 | } 388 | segments_tmp.push_back(seg); 389 | } 390 | points.clear(); 391 | segments.clear(); 392 | } 393 | } 394 | if(!merge) 395 | return; 396 | 397 | bool is_merged = false; 398 | int ith = segments_tmp.size() - 1; 399 | int jth = ith - 1; 400 | while(true) 401 | { 402 | seg1 = segments_tmp[ith]; 403 | seg2 = segments_tmp[jth]; 404 | is_merged = mergeSegments(&seg1, &seg2, &seg2); 405 | if(is_merged == true) 406 | { 407 | additionalOperationsOnSegments(src, &seg2); 408 | vector::iterator it = segments_tmp.begin() + ith; 409 | *it = seg2; 410 | segments_tmp.erase(segments_tmp.begin()+jth); 411 | ith--; 412 | jth = ith - 1; 413 | } 414 | else 415 | { 416 | jth--; 417 | } 418 | if(jth < 0) { 419 | ith--; 420 | jth = ith - 1; 421 | } 422 | if(ith == 1 && jth == 0) 423 | break; 424 | } 425 | segments_all = segments_tmp; 426 | } 427 | 428 | void LineDetector::getAngle(SEGMENT *seg) 429 | { 430 | float dx = (float)(seg->x2 - seg->x1); 431 | float dy = (float)(seg->y2 - seg->y1); 432 | double ang=0.0; 433 | 434 | if(dx == 0.0f) { 435 | if(dy > 0) 436 | ang = CV_PI / 2.0; 437 | else 438 | ang = -1.0 * CV_PI / 2.0; 439 | } 440 | else if(dy == 0.0f) { 441 | if(dx > 0) 442 | ang = 0.0; 443 | else 444 | ang = CV_PI; 445 | } 446 | else if(dx < 0.0f && dy > 0.0f) 447 | ang = CV_PI + atan( dy/dx ); 448 | else if(dx > 0.0f && dy < 0.0f) 449 | ang = 2*CV_PI + atan( dy/dx ); 450 | else if(dx < 0.0f && dy < 0.0f) 451 | ang = CV_PI + atan( dy/dx ); 452 | else 453 | ang = atan( dy/dx ); 454 | 455 | if(ang > 2.0 * CV_PI) 456 | ang -= 2.0 * CV_PI; 457 | seg->angle = (float)ang; 458 | } 459 | 460 | void LineDetector::additionalOperationsOnSegments(Mat & src, SEGMENT * seg) 461 | { 462 | if(seg->x1 == 0.0f && seg->x2 == 0.0f && seg->y1 == 0.0f && seg->y2 == 0.0f) 463 | return; 464 | 465 | getAngle(seg); 466 | double ang = (double)seg->angle; 467 | 468 | Point2f start = Point2f(seg->x1, seg->y1); 469 | Point2f end = Point2f(seg->x2, seg->y2); 470 | 471 | double dx = 0.0, dy = 0.0; 472 | dx = (double) end.x - (double) start.x; 473 | dy = (double) end.y - (double) start.y; 474 | 475 | int num_points = 10; 476 | Point2f *points = new Point2f[num_points]; 477 | 478 | points[0] = start; 479 | points[num_points - 1] = end; 480 | for (int i = 0; i < num_points; i++) { 481 | if (i == 0 || i == num_points - 1) 482 | continue; 483 | points[i].x = points[0].x + (dx / double(num_points - 1) * (double) i); 484 | points[i].y = points[0].y + (dy / double(num_points - 1) * (double) i); 485 | } 486 | 487 | Point2i *points_right = new Point2i[num_points]; 488 | Point2i *points_left = new Point2i[num_points]; 489 | double gap = 1.0; 490 | 491 | for(int i = 0; i < num_points; i++) { 492 | points_right[i].x = cvRound(points[i].x + gap*cos(90.0 * CV_PI / 180.0 + ang)); 493 | points_right[i].y = cvRound(points[i].y + gap*sin(90.0 * CV_PI / 180.0 + ang)); 494 | points_left[i].x = cvRound(points[i].x - gap*cos(90.0 * CV_PI / 180.0 + ang)); 495 | points_left[i].y = cvRound(points[i].y - gap*sin(90.0 * CV_PI / 180.0 + ang)); 496 | pointInboardTest(src, &points_right[i]); 497 | pointInboardTest(src, &points_left[i]); 498 | } 499 | 500 | int iR = 0, iL = 0; 501 | for(int i = 0; i < num_points; i++) { 502 | iR += src.at(points_right[i].y, points_right[i].x); 503 | iL += src.at(points_left[i].y, points_left[i].x); 504 | } 505 | 506 | if(iR > iL) 507 | { 508 | std::swap(seg->x1, seg->x2); 509 | std::swap(seg->y1, seg->y2); 510 | ang = ang + CV_PI; 511 | if(ang >= 2.0*CV_PI) 512 | ang = ang - 2.0 * CV_PI; 513 | seg->angle = (float)ang; 514 | } 515 | 516 | delete[] points; delete[] points_right; delete[] points_left; 517 | 518 | seg->label = init_label++; 519 | return; 520 | } 521 | 522 | void LineDetector::drawArrow( Mat & mat, const SEGMENT * seg, Scalar bgr, int thickness, bool directed) 523 | { 524 | Point2i p1; 525 | 526 | double gap = 10.0; 527 | double ang = (double)seg->angle; 528 | double arrow_angle = 30.0; 529 | 530 | p1.x = round(seg->x2 - gap*cos(arrow_angle * CV_PI / 180.0 + ang)); 531 | p1.y = round(seg->y2 - gap*sin(arrow_angle * CV_PI / 180.0 + ang)); 532 | pointInboardTest(mat, &p1); 533 | 534 | line(mat, Point(round(seg->x1), round(seg->y1)), Point(round(seg->x2), 535 | round(seg->y2)), bgr, thickness, 1); 536 | if(directed) 537 | line(mat, Point(round(seg->x2), round(seg->y2)), p1, bgr, thickness, 1); 538 | } 539 | -------------------------------------------------------------------------------- /CodeForLineMatching/linedetector.h: -------------------------------------------------------------------------------- 1 | #ifndef LINEDETECTOR_H_ 2 | #define LINEDETECTOR_H_ 3 | 4 | #include "system.h" 5 | 6 | class LineDetector 7 | { 8 | public: 9 | LineDetector() { 10 | threshold_dist=1.5; 11 | threshold_length=20; 12 | init_label=0; 13 | } 14 | ~LineDetector(){}; 15 | template 16 | void incidentPoint( tType * pt, Mat & l ); 17 | void mergeLines(SEGMENT * Seg1, SEGMENT * Seg2, SEGMENT * SegMerged); 18 | bool getPointChain( const Mat & img, const Point pt, Point * chained_pt, int 19 | & direction, int step ); 20 | // bool getPointChain( const Mat & img, const Mat & scales, const Point pt, Point * chained_pt, int 21 | // & direction, int step ); 22 | double distPointLine( const Mat & p, Mat & l ); 23 | bool mergeSegments( SEGMENT * seg1, SEGMENT * seg2, SEGMENT * seg_merged ); 24 | void extractSegments( vector * points, vector * segments ); 25 | void lineDetection( Mat & src, vector & segments_all, bool merge = true ); 26 | void pointInboardTest(Mat & src, Point2i * pt); 27 | void getAngle(SEGMENT *seg); 28 | void additionalOperationsOnSegments(Mat & src, SEGMENT * seg); 29 | void drawArrow( Mat& mat, const SEGMENT* seg, Scalar bgr=Scalar(0,255,0), 30 | int thickness=1, bool directed=true); 31 | 32 | private: 33 | int init_label, imagewidth, imageheight, threshold_length; 34 | float threshold_dist; 35 | }; 36 | 37 | struct segDesc{ 38 | SEGMENT segment; 39 | float lineLength; 40 | vectordesVec; 41 | }; 42 | struct matchNode{ 43 | unsigned int leftLineID;//the index of line in the left image 44 | unsigned int rightLineID;//the index of line in the right image 45 | }; 46 | typedef std::vector Nodes_list; 47 | 48 | struct CompareL { 49 | bool operator() (const double& lhs, const double& rhs) const 50 | {return lhs>rhs;} 51 | }; 52 | typedef std::multimap EigenMAP; 53 | 54 | 55 | 56 | class descriptor{ 57 | private: 58 | int numOfBand; 59 | int widthOfBand; 60 | vector GaussianCoef_Global,GaussianCoef_Local,desc; 61 | Mat dxImg,dyImg; 62 | void setGlobalGaussianCoef(int n,int w); 63 | void setLocalGaussianCoef(int w); 64 | public: 65 | descriptor(int numberOfBands_,int widthOfBand_); 66 | void getGradientMap(string filename); 67 | void debugShow(); 68 | vector calcLBD(SEGMENT& seg); 69 | }; 70 | 71 | void BuildMat(vector linesInLeft, vector linesInRight); 72 | void MatchingResult(vector linesInLeft, vector linesInRight, vector &matchResult); 73 | #endif 74 | -------------------------------------------------------------------------------- /CodeForLineMatching/readMe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/readMe.txt -------------------------------------------------------------------------------- /CodeForLineMatching/removed/Demo_LBD_Multi.cpp: -------------------------------------------------------------------------------- 1 | #include "LineMatchingAlgorithm.hpp" 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | using namespace std; 8 | 9 | void usage(int argc, char **argv) 10 | { 11 | cout << "Usage: " << argv[0] << " ImgDirPath" 12 | << " OurDirPath" << endl; 13 | } 14 | 15 | int main(int argc, char **argv) 16 | { 17 | 18 | int ret = -1; 19 | if (argc < 3) 20 | { 21 | usage(argc, argv); 22 | return ret; 23 | } 24 | 25 | struct dirent *ptr; 26 | DIR *dir; 27 | string PATH(argv[1]); 28 | string OUT(argv[2]); 29 | string PARAM(argv[3]); 30 | 31 | dir = opendir(PATH.c_str()); 32 | vector files; 33 | fstream _file; 34 | 35 | //读取图片 36 | while ((ptr = readdir(dir)) != NULL) 37 | { 38 | //跳过'.'和'..'两个目录 39 | if (ptr->d_name[0] == '.') 40 | continue; 41 | files.push_back(ptr->d_name); 42 | } 43 | 44 | sort(files.begin(), files.end()); //排序 45 | 46 | for (int i = 0; i < files.size() - 1; i++) 47 | { 48 | string img1path = PATH; 49 | string img2path = PATH; 50 | string outpath = OUT; 51 | string parampath; 52 | if(!PARAM.empty()) 53 | { 54 | parampath = PARAM + to_string(i) + "_" + to_string(i+1); 55 | } 56 | 57 | img1path = img1path + files[i]; 58 | img2path = img2path + files[i + 1]; 59 | outpath = outpath + to_string(i) + "_" + to_string(i+1); 60 | 61 | _file.open(outpath, ios::in); 62 | if(!_file) 63 | { 64 | image_process(img1path, img2path, outpath, parampath,false); 65 | cout << files[i] << "_" << files[i + 1] << endl << endl; 66 | } 67 | else 68 | { 69 | cout< 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include "opencv2/core/utility.hpp" 14 | #include 15 | 16 | 17 | struct Pixel{ 18 | unsigned int x;//X coordinate 19 | unsigned int y;//Y coordinate 20 | }; 21 | struct EdgeChains{ 22 | std::vector xCors;//all the x coordinates of edge points 23 | std::vector yCors;//all the y coordinates of edge points 24 | std::vector sId; //the start index of each edge in the coordinate arrays 25 | unsigned int numOfEdges;//the number of edges whose length are larger than minLineLen; numOfEdges < sId.size; 26 | }; 27 | struct LineChains{ 28 | std::vector xCors;//all the x coordinates of line points 29 | std::vector yCors;//all the y coordinates of line points 30 | std::vector sId; //the start index of each line in the coordinate arrays 31 | unsigned int numOfLines;//the number of lines whose length are larger than minLineLen; numOfLines < sId.size; 32 | }; 33 | 34 | typedef std::list PixelChain;//each edge is a pixel chain 35 | 36 | 37 | struct EDLineParam{ 38 | int ksize; 39 | float sigma; 40 | float gradientThreshold; 41 | float anchorThreshold; 42 | int scanIntervals; 43 | int minLineLen; 44 | double lineFitErrThreshold; 45 | }; 46 | 47 | #define RELATIVE_ERROR_FACTOR 100.0 48 | #define M_LN10 2.30258509299404568402 49 | #define log_gamma(x) ((x)>15.0?log_gamma_windschitl(x):log_gamma_lanczos(x)) 50 | 51 | /* This class is used to detect lines from input image. 52 | * First, edges are extracted from input image following the method presented in Cihan Topal and 53 | * Cuneyt Akinlar's paper:"Edge Drawing: A Heuristic Approach to Robust Real-Time Edge Detection", 2010. 54 | * Then, lines are extracted from the edge image following the method presented in Cuneyt Akinlar and 55 | * Cihan Topal's paper:"EDLines: A real-time line segment detector with a false detection control", 2011 56 | * PS: The linking step of edge detection has a little bit difference with the Edge drawing algorithm 57 | * described in the paper. The edge chain doesn't stop when the pixel direction is changed. 58 | */ 59 | class EDLineDetector 60 | { 61 | public: 62 | EDLineDetector(); 63 | EDLineDetector(EDLineParam param); 64 | ~EDLineDetector(); 65 | 66 | /*extract edges from image 67 | *image: In, gray image; 68 | *edges: Out, store the edges, each edge is a pixel chain 69 | *smoothed: In, flag to mark whether the image has already been smoothed by Gaussian filter. 70 | *return -1: error happen 71 | */ 72 | int EdgeDrawing(cv::Mat &image, EdgeChains &edgeChains, bool smoothed=false); 73 | /*extract lines from image 74 | *image: In, gray image; 75 | *lines: Out, store the extracted lines, 76 | *smoothed: In, flag to mark whether the image has already been smoothed by Gaussian filter. 77 | *return -1: error happen 78 | */ 79 | int EDline(cv::Mat &image, LineChains &lines, bool smoothed=false); 80 | /*extract line from image, and store them*/ 81 | int EDline(cv::Mat &image, bool smoothed=false); 82 | 83 | cv::Mat dxImg_;//store the dxImg; 84 | cv::Mat dyImg_;//store the dyImg; 85 | cv::Mat gImgWO_;//store the gradient image without threshold; 86 | LineChains lines_; //store the detected line chains; 87 | //store the line Equation coefficients, vec3=[w1,w2,w3] for line w1*x + w2*y + w3=0; 88 | std::vector > lineEquations_; 89 | //store the line endpoints, [x1,y1,x2,y3] 90 | std::vector > lineEndpoints_; 91 | //store the line direction 92 | std::vector lineDirection_; 93 | //store the line salience, which is the summation of gradients of pixels on line 94 | std::vector lineSalience_; 95 | unsigned int imageWidth; 96 | unsigned int imageHeight; 97 | 98 | private: 99 | void InitEDLine_(); 100 | /*For an input edge chain, find the best fit line, the default chain length is minLineLen_ 101 | *xCors: In, pointer to the X coordinates of pixel chain; 102 | *yCors: In, pointer to the Y coordinates of pixel chain; 103 | *offsetS:In, start index of this chain in array; 104 | *lineEquation: Out, [a,b] which are the coefficient of lines y=ax+b(horizontal) or x=ay+b(vertical); 105 | *return: line fit error; -1:error happens; 106 | */ 107 | double LeastSquaresLineFit_(unsigned int *xCors, unsigned int *yCors, 108 | unsigned int offsetS, std::array &lineEquation); 109 | /*For an input pixel chain, find the best fit line. Only do the update based on new points. 110 | *For A*x=v, Least square estimation of x = Inv(A^T * A) * (A^T * v); 111 | *If some new observations are added, i.e, [A; A'] * x = [v; v'], 112 | *then x' = Inv(A^T * A + (A')^T * A') * (A^T * v + (A')^T * v'); 113 | *xCors: In, pointer to the X coordinates of pixel chain; 114 | *yCors: In, pointer to the Y coordinates of pixel chain; 115 | *offsetS:In, start index of this chain in array; 116 | *newOffsetS: In, start index of extended part; 117 | *offsetE:In, end index of this chain in array; 118 | *lineEquation: Out, [a,b] which are the coefficient of lines y=ax+b(horizontal) or x=ay+b(vertical); 119 | *return: line fit error; -1:error happens; 120 | */ 121 | double LeastSquaresLineFit_(unsigned int *xCors, unsigned int *yCors, 122 | unsigned int offsetS, unsigned int newOffsetS, 123 | unsigned int offsetE, std::array &lineEquation); 124 | /* Validate line based on the Helmholtz principle, which basically states that 125 | * for a structure to be perceptually meaningful, the expectation of this structure 126 | * by chance must be very low. 127 | */ 128 | bool LineValidation_(unsigned int *xCors, unsigned int *yCors, 129 | unsigned int offsetS, unsigned int offsetE, 130 | std::array &lineEquation, float &direction); 131 | bool bValidate_;//flag to decide whether line will be validated 132 | int ksize_; //the size of Gaussian kernel: ksize X ksize, default value is 5. 133 | float sigma_;//the sigma of Gaussian kernal, default value is 1.0. 134 | /*the threshold of pixel gradient magnitude. 135 | *Only those pixel whose gradient magnitude are larger than this threshold will be 136 | *taken as possible edge points. Default value is 36*/ 137 | short gradienThreshold_; 138 | /*If the pixel's gradient value is bigger than both of its neighbors by a 139 | *certain threshold (ANCHOR_THRESHOLD), the pixel is marked to be an anchor. 140 | *Default value is 8*/ 141 | unsigned char anchorThreshold_; 142 | /*anchor testing can be performed at different scan intervals, i.e., 143 | *every row/column, every second row/column etc. 144 | *Default value is 2*/ 145 | unsigned int scanIntervals_; 146 | int minLineLen_;//minimal acceptable line length 147 | /*For example, there two edges in the image: 148 | *edge1 = [(7,4), (8,5), (9,6),| (10,7)|, (11, 8), (12,9)] and 149 | *edge2 = [(14,9), (15,10), (16,11), (17,12),| (18, 13)|, (19,14)] ; then we store them as following: 150 | *pFirstPartEdgeX_ = [10, 11, 12, 18, 19];//store the first part of each edge[from middle to end] 151 | *pFirstPartEdgeY_ = [7, 8, 9, 13, 14]; 152 | *pFirstPartEdgeS_ = [0,3,5];// the index of start point of first part of each edge 153 | *pSecondPartEdgeX_ = [10, 9, 8, 7, 18, 17, 16, 15, 14];//store the second part of each edge[from middle to front] 154 | *pSecondPartEdgeY_ = [7, 6, 5, 4, 13, 12, 11, 10, 9];//anchor points(10, 7) and (18, 13) are stored again 155 | *pSecondPartEdgeS_ = [0, 4, 9];// the index of start point of second part of each edge 156 | *This type of storage order is because of the order of edge detection process. 157 | *For each edge, start from one anchor point, first go right, then go left or first go down, then go up*/ 158 | unsigned int *pFirstPartEdgeX_;//store the X coordinates of the first part of the pixels for chains 159 | unsigned int *pFirstPartEdgeY_;//store the Y coordinates of the first part of the pixels for chains 160 | unsigned int *pFirstPartEdgeS_;//store the start index of every edge chain in the first part arrays 161 | unsigned int *pSecondPartEdgeX_;//store the X coordinates of the second part of the pixels for chains 162 | unsigned int *pSecondPartEdgeY_;//store the Y coordinates of the second part of the pixels for chains 163 | unsigned int *pSecondPartEdgeS_;//store the start index of every edge chain in the second part arrays 164 | unsigned int *pAnchorX_;//store the X coordinates of anchors 165 | unsigned int *pAnchorY_;//store the Y coordinates of anchors 166 | cv::Mat edgeImage_; 167 | /*The threshold of line fit error; 168 | *If lineFitErr is large than this threshold, then 169 | *the pixel chain is not accepted as a single line segment.*/ 170 | double lineFitErrThreshold_; 171 | 172 | 173 | cv::Mat gImg_;//store the gradient image; 174 | cv::Mat dirImg_;//store the direction image 175 | double logNT_; 176 | cv::Mat_ ATA; //the previous matrix of A^T * A; 177 | cv::Mat_ ATV; //the previous vector of A^T * V; 178 | cv::Mat_ fitMatT; //the matrix used in line fit function; 179 | cv::Mat_ fitVec; //the vector used in line fit function; 180 | cv::Mat_ tempMatLineFit; //the matrix used in line fit function; 181 | cv::Mat_ tempVecLineFit; //the vector used in line fit function; 182 | 183 | 184 | /** Compare doubles by relative error. 185 | The resulting rounding error after floating point computations 186 | depend on the specific operations done. The same number computed by 187 | different algorithms could present different rounding errors. For a 188 | useful comparison, an estimation of the relative rounding error 189 | should be considered and compared to a factor times EPS. The factor 190 | should be related to the accumulated rounding error in the chain of 191 | computation. Here, as a simplification, a fixed factor is used. 192 | */ 193 | static int double_equal(double a, double b) 194 | { 195 | double abs_diff,aa,bb,abs_max; 196 | /* trivial case */ 197 | if( a == b ) return true; 198 | abs_diff = fabs(a-b); 199 | aa = fabs(a); 200 | bb = fabs(b); 201 | abs_max = aa > bb ? aa : bb; 202 | /* DBL_MIN is the smallest normalized number, thus, the smallest 203 | number whose relative error is bounded by DBL_EPSILON. For 204 | smaller numbers, the same quantization steps as for DBL_MIN 205 | are used. Then, for smaller numbers, a meaningful "relative" 206 | error should be computed by dividing the difference by DBL_MIN. */ 207 | if( abs_max < DBL_MIN ) abs_max = DBL_MIN; 208 | /* equal if relative error <= factor x eps */ 209 | return (abs_diff / abs_max) <= (RELATIVE_ERROR_FACTOR * DBL_EPSILON); 210 | } 211 | /** Computes the natural logarithm of the absolute value of 212 | the gamma function of x using the Lanczos approximation. 213 | See http://www.rskey.org/gamma.htm 214 | The formula used is 215 | @f[ 216 | \Gamma(x) = \frac{ \sum_{n=0}^{N} q_n x^n }{ \Pi_{n=0}^{N} (x+n) } 217 | (x+5.5)^{x+0.5} e^{-(x+5.5)} 218 | @f] 219 | so 220 | @f[ 221 | \log\Gamma(x) = \log\left( \sum_{n=0}^{N} q_n x^n \right) 222 | + (x+0.5) \log(x+5.5) - (x+5.5) - \sum_{n=0}^{N} \log(x+n) 223 | @f] 224 | and 225 | q0 = 75122.6331530, 226 | q1 = 80916.6278952, 227 | q2 = 36308.2951477, 228 | q3 = 8687.24529705, 229 | q4 = 1168.92649479, 230 | q5 = 83.8676043424, 231 | q6 = 2.50662827511. 232 | */ 233 | static double log_gamma_lanczos(double x) 234 | { 235 | static double q[7] = { 75122.6331530, 80916.6278952, 36308.2951477, 236 | 8687.24529705, 1168.92649479, 83.8676043424, 237 | 2.50662827511 }; 238 | double a = (x+0.5) * log(x+5.5) - (x+5.5); 239 | double b = 0.0; 240 | int n; 241 | for(n=0;n<7;n++){ 242 | a -= log( x + (double) n ); 243 | b += q[n] * pow( x, (double) n ); 244 | } 245 | return a + log(b); 246 | } 247 | /** Computes the natural logarithm of the absolute value of 248 | the gamma function of x using Windschitl method. 249 | See http://www.rskey.org/gamma.htm 250 | The formula used is 251 | @f[ 252 | \Gamma(x) = \sqrt{\frac{2\pi}{x}} \left( \frac{x}{e} 253 | \sqrt{ x\sinh(1/x) + \frac{1}{810x^6} } \right)^x 254 | @f] 255 | so 256 | @f[ 257 | \log\Gamma(x) = 0.5\log(2\pi) + (x-0.5)\log(x) - x 258 | + 0.5x\log\left( x\sinh(1/x) + \frac{1}{810x^6} \right). 259 | @f] 260 | This formula is a good approximation when x > 15. 261 | */ 262 | static double log_gamma_windschitl(double x) 263 | { 264 | return 0.918938533204673 + (x-0.5)*log(x) - x 265 | + 0.5*x*log( x*sinh(1/x) + 1/(810.0*pow(x,6.0)) ); 266 | } 267 | /** Computes -log10(NFA). 268 | NFA stands for Number of False Alarms: 269 | @f[ 270 | \mathrm{NFA} = NT \cdot B(n,k,p) 271 | @f] 272 | - NT - number of tests 273 | - B(n,k,p) - tail of binomial distribution with parameters n,k and p: 274 | @f[ 275 | B(n,k,p) = \sum_{j=k}^n 276 | \left(\begin{array}{c}n\\j\end{array}\right) 277 | p^{j} (1-p)^{n-j} 278 | @f] 279 | The value -log10(NFA) is equivalent but more intuitive than NFA: 280 | - -1 corresponds to 10 mean false alarms 281 | - 0 corresponds to 1 mean false alarm 282 | - 1 corresponds to 0.1 mean false alarms 283 | - 2 corresponds to 0.01 mean false alarms 284 | - ... 285 | Used this way, the bigger the value, better the detection, 286 | and a logarithmic scale is used. 287 | @param n,k,p binomial parameters. 288 | @param logNT logarithm of Number of Tests 289 | The computation is based in the gamma function by the following 290 | relation: 291 | @f[ 292 | \left(\begin{array}{c}n\\k\end{array}\right) 293 | = \frac{ \Gamma(n+1) }{ \Gamma(k+1) \cdot \Gamma(n-k+1) }. 294 | @f] 295 | We use efficient algorithms to compute the logarithm of 296 | the gamma function. 297 | To make the computation faster, not all the sum is computed, part 298 | of the terms are neglected based on a bound to the error obtained 299 | (an error of 10% in the result is accepted). 300 | */ 301 | static double nfa(int n, int k, double p, double logNT) 302 | { 303 | double tolerance = 0.1; /* an error of 10% in the result is accepted */ 304 | double log1term,term,bin_term,mult_term,bin_tail,err,p_term; 305 | int i; 306 | 307 | /* check parameters */ 308 | if( n<0 || k<0 || k>n || p<=0.0 || p>=1.0 ){ 309 | std::cout<<"nfa: wrong n, k or p values."< (double) n * p ) /* at begin or end of the tail? */ 335 | return -log1term / M_LN10 - logNT; /* end: use just the first term */ 336 | else 337 | return -logNT; /* begin: the tail is roughly 1 */ 338 | } 339 | 340 | /* compute more terms if needed */ 341 | bin_tail = term; 342 | for(i=k+1;i<=n;i++){ 343 | /* As 344 | term_i = bincoef(n,i) * p^i * (1-p)^(n-i) 345 | and 346 | bincoef(n,i)/bincoef(n,i-1) = n-i+1 / i, 347 | then, 348 | term_i / term_i-1 = (n-i+1)/i * p/(1-p) 349 | and 350 | term_i = term_i-1 * (n-i+1)/i * p/(1-p). 351 | p/(1-p) is computed only once and stored in 'p_term'. 352 | */ 353 | bin_term = (double) (n-i+1) / (double) i; 354 | mult_term = bin_term * p_term; 355 | term *= mult_term; 356 | bin_tail += term; 357 | if(bin_term<1.0){ 358 | /* When bin_term<1 then mult_term_ji. 359 | Then, the error on the binomial tail when truncated at 360 | the i term can be bounded by a geometric series of form 361 | term_i * sum mult_term_i^j. */ 362 | err = term * ( ( 1.0 - pow( mult_term, (double) (n-i+1) ) ) / 363 | (1.0-mult_term) - 1.0 ); 364 | /* One wants an error at most of tolerance*final_result, or: 365 | tolerance * abs(-log10(bin_tail)-logNT). 366 | Now, the error that can be accepted on bin_tail is 367 | given by tolerance*final_result divided by the derivative 368 | of -log10(x) when x=bin_tail. that is: 369 | tolerance * abs(-log10(bin_tail)-logNT) / (1/bin_tail) 370 | Finally, we truncate the tail if the error is less than: 371 | tolerance * abs(-log10(bin_tail)-logNT) * bin_tail */ 372 | if( err < tolerance * fabs(-log10(bin_tail)-logNT) * bin_tail ) break; 373 | } 374 | } 375 | return -log10(bin_tail) - logNT; 376 | } 377 | }; 378 | 379 | #endif /* EDLINEDETECTOR_HH_ */ 380 | -------------------------------------------------------------------------------- /CodeForLineMatching/removed/LineDescriptor.hh: -------------------------------------------------------------------------------- 1 | 2 | #ifndef LINEDESCRIPTOR_HH_ 3 | #define LINEDESCRIPTOR_HH_ 4 | 5 | 6 | #include "EDLineDetector.hh" 7 | #include "LineStructure.hh" 8 | 9 | 10 | #include 11 | struct OctaveLine{ 12 | unsigned int octaveCount;//the octave which this line is detected 13 | unsigned int lineIDInOctave;//the line ID in that octave image 14 | unsigned int lineIDInScaleLineVec;//the line ID in Scale line vector 15 | float lineLength; //the length of line in original image scale 16 | }; 17 | 18 | 19 | /* This class is used to generate the line descriptors from multi-scale images */ 20 | class LineDescriptor 21 | { 22 | public: 23 | LineDescriptor(); 24 | LineDescriptor(unsigned int numOfBand, unsigned int widthOfBand); 25 | ~LineDescriptor(); 26 | enum{ 27 | NearestNeighbor=0, //the nearest neighbor is taken as matching 28 | NNDR=1//nearest/next ratio 29 | }; 30 | /*This function is used to detect lines from multi-scale images.*/ 31 | int OctaveKeyLines(cv::Mat & image, ScaleLines &keyLines); 32 | int GetLineDescriptor(cv::Mat & image, 33 | ScaleLines &keyLines); 34 | int MatchLineByDescriptor(ScaleLines &keyLinesLeft, ScaleLines &keyLinesRight, 35 | std::vector &matchLeft, std::vector &matchRight, 36 | int criteria=NNDR); 37 | float LowestThreshold;//global threshold for line descriptor distance, default is 0.35 38 | float NNDRThreshold;//the NNDR threshold for line descriptor distance, default is 0.6 39 | private: 40 | 41 | void sample(float *igray,float *ogray, float factor, int width, int height) 42 | { 43 | 44 | int swidth = (int)((float) width / factor); 45 | int sheight = (int)((float) height / factor); 46 | 47 | for(int j=0; j < sheight; j++) 48 | for(int i=0; i < swidth; i++) 49 | ogray[j*swidth + i] = igray[(int)((float) j * factor) * width + (int) ((float) i*factor)]; 50 | 51 | } 52 | void sampleUchar(uchar *igray,uchar *ogray, float factor, int width, int height) 53 | { 54 | 55 | int swidth = (int)((float) width / factor); 56 | int sheight = (int)((float) height / factor); 57 | 58 | for(int j=0; j < sheight; j++) 59 | for(int i=0; i < swidth; i++) 60 | ogray[j*swidth + i] = igray[(int)((float) j * factor) * width + (int) ((float) i*factor)]; 61 | 62 | } 63 | /*Compute the line descriptor of input line set. This function should be called 64 | *after OctaveKeyLines() function; */ 65 | int ComputeLBD_(ScaleLines &keyLines); 66 | /*For each octave of image, we define an EDLineDetector, because we can get gradient images (dxImg, dyImg, gImg) 67 | *from the EDLineDetector class without extra computation cost. Another reason is that, if we use 68 | *a single EDLineDetector to detect lines in different octave of images, then we need to allocate and release 69 | *memory for gradient images (dxImg, dyImg, gImg) repeatedly for their varying size*/ 70 | std::vector edLineVec_; 71 | 72 | int ksize_; //the size of Gaussian kernel: ksize X ksize, default value is 5. 73 | unsigned int numOfOctave_;//the number of image octave 74 | unsigned int numOfBand_;//the number of band used to compute line descriptor 75 | unsigned int widthOfBand_;//the width of band; 76 | std::vector gaussCoefL_;//the local gaussian coefficient apply to the orthogonal line direction within each band; 77 | std::vector gaussCoefG_;//the global gaussian coefficient apply to each Row within line support region 78 | }; 79 | 80 | 81 | 82 | 83 | 84 | 85 | #endif /* LINEDESCRIPTOR_HH_ */ 86 | -------------------------------------------------------------------------------- /CodeForLineMatching/removed/LineMatchingAlgorithm.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "LineDescriptor.hh" 6 | #include 7 | #include "PairwiseLineMatching.hh" 8 | #include "test.hpp" 9 | 10 | using namespace std; 11 | int image_process(string img1path, string img2path, string outpath, string paramfilepath, bool saveLR = false) 12 | { 13 | //load first image from file 14 | std::string imageName1 = img1path; 15 | std::string imageName2 = img2path; 16 | cout << "imgProcess: " << imageName1 << " + " << imageName2 << " = " << outpath << endl; 17 | cv::Mat leftImage; 18 | cv::Mat rightImage; 19 | 20 | leftImage = imread(imageName1, cv::IMREAD_GRAYSCALE); // Read the file 21 | rightImage = imread(imageName2, cv::IMREAD_GRAYSCALE); // Read the file 22 | if (!leftImage.data || !rightImage.data) // Check for invalid input 23 | { 24 | cout << "Could not open or find the image" << std::endl; 25 | return -1; 26 | } 27 | 28 | unsigned int imageWidth = leftImage.cols; //图片的宽与高 29 | unsigned int imageHeight = leftImage.rows; 30 | 31 | srand((unsigned)time(0)); 32 | int lowest = 100, highest = 255; 33 | int range = (highest - lowest) + 1; 34 | unsigned int r, g, b; //the color of lines 35 | 36 | //initial variables 37 | cv::Mat leftColorImage(leftImage.size(), CV_8UC3); 38 | cv::Mat rightColorImage(rightImage.size(), CV_8UC3); 39 | 40 | cvtColor(leftImage, leftColorImage, cv::COLOR_GRAY2RGB); 41 | cvtColor(rightImage, rightColorImage, cv::COLOR_GRAY2RGB); 42 | 43 | ///////////#################################################################### 44 | ///////////#################################################################### 45 | //extract lines, compute their descriptors and match lines 46 | //提取线段,计算descriptor并进行线段匹配 47 | LineDescriptor lineDesc; 48 | PairwiseLineMatching lineMatch; 49 | 50 | ScaleLines linesInLeft; 51 | ScaleLines linesInRight; 52 | std::vector matchResult; 53 | 54 | lineDesc.GetLineDescriptor(leftImage, linesInLeft); 55 | lineDesc.GetLineDescriptor(rightImage, linesInRight); 56 | //TODO remove BIAS dependecies in PairwiseMatching 57 | lineMatch.LineMatching(linesInLeft, linesInRight, matchResult); 58 | //save the param of matching 59 | if(!paramfilepath.empty()) 60 | { 61 | svScaleLines(linesInLeft,paramfilepath,"Llines"); 62 | svScaleLines(linesInRight,paramfilepath,"Rlines"); 63 | svMatchResult(matchResult,paramfilepath,"MatchRes"); 64 | } 65 | ///////////#################################################################### 66 | ///////////#################################################################### 67 | //draw extracted lines into images 68 | cv::Point startPoint; 69 | cv::Point endPoint; 70 | cv::Point point; 71 | 72 | for (unsigned int i = 0; i < linesInLeft.size(); i++) 73 | { 74 | r = lowest + int(rand() % range); 75 | g = lowest + int(rand() % range); 76 | b = lowest + int(rand() % range); 77 | startPoint = cv::Point(int(linesInLeft[i][0].startPointX), int(linesInLeft[i][0].startPointY)); 78 | endPoint = cv::Point(int(linesInLeft[i][0].endPointX), int(linesInLeft[i][0].endPointY)); 79 | cv::line(leftColorImage, startPoint, endPoint, cv::Scalar(r, g, b)); 80 | } 81 | for (unsigned int i = 0; i < linesInRight.size(); i++) 82 | { 83 | r = lowest + int(rand() % range); 84 | g = lowest + int(rand() % range); 85 | b = lowest + int(rand() % range); 86 | startPoint = cv::Point(int(linesInRight[i][0].startPointX), int(linesInRight[i][0].startPointY)); 87 | endPoint = cv::Point(int(linesInRight[i][0].endPointX), int(linesInRight[i][0].endPointY)); 88 | cv::line(rightColorImage, startPoint, endPoint, cv::Scalar(r, g, b)); 89 | } 90 | if (saveLR) 91 | { 92 | imwrite("LinesInImage1.png", leftColorImage); 93 | imwrite("LinesInImage2.png", rightColorImage); 94 | } 95 | //TODO enable after BIAS dependecies in PairwiseMatching have been removed 96 | // ///////////#################################################################### 97 | // ///////////#################################################################### 98 | // //store the matching results of the first and second images into a single image 99 | double ww1, ww2; 100 | int lineIDLeft; 101 | int lineIDRight; 102 | int lowest1 = 0, highest1 = 255; 103 | int range1 = (highest1 - lowest1) + 1; 104 | std::vector r1(matchResult.size() / 2), g1(matchResult.size() / 2), b1(matchResult.size() / 2); //the color of lines 105 | 106 | for (unsigned int pair = 0; pair < matchResult.size() / 2; pair++) 107 | { 108 | r1[pair] = lowest1 + int(rand() % range1); 109 | g1[pair] = lowest1 + int(rand() % range1); 110 | b1[pair] = 255 - r1[pair]; 111 | ww1 = 0.2 * (rand() % 5); 112 | ww2 = 1 - ww1; 113 | char buf[10]; 114 | sprintf(buf, "%d ", pair); 115 | lineIDLeft = matchResult[2 * pair]; 116 | lineIDRight = matchResult[2 * pair + 1]; 117 | startPoint = cv::Point(int(linesInLeft[lineIDLeft][0].startPointX), int(linesInLeft[lineIDLeft][0].startPointY)); 118 | endPoint = cv::Point(int(linesInLeft[lineIDLeft][0].endPointX), int(linesInLeft[lineIDLeft][0].endPointY)); 119 | cv::line(leftColorImage, startPoint, endPoint, CV_RGB(r1[pair], g1[pair], b1[pair]), 4, cv::LINE_AA, 0); 120 | startPoint = cv::Point(int(linesInRight[lineIDRight][0].startPointX), int(linesInRight[lineIDRight][0].startPointY)); 121 | endPoint = cv::Point(int(linesInRight[lineIDRight][0].endPointX), int(linesInRight[lineIDRight][0].endPointY)); 122 | cv::line(rightColorImage, startPoint, endPoint, CV_RGB(r1[pair], g1[pair], b1[pair]), 4, cv::LINE_AA, 0); 123 | } 124 | 125 | cv::Mat cvResultColorImage1 = cv::Mat(cv::Size(imageWidth * 2, imageHeight), leftColorImage.type(), 3); 126 | cv::Mat cvResultColorImage2 = cv::Mat(cv::Size(imageWidth * 2, imageHeight), leftColorImage.type(), 3); 127 | cv::Mat cvResultColorImage = cv::Mat(cv::Size(imageWidth * 2, imageHeight), leftColorImage.type(), 3); 128 | cv::Mat roi = cvResultColorImage1(cv::Rect(0, 0, imageWidth, imageHeight)); 129 | cv::resize(leftColorImage, roi, roi.size(), 0, 0, 0); 130 | 131 | cv::Mat roi2 = cvResultColorImage1(cv::Rect(imageWidth, 0, imageWidth, imageHeight)); 132 | cv::resize(rightColorImage, roi2, roi2.size(), 0, 0, 0); 133 | cvResultColorImage1.copyTo(cvResultColorImage2); 134 | 135 | for (unsigned int pair = 0; pair < matchResult.size() / 2; pair++) 136 | { 137 | lineIDLeft = matchResult[2 * pair]; 138 | lineIDRight = matchResult[2 * pair + 1]; 139 | startPoint = cv::Point(int(linesInLeft[lineIDLeft][0].startPointX), int(linesInLeft[lineIDLeft][0].startPointY)); 140 | endPoint = cv::Point(int(linesInRight[lineIDRight][0].startPointX + imageWidth), int(linesInRight[lineIDRight][0].startPointY)); 141 | cv::line(cvResultColorImage2, startPoint, endPoint, CV_RGB(r1[pair], g1[pair], b1[pair]), 1, cv::LINE_AA, 0); 142 | } 143 | cv::addWeighted(cvResultColorImage1, 0.5, cvResultColorImage2, 0.5, 0.0, cvResultColorImage, -1); 144 | 145 | cv::imwrite(outpath+".png", cvResultColorImage); 146 | cvResultColorImage.release(); 147 | cvResultColorImage1.release(); 148 | cvResultColorImage2.release(); 149 | leftImage.release(); 150 | rightImage.release(); 151 | leftColorImage.release(); 152 | rightColorImage.release(); 153 | roi.release(); 154 | roi2.release(); 155 | 156 | cout << "number of total matches = " << matchResult.size() / 2 << endl; 157 | matchResult.clear(); 158 | linesInLeft.clear(); 159 | linesInRight.clear(); 160 | 161 | } 162 | -------------------------------------------------------------------------------- /CodeForLineMatching/removed/LineStructure.hh: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef LINESTRUCTURE_HH_ 4 | #define LINESTRUCTURE_HH_ 5 | 6 | #include 7 | // A 2D line (normal equation parameters). 8 | struct SingleLine 9 | { 10 | //note: rho and theta are based on coordinate origin, i.e. the top-left corner of image 11 | double rho;//unit: pixel length 12 | double theta;//unit: rad 13 | double linePointX;// = rho * cos(theta); 14 | double linePointY;// = rho * sin(theta); 15 | //for EndPoints, the coordinate origin is the top-left corner of image. 16 | double startPointX; 17 | double startPointY; 18 | double endPointX; 19 | double endPointY; 20 | //direction of a line, the angle between positive line direction (dark side is in the left) and positive X axis. 21 | double direction; 22 | //mean gradient magnitude 23 | double gradientMagnitude; 24 | //mean gray value of pixels in dark side of line 25 | double darkSideGrayValue; 26 | //mean gray value of pixels in light side of line 27 | double lightSideGrayValue; 28 | //the length of line 29 | double lineLength; 30 | //the width of line; 31 | double width; 32 | //number of pixels 33 | int numOfPixels; 34 | //the decriptor of line 35 | std::vector descriptor; 36 | }; 37 | 38 | // Specifies a vector of lines. 39 | typedef std::vector Lines_list; 40 | 41 | struct OctaveSingleLine 42 | { 43 | /*endPoints, the coordinate origin is the top-left corner of the original image. 44 | *startPointX = sPointInOctaveX * (factor)^octaveCount; */ 45 | float startPointX; 46 | float startPointY; 47 | float endPointX; 48 | float endPointY; 49 | //endPoints, the coordinate origin is the top-left corner of the octave image. 50 | float sPointInOctaveX; 51 | float sPointInOctaveY; 52 | float ePointInOctaveX; 53 | float ePointInOctaveY; 54 | //direction of a line, the angle between positive line direction (dark side is in the left) and positive X axis. 55 | float direction; 56 | //the summation of gradient magnitudes of pixels on lines 57 | float salience; 58 | //the length of line 59 | float lineLength; 60 | //number of pixels 61 | unsigned int numOfPixels; 62 | //the octave which this line is detected 63 | unsigned int octaveCount; 64 | //the decriptor of line 65 | std::vector descriptor; 66 | }; 67 | 68 | // Specifies a vector of lines. 69 | typedef std::vector LinesVec; 70 | 71 | typedef std::vector ScaleLines;//each element in ScaleLines is a vector of lines which corresponds the same line detected in different octave images. 72 | 73 | #endif /* LINESTRUCTURE_HH_ */ 74 | -------------------------------------------------------------------------------- /CodeForLineMatching/removed/PairwiseLineMatching.hh: -------------------------------------------------------------------------------- 1 | /* 2 | * PairwiseLineMatching.hh 3 | * 4 | * Created on: 2011-8-19 5 | * Author: lz 6 | */ 7 | 8 | #ifndef PAIRWISELINEMATCHING_HH_ 9 | #define PAIRWISELINEMATCHING_HH_ 10 | #include 11 | #include 12 | #include "LineDescriptor.hh" 13 | #include 14 | 15 | 16 | //each node in the graph is a possible line matching pair in the left and right image 17 | struct Node{ 18 | unsigned int leftLineID;//the index of line in the left image 19 | unsigned int rightLineID;//the index of line in the right image 20 | }; 21 | 22 | // Specifies a vector of nodes. 23 | typedef std::vector Nodes_list; 24 | 25 | struct CompareL { 26 | bool operator() (const double& lhs, const double& rhs) const 27 | {return lhs>rhs;} 28 | }; 29 | typedef std::multimap EigenMAP; 30 | struct CompareS { 31 | bool operator() (const double& lhs, const double& rhs) const 32 | {return lhs DISMAP; 35 | 36 | class PairwiseLineMatching 37 | { 38 | public: 39 | PairwiseLineMatching(){}; 40 | void LineMatching(ScaleLines &linesInLeft,ScaleLines &linesInRight, std::vector &matchResult); 41 | ~PairwiseLineMatching(){}; 42 | 43 | private: 44 | /* Compute the approximate global rotation angle between image pair(i.e. the left and right images). 45 | * As shown in Bin Fan's work "Robust line matching through line-point invariants", this approximate 46 | * global rotation angle can greatly prune the spurious line correspondences. This is the idea of their 47 | * fast matching version. Nevertheless, the approaches to estimate the approximate global rotation angle 48 | * are different. Their is based on the rotation information included in the matched point feature(such as SIFT) 49 | * while ours is computed from angle histograms of lines in images. Our approach also detect whether there is an 50 | * appropriate global rotation angle between image pair. 51 | * step 1: Get the angle histograms of detected lines in the left and right images, respectively; 52 | * step 2: Search the shift angle between two histograms to minimize their difference. Take this shift angle as 53 | * approximate global rotation angle between image pair. 54 | * input: detected lines in the left and right images 55 | * return: the global rotation angle 56 | */ 57 | double GlobalRotationOfImagePair_(ScaleLines &linesInLeft, ScaleLines &linesInRight); 58 | /* Build the symmetric non-negative adjacency matrix M, whose nodes are the potential assignments a = (i_l, j_r) 59 | * and whose weights on edges measure the agreements between pairs of potential assignments. That is where the pairwise 60 | * constraints are applied(c.f. A spectral technique for correspondence problems using pairwise constraints, M.Leordeanu). 61 | */ 62 | void BuildAdjacencyMatrix_(ScaleLines &linesInLeft,ScaleLines &linesInRight); 63 | /* Get the final matching from the principal eigenvector. 64 | */ 65 | void MatchingResultFromPrincipalEigenvector_(ScaleLines &linesInLeft,ScaleLines &linesInRight, 66 | std::vector &matchResult); 67 | double globalRotationAngle_;//the approximate global rotation angle between image pairs 68 | 69 | /*construct a map to store the principal eigenvector and its index. 70 | *each pair in the map is in this form (eigenvalue, index); 71 | *Note that, we use eigenvalue as key in the map and index as their value. 72 | *This is because the map need be sorted by the eigenvalue rather than index 73 | *for our purpose. 74 | */ 75 | EigenMAP eigenMap_; 76 | Nodes_list nodesList_;//save all the possible matched line pairs 77 | double minOfEigenVec_;//the acceptable minimal value in the principal eigen vector; 78 | }; 79 | 80 | 81 | 82 | 83 | #endif /* PAIRWISELINEMATCHING_HH_ */ 84 | -------------------------------------------------------------------------------- /CodeForLineMatching/removed/Untitled1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | int main(){ 4 | return 0; 5 | } 6 | -------------------------------------------------------------------------------- /CodeForLineMatching/removed/Untitled1.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/CodeForLineMatching/removed/Untitled1.exe -------------------------------------------------------------------------------- /CodeForLineMatching/removed/test.hpp: -------------------------------------------------------------------------------- 1 | #ifndef TEST_HPP 2 | #define TEST_HPP 3 | #include "LineDescriptor.hh" 4 | #include 5 | using namespace std; 6 | void svScaleLines(ScaleLines &sl,string filename,string subname) 7 | { 8 | int j; 9 | int i; 10 | int k; 11 | ofstream savefile(filename + subname + ".txt"); 12 | for(i = 0;i matchresult, string filename, string subname) 40 | { 41 | int i; 42 | ofstream savefile(filename + subname + ".txt"); 43 | for(i = 0;i 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #include 21 | #include 22 | 23 | #include 24 | // #include 25 | // #include 26 | // #include 27 | // #include 28 | // #include 29 | // #include 30 | // #include 31 | // #include 32 | // #include 33 | 34 | 35 | using namespace std; 36 | using namespace cv; 37 | 38 | struct SEGMENT { 39 | float x1, y1, x2, y2, angle; 40 | int label; 41 | }; 42 | 43 | struct Point4f { 44 | float x1,y1,x2,y2; 45 | }; 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /Multiple Homography Estimation via Stereo Line Matching for Textureless Indoor Scenes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scottwon/LineMatching/11d9acf514f0b121f5ff6fdd2cbb63720b46ab8a/Multiple Homography Estimation via Stereo Line Matching for Textureless Indoor Scenes.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Multiple Homography Estimation via Stereo Line Matching for Textureless Indoor Scenes 2 | 3 | I have done the oral presentation on this topic on the International Conference on Control, Automation and Robotics(ICCAR2019). This paper can be found online at: https://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText=iccar&tdsourcetag=s_pctim_aiomsg. 4 | 5 | The major contributions of this paper are: 6 | 7 | 1. Developed a unified approach for line detection and stereo matching that can produce appealing results in indoor textureless scenes. 8 | 9 | 2. Proposed a co-planar line classification algorithm. 10 | 11 | 3. Pointed out that the compatibility of multiple homographies can be improved by enforcing the epipolar line constraints. 12 | 13 | The code here is our hybrid algorithm for line detection and stereo matching. 14 | 15 | In https://github.com/slslam/slslam, J. Lee, S. Lee, G. Zhang, J. Lim and I. Suh proposed a Canny-based line extractor and integrated it with the MSLD descriptor for line detection and matching. It is shown that this line detection algorithm is capable of detecting weak textures as well as generating non-fragmented line segments. 16 | 17 | In https://github.com/mtamburrano/LBD_Descriptor, L. Zhang and R. Koch proposed the LBD descriptor for line matching. According to them, LBD descriptor is more efficient to compute and it is faster to generate the matching results than the state-of-the-art methods. 18 | 19 | However, there are a couple of drawbacks of the originally proposed LBD-based approach. First, in the originally proposed LBD-based approach, LBD descriptor is incorporated with EDLine detector and the latter is proved to be inefficient to detect low-contrast edges in our experiments. Second, in the originally proposed LBD-based approach, efforts are made to overcome the scale changes and the global rotation, which won't produce any improvement in our cases given that we apply the algorithm to calibrated, stereo cameras. 20 | 21 | Our code has the advantages of both the Canny+MSLD approach and the EDLine+LBD approach and it can produce superior results in the indoor textureless scenes. 22 | --------------------------------------------------------------------------------