Debut Tests ASIFT + Essai VISP simplifié

This commit is contained in:
Unknown 2018-07-23 17:30:57 +02:00
parent a41f1ba991
commit fbafece5af
1339 changed files with 153161 additions and 56 deletions

View file

@ -0,0 +1,246 @@
#include "ASIFT_matcher.hpp"
ASIFT_matcher::ASIFT_matcher()
{
default_sift_parameters(_siftParam);
}
ASIFT_matcher::~ASIFT_matcher()
{
}
bool ASIFT_matcher::addReference(const char* image, int num_tilts = 1)
{
///// Read input
float * iarr1;
size_t w1, h1;
if (NULL == (iarr1 = read_png_f32_gray(image, &w1, &h1))) {
std::cerr << "Unable to load image file " << image << std::endl;
return false;
}
std::vector<float> ipixels1(iarr1, iarr1 + w1 * h1);
free(iarr1); /*memcheck*/
///// Resize the images to area wS*hW in remaining the apsect-ratio
///// Resize if the resize flag is not set or if the flag is set unequal to 0
float wS = IM_X;
float hS = IM_Y;
float zoom1=0;
int wS1=0, hS1=0;
vector<float> ipixels1_zoom;
if(resize_imgs)
{
cout << "WARNING: The input image is resized to " << wS << "x" << hS << " for ASIFT. " << endl
<< " But the results will be normalized to the original image size." << endl << endl;
float InitSigma_aa = 1.6;
float fproj_p, fproj_bg;
char fproj_i;
float *fproj_x4, *fproj_y4;
int fproj_o;
fproj_o = 3;
fproj_p = 0;
fproj_i = 0;
fproj_bg = 0;
fproj_x4 = 0;
fproj_y4 = 0;
float areaS = wS * hS;
// Resize image 1
float area1 = w1 * h1;
zoom1 = sqrt(area1/areaS);
wS1 = (int) (w1 / zoom1);
hS1 = (int) (h1 / zoom1);
int fproj_sx = wS1;
int fproj_sy = hS1;
float fproj_x1 = 0;
float fproj_y1 = 0;
float fproj_x2 = wS1;
float fproj_y2 = 0;
float fproj_x3 = 0;
float fproj_y3 = hS1;
/* Anti-aliasing filtering along vertical direction */
if ( zoom1 > 1 )
{
float sigma_aa = InitSigma_aa * zoom1 / 2;
GaussianBlur1D(ipixels1,w1,h1,sigma_aa,1);
GaussianBlur1D(ipixels1,w1,h1,sigma_aa,0);
}
// simulate a tilt: subsample the image along the vertical axis by a factor of t.
ipixels1_zoom.resize(wS1*hS1);
fproj (ipixels1, ipixels1_zoom, w1, h1, &fproj_sx, &fproj_sy, &fproj_bg, &fproj_o, &fproj_p,
&fproj_i , fproj_x1 , fproj_y1 , fproj_x2 , fproj_y2 , fproj_x3 , fproj_y3, fproj_x4, fproj_y4);
}
else
{
ipixels1_zoom.resize(w1*h1);
ipixels1_zoom = ipixels1;
wS1 = w1;
hS1 = h1;
zoom1 = 1;
}
// image new_ref;
// new_ref.img = ipixels1_zoom;
// new_ref.width = wS1;
// new_ref.height = hS1;
///// Compute ASIFT keypoints
vector< vector< keypointslist > > keys;
int num_keys = 0;
time_t tstart, tend;
tstart = time(0);
num_keys = compute_asift_keypoints(ipixels1_zoom, wS1, hS1, num_tilts, _verb, keys, _siftParam);
tend = time(0);
//Save data
_im_refs.push_back(ipixels1_zoom);
_size_refs.push_back(make_pair(wS1,hS1));
_num_keys.push_back(num_keys);
_num_tilts.push_back(num_tilts);
_keys.push_back(keys);
_nb_refs++;
cout<<"Reference built in "<< difftime(tend, tstart) << " seconds." << endl;
cout<<" "<< num_keys <<" ASIFT keypoints found in "<< image << endl;
return true;
}
bool ASIFT_matcher::match(const char* image, int num_tilts = 1)
{
if(_nb_refs<=0)
{
cout<<"ASIFT_matcher Error : Trying to match without reference"<<endl;
return false;
}
///// Read input
float * iarr1;
size_t w1, h1;
if (NULL == (iarr1 = read_png_f32_gray(image, &w1, &h1))) {
std::cerr << "Unable to load image file " << image << std::endl;
return 1;
}
std::vector<float> ipixels1(iarr1, iarr1 + w1 * h1);
free(iarr1); /*memcheck*/
///// Resize the images to area wS*hW in remaining the apsect-ratio
///// Resize if the resize flag is not set or if the flag is set unequal to 0
float wS = IM_X;
float hS = IM_Y;
float zoom1=0;
int wS1=0, hS1=0;
vector<float> ipixels1_zoom;
if(resize_imgs)
{
cout << "WARNING: The input image is resized to " << wS << "x" << hS << " for ASIFT. " << endl
<< " But the results will be normalized to the original image size." << endl << endl;
float InitSigma_aa = 1.6;
float fproj_p, fproj_bg;
char fproj_i;
float *fproj_x4, *fproj_y4;
int fproj_o;
fproj_o = 3;
fproj_p = 0;
fproj_i = 0;
fproj_bg = 0;
fproj_x4 = 0;
fproj_y4 = 0;
float areaS = wS * hS;
// Resize image 1
float area1 = w1 * h1;
zoom1 = sqrt(area1/areaS);
wS1 = (int) (w1 / zoom1);
hS1 = (int) (h1 / zoom1);
int fproj_sx = wS1;
int fproj_sy = hS1;
float fproj_x1 = 0;
float fproj_y1 = 0;
float fproj_x2 = wS1;
float fproj_y2 = 0;
float fproj_x3 = 0;
float fproj_y3 = hS1;
/* Anti-aliasing filtering along vertical direction */
if ( zoom1 > 1 )
{
float sigma_aa = InitSigma_aa * zoom1 / 2;
GaussianBlur1D(ipixels1,w1,h1,sigma_aa,1);
GaussianBlur1D(ipixels1,w1,h1,sigma_aa,0);
}
// simulate a tilt: subsample the image along the vertical axis by a factor of t.
ipixels1_zoom.resize(wS1*hS1);
fproj (ipixels1, ipixels1_zoom, w1, h1, &fproj_sx, &fproj_sy, &fproj_bg, &fproj_o, &fproj_p,
&fproj_i , fproj_x1 , fproj_y1 , fproj_x2 , fproj_y2 , fproj_x3 , fproj_y3, fproj_x4, fproj_y4);
}
else
{
ipixels1_zoom.resize(w1*h1);
ipixels1_zoom = ipixels1;
wS1 = w1;
hS1 = h1;
zoom1 = 1;
}
///// Compute ASIFT keypoints
vector< vector< keypointslist > > keys;
int num_keys = 0;
time_t tstart, tend;
tstart = time(0);
num_keys = compute_asift_keypoints(ipixels1_zoom, wS1, hS1, num_tilts, _verb, keys, _siftParam);
tend = time(0);
cout << "Keypoints computation accomplished in " << difftime(tend, tstart) << " seconds." << endl;
//// Match ASIFT keypoints
int num_matchings;
matchingslist matchings;
_num_matchings.clear();
_matchings.clear();
for(unsigned int i = 0; i<_nb_refs;i++)
{
cout << "Matching the keypoints..." << endl;
tstart = time(0);
num_matchings = compute_asift_matches(num_tilts, _num_tilts[i], wS1, hS1, _size_refs[i].first, _size_refs[i].second, _verb, keys, _keys[i], matchings, _siftParam);
tend = time(0);
cout << "Keypoints matching accomplished in " << difftime(tend, tstart) << " seconds." << endl;
_num_matchings.push_back(num_matchings);
_matchings.push_back(matchings);
}
return true;
}

View file

@ -0,0 +1,63 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <vector>
using namespace std;
#ifdef _OPENMP
#include <omp.h>
#endif
#include "demo_lib_sift.h"
#include "io_png/io_png.h"
#include "library.h"
#include "frot.h"
#include "fproj.h"
#include "compute_asift_keypoints.h"
#include "compute_asift_matches.h"
# define IM_X 800
# define IM_Y 600
// struct image
// {
// vector<float> img;
// int width;
// int height;
// } image;
class ASIFT_matcher
{
public:
ASIFT_matcher();
virtual ~ASIFT_matcher();
bool addReference(const char* image, int num_tilts);
bool match(const char* image, int num_tilts);
protected:
//QUESCEQUESAI
int _verb = 0;
//Reference Images
// vector< image > _im_refs;
unsigned int _nb_refs = 0;
vector< vector< float > > _im_refs;
vector< pair<int,int> > _size_refs; //Width/Height
//ASIFT Keypoints
vector< int > _num_keys;
vector< int > _num_tilts; //Speed VS Precision
vector< vector< vector< keypointslist > > > _keys;
//Matchs
vector < int > _num_matchings;
vector< matchingslist > _matchings;
siftPar _siftParam;
//Flags
bool resize_imgs = false;
};

View file

@ -0,0 +1,361 @@
# This is the CMakeCache file.
# For build in directory: /home/harle/catkin_ws/src/demo_ASIFT_src
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Value Computed by CMake
ASIFT_BINARY_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src
//Value Computed by CMake
ASIFT_SOURCE_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
CMAKE_BUILD_TYPE:STRING=
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler.
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//Flags used by the compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
//Flags used by the compiler during debug builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the compiler during release minsize builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the compiler during release builds (/MD /Ob1 /Oi
// /Ot /Oy /Gs will produce slightly less optimized but smaller
// files).
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the compiler during Release with Debug Info builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//C compiler.
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
//Flags used by the compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the compiler during debug builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the compiler during release minsize builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the compiler during release builds (/MD /Ob1 /Oi
// /Ot /Oy /Gs will produce slightly less optimized but smaller
// files).
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the compiler during Release with Debug Info builds.
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Flags used by the linker.
CMAKE_EXE_LINKER_FLAGS:STRING=' '
//Flags used by the linker during debug builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Flags used by the linker during the creation of modules.
CMAKE_MODULE_LINKER_FLAGS:STRING=' '
//Flags used by the linker during debug builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=ASIFT
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Flags used by the linker during the creation of dll's.
CMAKE_SHARED_LINKER_FLAGS:STRING=' '
//Flags used by the linker during debug builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the linker during the creation of static libraries.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the linker during debug builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during release minsize builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during release builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during Release with Debug Info builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//If true, cmake will use relative paths in makefiles and projects.
CMAKE_USE_RELATIVE_PATHS:BOOL=OFF
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Dependencies for target
Match_LIB_DEPENDS:STATIC=
//Dependencies for target
Numerics_LIB_DEPENDS:STATIC=
//C++ compiler flags for OpenMP parallization
OpenMP_CXX_FLAGS:STRING=-fopenmp
//C compiler flags for OpenMP parallization
OpenMP_C_FLAGS:STRING=-fopenmp
//Value Computed by CMake
libMatch_BINARY_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch
//Value Computed by CMake
libMatch_SOURCE_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch
//Value Computed by CMake
libNumerics_BINARY_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics
//Value Computed by CMake
libNumerics_SOURCE_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics
//Value Computed by CMake
png_BINARY_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/png
//Dependencies for the target
png_LIB_DEPENDS:STATIC=general;zlib;
//Value Computed by CMake
png_SOURCE_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/png
//Value Computed by CMake
zlib_BINARY_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/zlib
//Dependencies for target
zlib_LIB_DEPENDS:STATIC=
//Value Computed by CMake
zlib_SOURCE_DIR:STATIC=/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/zlib
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_BUILD_TOOL
CMAKE_BUILD_TOOL-ADVANCED:INTERNAL=1
//What is the target build tool cmake is generating for.
CMAKE_BUILD_TOOL:INTERNAL=/usr/bin/make
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/harle/catkin_ws/src/demo_ASIFT_src
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=2
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=8
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=12
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Start directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/harle/catkin_ws/src/demo_ASIFT_src
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=7
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake-2.8
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/bin/uname
//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS
CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding OpenMP
FIND_PACKAGE_MESSAGE_DETAILS_OpenMP:INTERNAL=[-fopenmp][-fopenmp][v()]
//ADVANCED property for variable: OpenMP_CXX_FLAGS
OpenMP_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OpenMP_C_FLAGS
OpenMP_C_FLAGS-ADVANCED:INTERNAL=1
//Test OpenMP_FLAG_DETECTED
OpenMP_FLAG_DETECTED:INTERNAL=1

View file

@ -0,0 +1,56 @@
set(CMAKE_C_COMPILER "/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "4.8.4")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View file

@ -0,0 +1,57 @@
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "4.8.4")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View file

@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-4.4.0-130-generic")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "4.4.0-130-generic")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-4.4.0-130-generic")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "4.4.0-130-generic")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View file

@ -0,0 +1,389 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__)
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100)
#elif defined(__SUNPRO_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_C = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__)
# if defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
# else
# if __IBMC__ >= 800
# define COMPILER_ID "XL"
# else
# define COMPILER_ID "VisualAge"
# endif
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
/* Analog VisualDSP++ >= 4.5.6 */
#elif defined(__VISUALDSPVERSION__)
# define COMPILER_ID "ADSP"
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
/* Analog VisualDSP++ < 4.5.6 */
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
/* IAR Systems compiler for embedded systems.
http://www.iar.com */
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
/* sdcc, the small devices C compiler for embedded systems,
http://sdcc.sourceforge.net */
#elif defined(SDCC)
# define COMPILER_ID "SDCC"
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
# define COMPILER_ID "MIPSpro"
# if defined(_SGI_COMPILER_VERSION)
/* _SGI_COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
# else
/* _COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
# endif
/* This compiler is either not known or is too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__sgi)
# define COMPILER_ID "MIPSpro"
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
# define PLATFORM_ID "IRIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#else /* unknown platform */
# define PLATFORM_ID ""
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM)
# define ARCHITECTURE_ID "ARM"
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID ""
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
(void)argv;
return require;
}
#endif

View file

@ -0,0 +1,377 @@
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__COMO__)
# define COMPILER_ID "Comeau"
/* __COMO_VERSION__ = VRR */
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
#elif defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
/* __INTEL_COMPILER = VRP */
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__)
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100)
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__)
# if defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
# else
# if __IBMCPP__ >= 800
# define COMPILER_ID "XL"
# else
# define COMPILER_ID "VisualAge"
# endif
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__GNUC__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
/* Analog VisualDSP++ >= 4.5.6 */
#elif defined(__VISUALDSPVERSION__)
# define COMPILER_ID "ADSP"
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
/* Analog VisualDSP++ < 4.5.6 */
#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
/* IAR Systems compiler for embedded systems.
http://www.iar.com */
#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
# define COMPILER_ID "MIPSpro"
# if defined(_SGI_COMPILER_VERSION)
/* _SGI_COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
# else
/* _COMPILER_VERSION = VRP */
# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
# endif
/* This compiler is either not known or is too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__sgi)
# define COMPILER_ID "MIPSpro"
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
# define PLATFORM_ID "IRIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#else /* unknown platform */
# define PLATFORM_ID ""
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM)
# define ARCHITECTURE_ID "ARM"
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID ""
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number components. */
#ifdef COMPILER_VERSION_MAJOR
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
(void)argv;
return require;
}

View file

@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# Relative path conversion top directories.
SET(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/harle/catkin_ws/src/demo_ASIFT_src")
SET(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/harle/catkin_ws/src/demo_ASIFT_src")
# Force unix paths in dependencies.
SET(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

View file

@ -0,0 +1,313 @@
The system is: Linux - 4.4.0-130-generic - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/cc
Build flags:
Id flags:
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
The C compiler identification is GNU, found in "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/2.8.12.2/CompilerIdC/a.out"
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++
Build flags:
Id flags:
The output was:
0
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
The CXX compiler identification is GNU, found in "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out"
Determining if the C compiler works passed with the following output:
Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec3822325258/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3822325258.dir/build.make CMakeFiles/cmTryCompileExec3822325258.dir/build
make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec3822325258.dir/testCCompiler.c.o
/usr/bin/cc -o CMakeFiles/cmTryCompileExec3822325258.dir/testCCompiler.c.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTryCompileExec3822325258
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3822325258.dir/link.txt --verbose=1
/usr/bin/cc CMakeFiles/cmTryCompileExec3822325258.dir/testCCompiler.c.o -o cmTryCompileExec3822325258 -rdynamic
make[1]: Leaving directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec3979303902/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3979303902.dir/build.make CMakeFiles/cmTryCompileExec3979303902.dir/build
make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o
/usr/bin/cc -o CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c
Linking C executable cmTryCompileExec3979303902
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3979303902.dir/link.txt --verbose=1
/usr/bin/cc -v CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec3979303902 -rdynamic
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3979303902' '-rdynamic' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec3979303902 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
make[1]: Leaving directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
Parsed C implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec3979303902/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec3979303902.dir/build.make CMakeFiles/cmTryCompileExec3979303902.dir/build]
ignore line: [make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp']
ignore line: [/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1]
ignore line: [Building C object CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/cc -o CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c]
ignore line: [Linking C executable cmTryCompileExec3979303902]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3979303902.dir/link.txt --verbose=1]
ignore line: [/usr/bin/cc -v CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec3979303902 -rdynamic ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3979303902' '-rdynamic' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec3979303902 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2] ==> ignore
arg [--sysroot=/] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-export-dynamic] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTryCompileExec3979303902] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..]
arg [CMakeFiles/cmTryCompileExec3979303902.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--no-as-needed] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--no-as-needed] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o] ==> ignore
remove lib [gcc]
remove lib [gcc_s]
remove lib [gcc]
remove lib [gcc_s]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.8]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> [/usr/lib]
implicit libs: [c]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []
Determining if the CXX compiler works passed with the following output:
Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec2239012360/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec2239012360.dir/build.make CMakeFiles/cmTryCompileExec2239012360.dir/build
make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec2239012360.dir/testCXXCompiler.cxx.o
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec2239012360.dir/testCXXCompiler.cxx.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTryCompileExec2239012360
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec2239012360.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/cmTryCompileExec2239012360.dir/testCXXCompiler.cxx.o -o cmTryCompileExec2239012360 -rdynamic
make[1]: Leaving directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec906591899/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec906591899.dir/build.make CMakeFiles/cmTryCompileExec906591899.dir/build
make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp
Linking CXX executable cmTryCompileExec906591899
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec906591899.dir/link.txt --verbose=1
/usr/bin/c++ -v CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec906591899 -rdynamic
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec906591899' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec906591899 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o
make[1]: Leaving directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
Parsed CXX implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec906591899/fast"]
ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec906591899.dir/build.make CMakeFiles/cmTryCompileExec906591899.dir/build]
ignore line: [make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp']
ignore line: [/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1]
ignore line: [Building CXX object CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -o CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Linking CXX executable cmTryCompileExec906591899]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec906591899.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec906591899 -rdynamic ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.4' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.8/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec906591899' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.8/collect2 --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec906591899 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/collect2] ==> ignore
arg [--sysroot=/] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-export-dynamic] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTryCompileExec906591899] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..]
arg [CMakeFiles/cmTryCompileExec906591899.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [-lc] ==> lib [c]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o] ==> ignore
remove lib [gcc_s]
remove lib [gcc]
remove lib [gcc_s]
remove lib [gcc]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.8]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..] ==> [/usr/lib]
implicit libs: [stdc++;m;c]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.8;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []
Performing C SOURCE FILE Test OpenMP_FLAG_DETECTED succeded with the following output:
Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec1686082278/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1686082278.dir/build.make CMakeFiles/cmTryCompileExec1686082278.dir/build
make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec1686082278.dir/src.c.o
/usr/bin/cc -DOpenMP_FLAG_DETECTED -fopenmp -o CMakeFiles/cmTryCompileExec1686082278.dir/src.c.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTryCompileExec1686082278
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1686082278.dir/link.txt --verbose=1
/usr/bin/cc -DOpenMP_FLAG_DETECTED -fopenmp CMakeFiles/cmTryCompileExec1686082278.dir/src.c.o -o cmTryCompileExec1686082278 -rdynamic
make[1]: Leaving directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
Source file was:
#include <omp.h>
int main() {
#ifdef _OPENMP
return 0;
#else
breaks_on_purpose
#endif
}
Performing C++ SOURCE FILE Test OpenMP_FLAG_DETECTED succeded with the following output:
Change Dir: /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec3069933665/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec3069933665.dir/build.make CMakeFiles/cmTryCompileExec3069933665.dir/build
make[1]: Entering directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/CMakeFiles 1
Building CXX object CMakeFiles/cmTryCompileExec3069933665.dir/src.cxx.o
/usr/bin/c++ -DOpenMP_FLAG_DETECTED -fopenmp -o CMakeFiles/cmTryCompileExec3069933665.dir/src.cxx.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp/src.cxx
Linking CXX executable cmTryCompileExec3069933665
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3069933665.dir/link.txt --verbose=1
/usr/bin/c++ -DOpenMP_FLAG_DETECTED -fopenmp CMakeFiles/cmTryCompileExec3069933665.dir/src.cxx.o -o cmTryCompileExec3069933665 -rdynamic
make[1]: Leaving directory `/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/CMakeTmp'
Source file was:
#include <omp.h>
int main() {
#ifdef _OPENMP
return 0;
#else
breaks_on_purpose
#endif
}

View file

@ -0,0 +1,64 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# The generator used is:
SET(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
SET(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"CMakeFiles/2.8.12.2/CMakeCCompiler.cmake"
"CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake"
"CMakeFiles/2.8.12.2/CMakeSystem.cmake"
"CMakeLists.txt"
"io_png/CMakeLists.txt"
"io_png/libs/CMakeLists.txt"
"io_png/libs/png/CMakeLists.txt"
"io_png/libs/zlib/CMakeLists.txt"
"libMatch/CMakeLists.txt"
"libNumerics/CMakeLists.txt"
"/usr/share/cmake-2.8/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-2.8/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-2.8/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-2.8/Modules/CMakeParseArguments.cmake"
"/usr/share/cmake-2.8/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-2.8/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake-2.8/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake-2.8/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-2.8/Modules/FindOpenMP.cmake"
"/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake"
"/usr/share/cmake-2.8/Modules/FindPackageMessage.cmake"
"/usr/share/cmake-2.8/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake-2.8/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake-2.8/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake-2.8/Modules/Platform/Linux.cmake"
"/usr/share/cmake-2.8/Modules/Platform/UnixPaths.cmake"
)
# The corresponding makefile is:
SET(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
SET(CMAKE_MAKEFILE_PRODUCTS
"CMakeFiles/CMakeDirectoryInformation.cmake"
"io_png/CMakeFiles/CMakeDirectoryInformation.cmake"
"io_png/libs/CMakeFiles/CMakeDirectoryInformation.cmake"
"io_png/libs/zlib/CMakeFiles/CMakeDirectoryInformation.cmake"
"io_png/libs/png/CMakeFiles/CMakeDirectoryInformation.cmake"
"libMatch/CMakeFiles/CMakeDirectoryInformation.cmake"
"libNumerics/CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
SET(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/demo_ASIFT.dir/DependInfo.cmake"
"CMakeFiles/test_ASIFT.dir/DependInfo.cmake"
"io_png/libs/zlib/CMakeFiles/zlib.dir/DependInfo.cmake"
"io_png/libs/png/CMakeFiles/png.dir/DependInfo.cmake"
"libMatch/CMakeFiles/Match.dir/DependInfo.cmake"
"libNumerics/CMakeFiles/Numerics.dir/DependInfo.cmake"
)

View file

@ -0,0 +1,373 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# The main recursive all target
all:
.PHONY : all
# The main recursive preinstall target
preinstall:
.PHONY : preinstall
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
#=============================================================================
# Target rules for target CMakeFiles/demo_ASIFT.dir
# All Build rule for target.
CMakeFiles/demo_ASIFT.dir/all: io_png/libs/zlib/CMakeFiles/zlib.dir/all
CMakeFiles/demo_ASIFT.dir/all: io_png/libs/png/CMakeFiles/png.dir/all
CMakeFiles/demo_ASIFT.dir/all: libMatch/CMakeFiles/Match.dir/all
CMakeFiles/demo_ASIFT.dir/all: libNumerics/CMakeFiles/Numerics.dir/all
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/depend
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/build
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 8 9 10 11 12 13 14 15 16 17 18 19 20
@echo "Built target demo_ASIFT"
.PHONY : CMakeFiles/demo_ASIFT.dir/all
# Include target in all.
all: CMakeFiles/demo_ASIFT.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/demo_ASIFT.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 50
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/demo_ASIFT.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : CMakeFiles/demo_ASIFT.dir/rule
# Convenience name for target.
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/rule
.PHONY : demo_ASIFT
# clean rule for target.
CMakeFiles/demo_ASIFT.dir/clean:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/clean
.PHONY : CMakeFiles/demo_ASIFT.dir/clean
# clean rule for target.
clean: CMakeFiles/demo_ASIFT.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/test_ASIFT.dir
# All Build rule for target.
CMakeFiles/test_ASIFT.dir/all: io_png/libs/zlib/CMakeFiles/zlib.dir/all
CMakeFiles/test_ASIFT.dir/all: io_png/libs/png/CMakeFiles/png.dir/all
CMakeFiles/test_ASIFT.dir/all: libMatch/CMakeFiles/Match.dir/all
CMakeFiles/test_ASIFT.dir/all: libNumerics/CMakeFiles/Numerics.dir/all
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/depend
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/build
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 38 39 40 41 42 43 44 45 46 47 48 49 50 51
@echo "Built target test_ASIFT"
.PHONY : CMakeFiles/test_ASIFT.dir/all
# Include target in all.
all: CMakeFiles/test_ASIFT.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
CMakeFiles/test_ASIFT.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 51
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/test_ASIFT.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : CMakeFiles/test_ASIFT.dir/rule
# Convenience name for target.
test_ASIFT: CMakeFiles/test_ASIFT.dir/rule
.PHONY : test_ASIFT
# clean rule for target.
CMakeFiles/test_ASIFT.dir/clean:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/clean
.PHONY : CMakeFiles/test_ASIFT.dir/clean
# clean rule for target.
clean: CMakeFiles/test_ASIFT.dir/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory io_png
# Convenience name for "all" pass in the directory.
io_png/all: io_png/libs/all
.PHONY : io_png/all
# Convenience name for "clean" pass in the directory.
io_png/clean: io_png/libs/clean
.PHONY : io_png/clean
# Convenience name for "preinstall" pass in the directory.
io_png/preinstall: io_png/libs/preinstall
.PHONY : io_png/preinstall
#=============================================================================
# Directory level rules for directory io_png/libs
# Convenience name for "all" pass in the directory.
io_png/libs/all: io_png/libs/zlib/all
io_png/libs/all: io_png/libs/png/all
.PHONY : io_png/libs/all
# Convenience name for "clean" pass in the directory.
io_png/libs/clean: io_png/libs/zlib/clean
io_png/libs/clean: io_png/libs/png/clean
.PHONY : io_png/libs/clean
# Convenience name for "preinstall" pass in the directory.
io_png/libs/preinstall: io_png/libs/zlib/preinstall
io_png/libs/preinstall: io_png/libs/png/preinstall
.PHONY : io_png/libs/preinstall
#=============================================================================
# Directory level rules for directory io_png/libs/zlib
# Convenience name for "all" pass in the directory.
io_png/libs/zlib/all: io_png/libs/zlib/CMakeFiles/zlib.dir/all
.PHONY : io_png/libs/zlib/all
# Convenience name for "clean" pass in the directory.
io_png/libs/zlib/clean: io_png/libs/zlib/CMakeFiles/zlib.dir/clean
.PHONY : io_png/libs/zlib/clean
# Convenience name for "preinstall" pass in the directory.
io_png/libs/zlib/preinstall:
.PHONY : io_png/libs/zlib/preinstall
#=============================================================================
# Target rules for target io_png/libs/zlib/CMakeFiles/zlib.dir
# All Build rule for target.
io_png/libs/zlib/CMakeFiles/zlib.dir/all:
$(MAKE) -f io_png/libs/zlib/CMakeFiles/zlib.dir/build.make io_png/libs/zlib/CMakeFiles/zlib.dir/depend
$(MAKE) -f io_png/libs/zlib/CMakeFiles/zlib.dir/build.make io_png/libs/zlib/CMakeFiles/zlib.dir/build
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 52 53 54 55 56 57 58 59 60 61 62 63 64
@echo "Built target zlib"
.PHONY : io_png/libs/zlib/CMakeFiles/zlib.dir/all
# Include target in all.
all: io_png/libs/zlib/CMakeFiles/zlib.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
io_png/libs/zlib/CMakeFiles/zlib.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 13
$(MAKE) -f CMakeFiles/Makefile2 io_png/libs/zlib/CMakeFiles/zlib.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : io_png/libs/zlib/CMakeFiles/zlib.dir/rule
# Convenience name for target.
zlib: io_png/libs/zlib/CMakeFiles/zlib.dir/rule
.PHONY : zlib
# clean rule for target.
io_png/libs/zlib/CMakeFiles/zlib.dir/clean:
$(MAKE) -f io_png/libs/zlib/CMakeFiles/zlib.dir/build.make io_png/libs/zlib/CMakeFiles/zlib.dir/clean
.PHONY : io_png/libs/zlib/CMakeFiles/zlib.dir/clean
# clean rule for target.
clean: io_png/libs/zlib/CMakeFiles/zlib.dir/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory io_png/libs/png
# Convenience name for "all" pass in the directory.
io_png/libs/png/all: io_png/libs/png/CMakeFiles/png.dir/all
.PHONY : io_png/libs/png/all
# Convenience name for "clean" pass in the directory.
io_png/libs/png/clean: io_png/libs/png/CMakeFiles/png.dir/clean
.PHONY : io_png/libs/png/clean
# Convenience name for "preinstall" pass in the directory.
io_png/libs/png/preinstall:
.PHONY : io_png/libs/png/preinstall
#=============================================================================
# Target rules for target io_png/libs/png/CMakeFiles/png.dir
# All Build rule for target.
io_png/libs/png/CMakeFiles/png.dir/all: io_png/libs/zlib/CMakeFiles/zlib.dir/all
$(MAKE) -f io_png/libs/png/CMakeFiles/png.dir/build.make io_png/libs/png/CMakeFiles/png.dir/depend
$(MAKE) -f io_png/libs/png/CMakeFiles/png.dir/build.make io_png/libs/png/CMakeFiles/png.dir/build
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
@echo "Built target png"
.PHONY : io_png/libs/png/CMakeFiles/png.dir/all
# Include target in all.
all: io_png/libs/png/CMakeFiles/png.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
io_png/libs/png/CMakeFiles/png.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 30
$(MAKE) -f CMakeFiles/Makefile2 io_png/libs/png/CMakeFiles/png.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : io_png/libs/png/CMakeFiles/png.dir/rule
# Convenience name for target.
png: io_png/libs/png/CMakeFiles/png.dir/rule
.PHONY : png
# clean rule for target.
io_png/libs/png/CMakeFiles/png.dir/clean:
$(MAKE) -f io_png/libs/png/CMakeFiles/png.dir/build.make io_png/libs/png/CMakeFiles/png.dir/clean
.PHONY : io_png/libs/png/CMakeFiles/png.dir/clean
# clean rule for target.
clean: io_png/libs/png/CMakeFiles/png.dir/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory libMatch
# Convenience name for "all" pass in the directory.
libMatch/all: libMatch/CMakeFiles/Match.dir/all
.PHONY : libMatch/all
# Convenience name for "clean" pass in the directory.
libMatch/clean: libMatch/CMakeFiles/Match.dir/clean
.PHONY : libMatch/clean
# Convenience name for "preinstall" pass in the directory.
libMatch/preinstall:
.PHONY : libMatch/preinstall
#=============================================================================
# Target rules for target libMatch/CMakeFiles/Match.dir
# All Build rule for target.
libMatch/CMakeFiles/Match.dir/all:
$(MAKE) -f libMatch/CMakeFiles/Match.dir/build.make libMatch/CMakeFiles/Match.dir/depend
$(MAKE) -f libMatch/CMakeFiles/Match.dir/build.make libMatch/CMakeFiles/Match.dir/build
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 1
@echo "Built target Match"
.PHONY : libMatch/CMakeFiles/Match.dir/all
# Include target in all.
all: libMatch/CMakeFiles/Match.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
libMatch/CMakeFiles/Match.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 1
$(MAKE) -f CMakeFiles/Makefile2 libMatch/CMakeFiles/Match.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : libMatch/CMakeFiles/Match.dir/rule
# Convenience name for target.
Match: libMatch/CMakeFiles/Match.dir/rule
.PHONY : Match
# clean rule for target.
libMatch/CMakeFiles/Match.dir/clean:
$(MAKE) -f libMatch/CMakeFiles/Match.dir/build.make libMatch/CMakeFiles/Match.dir/clean
.PHONY : libMatch/CMakeFiles/Match.dir/clean
# clean rule for target.
clean: libMatch/CMakeFiles/Match.dir/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory libNumerics
# Convenience name for "all" pass in the directory.
libNumerics/all: libNumerics/CMakeFiles/Numerics.dir/all
.PHONY : libNumerics/all
# Convenience name for "clean" pass in the directory.
libNumerics/clean: libNumerics/CMakeFiles/Numerics.dir/clean
.PHONY : libNumerics/clean
# Convenience name for "preinstall" pass in the directory.
libNumerics/preinstall:
.PHONY : libNumerics/preinstall
#=============================================================================
# Target rules for target libNumerics/CMakeFiles/Numerics.dir
# All Build rule for target.
libNumerics/CMakeFiles/Numerics.dir/all:
$(MAKE) -f libNumerics/CMakeFiles/Numerics.dir/build.make libNumerics/CMakeFiles/Numerics.dir/depend
$(MAKE) -f libNumerics/CMakeFiles/Numerics.dir/build.make libNumerics/CMakeFiles/Numerics.dir/build
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 2 3 4 5 6 7
@echo "Built target Numerics"
.PHONY : libNumerics/CMakeFiles/Numerics.dir/all
# Include target in all.
all: libNumerics/CMakeFiles/Numerics.dir/all
.PHONY : all
# Build rule for subdir invocation for target.
libNumerics/CMakeFiles/Numerics.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 6
$(MAKE) -f CMakeFiles/Makefile2 libNumerics/CMakeFiles/Numerics.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : libNumerics/CMakeFiles/Numerics.dir/rule
# Convenience name for target.
Numerics: libNumerics/CMakeFiles/Numerics.dir/rule
.PHONY : Numerics
# clean rule for target.
libNumerics/CMakeFiles/Numerics.dir/clean:
$(MAKE) -f libNumerics/CMakeFiles/Numerics.dir/build.make libNumerics/CMakeFiles/Numerics.dir/clean
.PHONY : libNumerics/CMakeFiles/Numerics.dir/clean
# clean rule for target.
clean: libNumerics/CMakeFiles/Numerics.dir/clean
.PHONY : clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View file

@ -0,0 +1,6 @@
/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/CMakeFiles/Match.dir
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/CMakeFiles/Numerics.dir
/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/png/CMakeFiles/png.dir
/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/zlib/CMakeFiles/zlib.dir

View file

@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View file

@ -0,0 +1,8 @@
#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:

View file

@ -0,0 +1,8 @@
#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:

View file

@ -0,0 +1,43 @@
# The set of languages for which implicit dependencies are needed:
SET(CMAKE_DEPENDS_LANGUAGES
"C"
"CXX"
)
# The set of files for implicit dependencies of each language:
SET(CMAKE_DEPENDS_CHECK_C
"/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o"
)
SET(CMAKE_C_COMPILER_ID "GNU")
SET(CMAKE_DEPENDS_CHECK_CXX
"/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/demo_ASIFT.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/filter.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/flimage.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/fproj.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/frot.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/library.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/orsa.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/splines.cpp.o"
)
SET(CMAKE_CXX_COMPILER_ID "GNU")
# Targets to which this target links.
SET(CMAKE_TARGET_LINKED_INFO_FILES
"/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/png/CMakeFiles/png.dir/DependInfo.cmake"
"/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/zlib/CMakeFiles/zlib.dir/DependInfo.cmake"
"/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/CMakeFiles/Match.dir/DependInfo.cmake"
"/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/CMakeFiles/Numerics.dir/DependInfo.cmake"
)
# The include file search paths:
SET(CMAKE_C_TARGET_INCLUDE_PATH
"."
"./io_png"
"./io_png/libs/png"
)
SET(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
SET(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
SET(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})

View file

@ -0,0 +1,418 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
# Include any dependencies generated for this target.
include CMakeFiles/demo_ASIFT.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/demo_ASIFT.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: demo_ASIFT.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_1)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/demo_ASIFT.cpp
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/demo_ASIFT.cpp > CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.i
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/demo_ASIFT.cpp -o CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.s
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o: numerics1.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_2)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/numerics1.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp > CMakeFiles/demo_ASIFT.dir/numerics1.cpp.i
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/numerics1.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp -o CMakeFiles/demo_ASIFT.dir/numerics1.cpp.s
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o
CMakeFiles/demo_ASIFT.dir/frot.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/frot.cpp.o: frot.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_3)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/frot.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/frot.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp
CMakeFiles/demo_ASIFT.dir/frot.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/frot.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp > CMakeFiles/demo_ASIFT.dir/frot.cpp.i
CMakeFiles/demo_ASIFT.dir/frot.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/frot.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp -o CMakeFiles/demo_ASIFT.dir/frot.cpp.s
CMakeFiles/demo_ASIFT.dir/frot.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/frot.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/frot.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/frot.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/frot.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/frot.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/frot.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/frot.cpp.o
CMakeFiles/demo_ASIFT.dir/splines.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/splines.cpp.o: splines.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_4)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/splines.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/splines.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp
CMakeFiles/demo_ASIFT.dir/splines.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/splines.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp > CMakeFiles/demo_ASIFT.dir/splines.cpp.i
CMakeFiles/demo_ASIFT.dir/splines.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/splines.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp -o CMakeFiles/demo_ASIFT.dir/splines.cpp.s
CMakeFiles/demo_ASIFT.dir/splines.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/splines.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/splines.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/splines.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/splines.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/splines.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/splines.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/splines.cpp.o
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: fproj.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_5)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/fproj.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/fproj.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp
CMakeFiles/demo_ASIFT.dir/fproj.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/fproj.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp > CMakeFiles/demo_ASIFT.dir/fproj.cpp.i
CMakeFiles/demo_ASIFT.dir/fproj.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/fproj.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp -o CMakeFiles/demo_ASIFT.dir/fproj.cpp.s
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/fproj.cpp.o
CMakeFiles/demo_ASIFT.dir/library.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/library.cpp.o: library.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_6)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/library.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/library.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp
CMakeFiles/demo_ASIFT.dir/library.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/library.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp > CMakeFiles/demo_ASIFT.dir/library.cpp.i
CMakeFiles/demo_ASIFT.dir/library.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/library.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp -o CMakeFiles/demo_ASIFT.dir/library.cpp.s
CMakeFiles/demo_ASIFT.dir/library.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/library.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/library.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/library.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/library.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/library.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/library.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/library.cpp.o
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o: flimage.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_7)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/flimage.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/flimage.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp
CMakeFiles/demo_ASIFT.dir/flimage.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/flimage.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp > CMakeFiles/demo_ASIFT.dir/flimage.cpp.i
CMakeFiles/demo_ASIFT.dir/flimage.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/flimage.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp -o CMakeFiles/demo_ASIFT.dir/flimage.cpp.s
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/flimage.cpp.o
CMakeFiles/demo_ASIFT.dir/filter.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/filter.cpp.o: filter.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_8)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/filter.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/filter.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp
CMakeFiles/demo_ASIFT.dir/filter.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/filter.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp > CMakeFiles/demo_ASIFT.dir/filter.cpp.i
CMakeFiles/demo_ASIFT.dir/filter.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/filter.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp -o CMakeFiles/demo_ASIFT.dir/filter.cpp.s
CMakeFiles/demo_ASIFT.dir/filter.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/filter.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/filter.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/filter.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/filter.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/filter.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/filter.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/filter.cpp.o
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: demo_lib_sift.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_9)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp > CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.i
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp -o CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.s
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: compute_asift_keypoints.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_10)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp > CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.i
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp -o CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.s
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: compute_asift_matches.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_11)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp > CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.i
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp -o CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.s
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: orsa.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_12)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/demo_ASIFT.dir/orsa.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/demo_ASIFT.dir/orsa.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp
CMakeFiles/demo_ASIFT.dir/orsa.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo_ASIFT.dir/orsa.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp > CMakeFiles/demo_ASIFT.dir/orsa.cpp.i
CMakeFiles/demo_ASIFT.dir/orsa.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo_ASIFT.dir/orsa.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp -o CMakeFiles/demo_ASIFT.dir/orsa.cpp.s
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.provides: CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.provides
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.provides.build: CMakeFiles/demo_ASIFT.dir/orsa.cpp.o
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: CMakeFiles/demo_ASIFT.dir/flags.make
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: io_png/io_png.c
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_13)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o"
/usr/bin/cc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.i"
/usr/bin/cc $(C_DEFINES) $(C_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c > CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.i
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.s"
/usr/bin/cc $(C_DEFINES) $(C_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c -o CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.s
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.requires:
.PHONY : CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.requires
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.provides: CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.requires
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.provides.build
.PHONY : CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.provides
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.provides.build: CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o
# Object files for target demo_ASIFT
demo_ASIFT_OBJECTS = \
"CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/frot.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/splines.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/fproj.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/library.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/flimage.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/filter.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/orsa.cpp.o" \
"CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o"
# External object files for target demo_ASIFT
demo_ASIFT_EXTERNAL_OBJECTS =
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/frot.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/splines.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/fproj.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/library.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/flimage.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/filter.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/orsa.cpp.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/build.make
demo_ASIFT: io_png/libs/png/libpng.a
demo_ASIFT: io_png/libs/zlib/libzlib.a
demo_ASIFT: libMatch/libMatch.a
demo_ASIFT: libNumerics/libNumerics.a
demo_ASIFT: CMakeFiles/demo_ASIFT.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX executable demo_ASIFT"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/demo_ASIFT.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/demo_ASIFT.dir/build: demo_ASIFT
.PHONY : CMakeFiles/demo_ASIFT.dir/build
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/frot.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/splines.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/fproj.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/library.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/flimage.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/filter.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/orsa.cpp.o.requires
CMakeFiles/demo_ASIFT.dir/requires: CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o.requires
.PHONY : CMakeFiles/demo_ASIFT.dir/requires
CMakeFiles/demo_ASIFT.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/demo_ASIFT.dir/cmake_clean.cmake
.PHONY : CMakeFiles/demo_ASIFT.dir/clean
CMakeFiles/demo_ASIFT.dir/depend:
cd /home/harle/catkin_ws/src/demo_ASIFT_src && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/demo_ASIFT.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/demo_ASIFT.dir/depend

View file

@ -0,0 +1,22 @@
FILE(REMOVE_RECURSE
"CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o"
"CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o"
"CMakeFiles/demo_ASIFT.dir/frot.cpp.o"
"CMakeFiles/demo_ASIFT.dir/splines.cpp.o"
"CMakeFiles/demo_ASIFT.dir/fproj.cpp.o"
"CMakeFiles/demo_ASIFT.dir/library.cpp.o"
"CMakeFiles/demo_ASIFT.dir/flimage.cpp.o"
"CMakeFiles/demo_ASIFT.dir/filter.cpp.o"
"CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o"
"CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o"
"CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o"
"CMakeFiles/demo_ASIFT.dir/orsa.cpp.o"
"CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o"
"demo_ASIFT.pdb"
"demo_ASIFT"
)
# Per-language clean rules from dependency scanning.
FOREACH(lang C CXX)
INCLUDE(CMakeFiles/demo_ASIFT.dir/cmake_clean_${lang}.cmake OPTIONAL)
ENDFOREACH(lang)

View file

@ -0,0 +1,252 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o
./io_png/libs/png/png.h
./io_png/libs/png/pngconf.h
./io_png/libs/zlib/zconf.h
./io_png/libs/zlib/zlib.h
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/match.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/numerics.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/vector.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.h
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_ASIFT.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/demo_ASIFT.dir/filter.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/demo_ASIFT.dir/frot.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
CMakeFiles/demo_ASIFT.dir/library.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/match.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/numerics.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/vector.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.h
third_party/Eigen/Cholesky
third_party/Eigen/Core
third_party/Eigen/Eigen2Support
third_party/Eigen/Eigenvalues
third_party/Eigen/Householder
third_party/Eigen/Jacobi
third_party/Eigen/LU
third_party/Eigen/QR
third_party/Eigen/SVD
third_party/Eigen/src/Cholesky/LDLT.h
third_party/Eigen/src/Cholesky/LLT.h
third_party/Eigen/src/Core/Array.h
third_party/Eigen/src/Core/ArrayBase.h
third_party/Eigen/src/Core/ArrayWrapper.h
third_party/Eigen/src/Core/Assign.h
third_party/Eigen/src/Core/BandMatrix.h
third_party/Eigen/src/Core/Block.h
third_party/Eigen/src/Core/BooleanRedux.h
third_party/Eigen/src/Core/CommaInitializer.h
third_party/Eigen/src/Core/CwiseBinaryOp.h
third_party/Eigen/src/Core/CwiseNullaryOp.h
third_party/Eigen/src/Core/CwiseUnaryOp.h
third_party/Eigen/src/Core/CwiseUnaryView.h
third_party/Eigen/src/Core/DenseBase.h
third_party/Eigen/src/Core/DenseCoeffsBase.h
third_party/Eigen/src/Core/DenseStorage.h
third_party/Eigen/src/Core/Diagonal.h
third_party/Eigen/src/Core/DiagonalMatrix.h
third_party/Eigen/src/Core/DiagonalProduct.h
third_party/Eigen/src/Core/Dot.h
third_party/Eigen/src/Core/EigenBase.h
third_party/Eigen/src/Core/Flagged.h
third_party/Eigen/src/Core/ForceAlignedAccess.h
third_party/Eigen/src/Core/Functors.h
third_party/Eigen/src/Core/Fuzzy.h
third_party/Eigen/src/Core/GenericPacketMath.h
third_party/Eigen/src/Core/GlobalFunctions.h
third_party/Eigen/src/Core/IO.h
third_party/Eigen/src/Core/Map.h
third_party/Eigen/src/Core/MapBase.h
third_party/Eigen/src/Core/MathFunctions.h
third_party/Eigen/src/Core/Matrix.h
third_party/Eigen/src/Core/MatrixBase.h
third_party/Eigen/src/Core/NestByValue.h
third_party/Eigen/src/Core/NoAlias.h
third_party/Eigen/src/Core/NumTraits.h
third_party/Eigen/src/Core/PermutationMatrix.h
third_party/Eigen/src/Core/PlainObjectBase.h
third_party/Eigen/src/Core/Product.h
third_party/Eigen/src/Core/ProductBase.h
third_party/Eigen/src/Core/Random.h
third_party/Eigen/src/Core/Redux.h
third_party/Eigen/src/Core/Replicate.h
third_party/Eigen/src/Core/ReturnByValue.h
third_party/Eigen/src/Core/Reverse.h
third_party/Eigen/src/Core/Select.h
third_party/Eigen/src/Core/SelfAdjointView.h
third_party/Eigen/src/Core/SelfCwiseBinaryOp.h
third_party/Eigen/src/Core/SolveTriangular.h
third_party/Eigen/src/Core/StableNorm.h
third_party/Eigen/src/Core/Stride.h
third_party/Eigen/src/Core/Swap.h
third_party/Eigen/src/Core/Transpose.h
third_party/Eigen/src/Core/Transpositions.h
third_party/Eigen/src/Core/TriangularMatrix.h
third_party/Eigen/src/Core/VectorBlock.h
third_party/Eigen/src/Core/VectorwiseOp.h
third_party/Eigen/src/Core/Visitor.h
third_party/Eigen/src/Core/arch/AltiVec/Complex.h
third_party/Eigen/src/Core/arch/AltiVec/PacketMath.h
third_party/Eigen/src/Core/arch/Default/Settings.h
third_party/Eigen/src/Core/arch/NEON/Complex.h
third_party/Eigen/src/Core/arch/NEON/PacketMath.h
third_party/Eigen/src/Core/arch/SSE/Complex.h
third_party/Eigen/src/Core/arch/SSE/MathFunctions.h
third_party/Eigen/src/Core/arch/SSE/PacketMath.h
third_party/Eigen/src/Core/products/CoeffBasedProduct.h
third_party/Eigen/src/Core/products/GeneralBlockPanelKernel.h
third_party/Eigen/src/Core/products/GeneralMatrixMatrix.h
third_party/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
third_party/Eigen/src/Core/products/GeneralMatrixVector.h
third_party/Eigen/src/Core/products/Parallelizer.h
third_party/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
third_party/Eigen/src/Core/products/SelfadjointMatrixVector.h
third_party/Eigen/src/Core/products/SelfadjointProduct.h
third_party/Eigen/src/Core/products/SelfadjointRank2Update.h
third_party/Eigen/src/Core/products/TriangularMatrixMatrix.h
third_party/Eigen/src/Core/products/TriangularMatrixVector.h
third_party/Eigen/src/Core/products/TriangularSolverMatrix.h
third_party/Eigen/src/Core/products/TriangularSolverVector.h
third_party/Eigen/src/Core/util/BlasUtil.h
third_party/Eigen/src/Core/util/Constants.h
third_party/Eigen/src/Core/util/DisableStupidWarnings.h
third_party/Eigen/src/Core/util/ForwardDeclarations.h
third_party/Eigen/src/Core/util/Macros.h
third_party/Eigen/src/Core/util/Memory.h
third_party/Eigen/src/Core/util/Meta.h
third_party/Eigen/src/Core/util/ReenableStupidWarnings.h
third_party/Eigen/src/Core/util/StaticAssert.h
third_party/Eigen/src/Core/util/XprHelper.h
third_party/Eigen/src/Eigen2Support/Block.h
third_party/Eigen/src/Eigen2Support/Cwise.h
third_party/Eigen/src/Eigen2Support/CwiseOperators.h
third_party/Eigen/src/Eigen2Support/LU.h
third_party/Eigen/src/Eigen2Support/Lazy.h
third_party/Eigen/src/Eigen2Support/Macros.h
third_party/Eigen/src/Eigen2Support/MathFunctions.h
third_party/Eigen/src/Eigen2Support/Memory.h
third_party/Eigen/src/Eigen2Support/Meta.h
third_party/Eigen/src/Eigen2Support/Minor.h
third_party/Eigen/src/Eigen2Support/QR.h
third_party/Eigen/src/Eigen2Support/SVD.h
third_party/Eigen/src/Eigen2Support/TriangularSolver.h
third_party/Eigen/src/Eigen2Support/VectorBlock.h
third_party/Eigen/src/Eigenvalues/./ComplexSchur.h
third_party/Eigen/src/Eigenvalues/./EigenvaluesCommon.h
third_party/Eigen/src/Eigenvalues/./HessenbergDecomposition.h
third_party/Eigen/src/Eigenvalues/./RealSchur.h
third_party/Eigen/src/Eigenvalues/./Tridiagonalization.h
third_party/Eigen/src/Eigenvalues/ComplexEigenSolver.h
third_party/Eigen/src/Eigenvalues/ComplexSchur.h
third_party/Eigen/src/Eigenvalues/EigenSolver.h
third_party/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
third_party/Eigen/src/Eigenvalues/HessenbergDecomposition.h
third_party/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
third_party/Eigen/src/Eigenvalues/RealSchur.h
third_party/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
third_party/Eigen/src/Eigenvalues/Tridiagonalization.h
third_party/Eigen/src/Householder/BlockHouseholder.h
third_party/Eigen/src/Householder/Householder.h
third_party/Eigen/src/Householder/HouseholderSequence.h
third_party/Eigen/src/Jacobi/Jacobi.h
third_party/Eigen/src/LU/Determinant.h
third_party/Eigen/src/LU/FullPivLU.h
third_party/Eigen/src/LU/Inverse.h
third_party/Eigen/src/LU/PartialPivLU.h
third_party/Eigen/src/LU/arch/Inverse_SSE.h
third_party/Eigen/src/QR/ColPivHouseholderQR.h
third_party/Eigen/src/QR/FullPivHouseholderQR.h
third_party/Eigen/src/QR/HouseholderQR.h
third_party/Eigen/src/SVD/JacobiSVD.h
third_party/Eigen/src/SVD/UpperBidiagonalization.h
third_party/Eigen/src/misc/Image.h
third_party/Eigen/src/misc/Kernel.h
third_party/Eigen/src/misc/Solve.h
third_party/Eigen/src/plugins/ArrayCwiseBinaryOps.h
third_party/Eigen/src/plugins/ArrayCwiseUnaryOps.h
third_party/Eigen/src/plugins/BlockMethods.h
third_party/Eigen/src/plugins/CommonCwiseBinaryOps.h
third_party/Eigen/src/plugins/CommonCwiseUnaryOps.h
third_party/Eigen/src/plugins/MatrixCwiseBinaryOps.h
third_party/Eigen/src/plugins/MatrixCwiseUnaryOps.h
CMakeFiles/demo_ASIFT.dir/splines.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h

View file

@ -0,0 +1,252 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/png/png.h
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/png/pngconf.h
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/zlib/zconf.h
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/zlib/zlib.h
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: io_png/io_png.c
CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o: io_png/io_png.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: compute_asift_keypoints.cpp
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: compute_asift_keypoints.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: demo_lib_sift.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: domain.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: filter.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: flimage.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: fproj.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: frot.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o: splines.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: compute_asift_matches.cpp
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: compute_asift_matches.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: demo_lib_sift.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: domain.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: filter.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: flimage.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: fproj.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: frot.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: libMatch/match.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/matrix.cpp
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/matrix.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/numerics.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/vector.cpp
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: orsa.h
CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o: splines.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: compute_asift_keypoints.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: compute_asift_matches.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: demo_ASIFT.cpp
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: demo_lib_sift.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: domain.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: filter.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: flimage.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: fproj.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: frot.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: io_png/io_png.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o: splines.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: demo_lib_sift.cpp
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: demo_lib_sift.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: domain.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: filter.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: flimage.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o: splines.h
CMakeFiles/demo_ASIFT.dir/filter.cpp.o: filter.cpp
CMakeFiles/demo_ASIFT.dir/filter.cpp.o: filter.h
CMakeFiles/demo_ASIFT.dir/filter.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o: flimage.cpp
CMakeFiles/demo_ASIFT.dir/flimage.cpp.o: flimage.h
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: fproj.cpp
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: fproj.h
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/fproj.cpp.o: splines.h
CMakeFiles/demo_ASIFT.dir/frot.cpp.o: frot.cpp
CMakeFiles/demo_ASIFT.dir/frot.cpp.o: frot.h
CMakeFiles/demo_ASIFT.dir/frot.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/library.cpp.o: library.cpp
CMakeFiles/demo_ASIFT.dir/library.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o: numerics1.cpp
CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: libMatch/match.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: libNumerics/matrix.cpp
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: libNumerics/matrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: libNumerics/numerics.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: libNumerics/vector.cpp
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: orsa.cpp
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: orsa.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Cholesky
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Core
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Eigen2Support
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Eigenvalues
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Householder
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Jacobi
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/LU
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/QR
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/SVD
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Cholesky/LDLT.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Cholesky/LLT.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Array.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ArrayBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ArrayWrapper.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Assign.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/BandMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Block.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/BooleanRedux.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CommaInitializer.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseBinaryOp.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseNullaryOp.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseUnaryOp.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseUnaryView.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DenseBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DenseCoeffsBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DenseStorage.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Diagonal.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DiagonalMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DiagonalProduct.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Dot.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/EigenBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Flagged.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ForceAlignedAccess.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Functors.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Fuzzy.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/GenericPacketMath.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/GlobalFunctions.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/IO.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Map.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/MapBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/MathFunctions.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Matrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/MatrixBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/NestByValue.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/NoAlias.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/NumTraits.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/PermutationMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/PlainObjectBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Product.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ProductBase.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Random.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Redux.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Replicate.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ReturnByValue.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Reverse.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Select.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/SelfAdjointView.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/SelfCwiseBinaryOp.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/SolveTriangular.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/StableNorm.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Stride.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Swap.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Transpose.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Transpositions.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/TriangularMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/VectorBlock.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/VectorwiseOp.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Visitor.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/AltiVec/Complex.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/AltiVec/PacketMath.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/Default/Settings.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/NEON/Complex.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/NEON/PacketMath.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/SSE/Complex.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/SSE/MathFunctions.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/SSE/PacketMath.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/CoeffBasedProduct.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralBlockPanelKernel.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralMatrixMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralMatrixVector.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/Parallelizer.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointMatrixVector.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointProduct.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointRank2Update.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularMatrixMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularMatrixVector.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularSolverMatrix.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularSolverVector.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/BlasUtil.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Constants.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/DisableStupidWarnings.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/ForwardDeclarations.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Macros.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Memory.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Meta.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/ReenableStupidWarnings.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/StaticAssert.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/XprHelper.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Block.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Cwise.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/CwiseOperators.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/LU.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Lazy.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Macros.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/MathFunctions.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Memory.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Meta.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Minor.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/QR.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/SVD.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/TriangularSolver.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/VectorBlock.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./ComplexSchur.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./EigenvaluesCommon.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./HessenbergDecomposition.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./RealSchur.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./Tridiagonalization.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/ComplexEigenSolver.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/ComplexSchur.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/EigenSolver.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/HessenbergDecomposition.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/RealSchur.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/Tridiagonalization.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Householder/BlockHouseholder.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Householder/Householder.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Householder/HouseholderSequence.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Jacobi/Jacobi.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/Determinant.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/FullPivLU.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/Inverse.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/PartialPivLU.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/arch/Inverse_SSE.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/QR/ColPivHouseholderQR.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/QR/FullPivHouseholderQR.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/QR/HouseholderQR.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/SVD/JacobiSVD.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/SVD/UpperBidiagonalization.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/misc/Image.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/misc/Kernel.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/misc/Solve.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/ArrayCwiseBinaryOps.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/ArrayCwiseUnaryOps.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/BlockMethods.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/CommonCwiseBinaryOps.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/CommonCwiseUnaryOps.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/MatrixCwiseBinaryOps.h
CMakeFiles/demo_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/MatrixCwiseUnaryOps.h
CMakeFiles/demo_ASIFT.dir/splines.cpp.o: library.h
CMakeFiles/demo_ASIFT.dir/splines.cpp.o: numerics1.h
CMakeFiles/demo_ASIFT.dir/splines.cpp.o: splines.cpp
CMakeFiles/demo_ASIFT.dir/splines.cpp.o: splines.h

View file

@ -0,0 +1,13 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile C with /usr/bin/cc
# compile CXX with /usr/bin/c++
C_FLAGS = -I/home/harle/catkin_ws/src/demo_ASIFT_src/. -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png/libs/png
C_DEFINES =
CXX_FLAGS = -fopenmp -Wall -Wno-strict-aliasing -Wextra -Wno-write-strings -Wno-deprecated -ansi -O3 -ftree-vectorize -funroll-loops -I/home/harle/catkin_ws/src/demo_ASIFT_src/. -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png/libs/png
CXX_DEFINES =

View file

@ -0,0 +1 @@
/usr/bin/c++ -fopenmp -Wall -Wno-strict-aliasing -Wextra -Wno-write-strings -Wno-deprecated -ansi -O3 -ftree-vectorize -funroll-loops CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o CMakeFiles/demo_ASIFT.dir/frot.cpp.o CMakeFiles/demo_ASIFT.dir/splines.cpp.o CMakeFiles/demo_ASIFT.dir/fproj.cpp.o CMakeFiles/demo_ASIFT.dir/library.cpp.o CMakeFiles/demo_ASIFT.dir/flimage.cpp.o CMakeFiles/demo_ASIFT.dir/filter.cpp.o CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o CMakeFiles/demo_ASIFT.dir/orsa.cpp.o CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o -o demo_ASIFT -rdynamic io_png/libs/png/libpng.a io_png/libs/zlib/libzlib.a libMatch/libMatch.a libNumerics/libNumerics.a

View file

@ -0,0 +1,14 @@
CMAKE_PROGRESS_1 = 8
CMAKE_PROGRESS_2 = 9
CMAKE_PROGRESS_3 = 10
CMAKE_PROGRESS_4 = 11
CMAKE_PROGRESS_5 = 12
CMAKE_PROGRESS_6 = 13
CMAKE_PROGRESS_7 = 14
CMAKE_PROGRESS_8 = 15
CMAKE_PROGRESS_9 = 16
CMAKE_PROGRESS_10 = 17
CMAKE_PROGRESS_11 = 18
CMAKE_PROGRESS_12 = 19
CMAKE_PROGRESS_13 = 20

View file

@ -0,0 +1 @@
64

View file

@ -0,0 +1,8 @@
#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:

View file

@ -0,0 +1,8 @@
#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">])
#IncludeRegexScan: ^.*$
#IncludeRegexComplain: ^$
#IncludeRegexTransform:

View file

@ -0,0 +1,44 @@
# The set of languages for which implicit dependencies are needed:
SET(CMAKE_DEPENDS_LANGUAGES
"C"
"CXX"
)
# The set of files for implicit dependencies of each language:
SET(CMAKE_DEPENDS_CHECK_C
"/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o"
)
SET(CMAKE_C_COMPILER_ID "GNU")
SET(CMAKE_DEPENDS_CHECK_CXX
"/home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/filter.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/flimage.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/fproj.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/frot.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/library.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/numerics1.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/orsa.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/splines.cpp.o"
"/home/harle/catkin_ws/src/demo_ASIFT_src/test_ASIFT.cpp" "/home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o"
)
SET(CMAKE_CXX_COMPILER_ID "GNU")
# Targets to which this target links.
SET(CMAKE_TARGET_LINKED_INFO_FILES
"/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/png/CMakeFiles/png.dir/DependInfo.cmake"
"/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/libs/zlib/CMakeFiles/zlib.dir/DependInfo.cmake"
"/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/CMakeFiles/Match.dir/DependInfo.cmake"
"/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/CMakeFiles/Numerics.dir/DependInfo.cmake"
)
# The include file search paths:
SET(CMAKE_C_TARGET_INCLUDE_PATH
"."
"./io_png"
"./io_png/libs/png"
)
SET(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
SET(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})
SET(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH})

View file

@ -0,0 +1,444 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
# Include any dependencies generated for this target.
include CMakeFiles/test_ASIFT.dir/depend.make
# Include the progress variables for this target.
include CMakeFiles/test_ASIFT.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: test_ASIFT.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_1)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/test_ASIFT.cpp
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/test_ASIFT.cpp > CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.i
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/test_ASIFT.cpp -o CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.s
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.requires
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.provides: CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.provides
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: ASIFT_matcher.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_2)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.cpp
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.cpp > CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.i
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.cpp -o CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.s
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.requires
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.provides: CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.provides
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o: numerics1.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_3)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/numerics1.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/numerics1.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp
CMakeFiles/test_ASIFT.dir/numerics1.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/numerics1.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp > CMakeFiles/test_ASIFT.dir/numerics1.cpp.i
CMakeFiles/test_ASIFT.dir/numerics1.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/numerics1.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp -o CMakeFiles/test_ASIFT.dir/numerics1.cpp.s
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.requires
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.provides: CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.provides
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/numerics1.cpp.o
CMakeFiles/test_ASIFT.dir/frot.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/frot.cpp.o: frot.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_4)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/frot.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/frot.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp
CMakeFiles/test_ASIFT.dir/frot.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/frot.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp > CMakeFiles/test_ASIFT.dir/frot.cpp.i
CMakeFiles/test_ASIFT.dir/frot.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/frot.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp -o CMakeFiles/test_ASIFT.dir/frot.cpp.s
CMakeFiles/test_ASIFT.dir/frot.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/frot.cpp.o.requires
CMakeFiles/test_ASIFT.dir/frot.cpp.o.provides: CMakeFiles/test_ASIFT.dir/frot.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/frot.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/frot.cpp.o.provides
CMakeFiles/test_ASIFT.dir/frot.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/frot.cpp.o
CMakeFiles/test_ASIFT.dir/splines.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/splines.cpp.o: splines.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_5)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/splines.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/splines.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp
CMakeFiles/test_ASIFT.dir/splines.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/splines.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp > CMakeFiles/test_ASIFT.dir/splines.cpp.i
CMakeFiles/test_ASIFT.dir/splines.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/splines.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp -o CMakeFiles/test_ASIFT.dir/splines.cpp.s
CMakeFiles/test_ASIFT.dir/splines.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/splines.cpp.o.requires
CMakeFiles/test_ASIFT.dir/splines.cpp.o.provides: CMakeFiles/test_ASIFT.dir/splines.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/splines.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/splines.cpp.o.provides
CMakeFiles/test_ASIFT.dir/splines.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/splines.cpp.o
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: fproj.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_6)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/fproj.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/fproj.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp
CMakeFiles/test_ASIFT.dir/fproj.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/fproj.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp > CMakeFiles/test_ASIFT.dir/fproj.cpp.i
CMakeFiles/test_ASIFT.dir/fproj.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/fproj.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp -o CMakeFiles/test_ASIFT.dir/fproj.cpp.s
CMakeFiles/test_ASIFT.dir/fproj.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/fproj.cpp.o.requires
CMakeFiles/test_ASIFT.dir/fproj.cpp.o.provides: CMakeFiles/test_ASIFT.dir/fproj.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/fproj.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/fproj.cpp.o.provides
CMakeFiles/test_ASIFT.dir/fproj.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/fproj.cpp.o
CMakeFiles/test_ASIFT.dir/library.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/library.cpp.o: library.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_7)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/library.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/library.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp
CMakeFiles/test_ASIFT.dir/library.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/library.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp > CMakeFiles/test_ASIFT.dir/library.cpp.i
CMakeFiles/test_ASIFT.dir/library.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/library.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp -o CMakeFiles/test_ASIFT.dir/library.cpp.s
CMakeFiles/test_ASIFT.dir/library.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/library.cpp.o.requires
CMakeFiles/test_ASIFT.dir/library.cpp.o.provides: CMakeFiles/test_ASIFT.dir/library.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/library.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/library.cpp.o.provides
CMakeFiles/test_ASIFT.dir/library.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/library.cpp.o
CMakeFiles/test_ASIFT.dir/flimage.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/flimage.cpp.o: flimage.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_8)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/flimage.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/flimage.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp
CMakeFiles/test_ASIFT.dir/flimage.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/flimage.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp > CMakeFiles/test_ASIFT.dir/flimage.cpp.i
CMakeFiles/test_ASIFT.dir/flimage.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/flimage.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp -o CMakeFiles/test_ASIFT.dir/flimage.cpp.s
CMakeFiles/test_ASIFT.dir/flimage.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/flimage.cpp.o.requires
CMakeFiles/test_ASIFT.dir/flimage.cpp.o.provides: CMakeFiles/test_ASIFT.dir/flimage.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/flimage.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/flimage.cpp.o.provides
CMakeFiles/test_ASIFT.dir/flimage.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/flimage.cpp.o
CMakeFiles/test_ASIFT.dir/filter.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/filter.cpp.o: filter.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_9)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/filter.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/filter.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp
CMakeFiles/test_ASIFT.dir/filter.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/filter.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp > CMakeFiles/test_ASIFT.dir/filter.cpp.i
CMakeFiles/test_ASIFT.dir/filter.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/filter.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp -o CMakeFiles/test_ASIFT.dir/filter.cpp.s
CMakeFiles/test_ASIFT.dir/filter.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/filter.cpp.o.requires
CMakeFiles/test_ASIFT.dir/filter.cpp.o.provides: CMakeFiles/test_ASIFT.dir/filter.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/filter.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/filter.cpp.o.provides
CMakeFiles/test_ASIFT.dir/filter.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/filter.cpp.o
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: demo_lib_sift.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_10)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp > CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.i
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp -o CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.s
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.requires
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.provides: CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.provides
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: compute_asift_keypoints.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_11)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp > CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.i
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp -o CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.s
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.requires
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.provides: CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.provides
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: compute_asift_matches.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_12)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp > CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.i
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp -o CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.s
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.requires
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.provides: CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.provides
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: orsa.cpp
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_13)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/test_ASIFT.dir/orsa.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/test_ASIFT.dir/orsa.cpp.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp
CMakeFiles/test_ASIFT.dir/orsa.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test_ASIFT.dir/orsa.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp > CMakeFiles/test_ASIFT.dir/orsa.cpp.i
CMakeFiles/test_ASIFT.dir/orsa.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test_ASIFT.dir/orsa.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp -o CMakeFiles/test_ASIFT.dir/orsa.cpp.s
CMakeFiles/test_ASIFT.dir/orsa.cpp.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/orsa.cpp.o.requires
CMakeFiles/test_ASIFT.dir/orsa.cpp.o.provides: CMakeFiles/test_ASIFT.dir/orsa.cpp.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/orsa.cpp.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/orsa.cpp.o.provides
CMakeFiles/test_ASIFT.dir/orsa.cpp.o.provides.build: CMakeFiles/test_ASIFT.dir/orsa.cpp.o
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: CMakeFiles/test_ASIFT.dir/flags.make
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: io_png/io_png.c
$(CMAKE_COMMAND) -E cmake_progress_report /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles $(CMAKE_PROGRESS_14)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building C object CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o"
/usr/bin/cc $(C_DEFINES) $(C_FLAGS) -o CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o -c /home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/test_ASIFT.dir/io_png/io_png.c.i"
/usr/bin/cc $(C_DEFINES) $(C_FLAGS) -E /home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c > CMakeFiles/test_ASIFT.dir/io_png/io_png.c.i
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/test_ASIFT.dir/io_png/io_png.c.s"
/usr/bin/cc $(C_DEFINES) $(C_FLAGS) -S /home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c -o CMakeFiles/test_ASIFT.dir/io_png/io_png.c.s
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.requires:
.PHONY : CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.requires
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.provides: CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.requires
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.provides.build
.PHONY : CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.provides
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.provides.build: CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o
# Object files for target test_ASIFT
test_ASIFT_OBJECTS = \
"CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o" \
"CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o" \
"CMakeFiles/test_ASIFT.dir/numerics1.cpp.o" \
"CMakeFiles/test_ASIFT.dir/frot.cpp.o" \
"CMakeFiles/test_ASIFT.dir/splines.cpp.o" \
"CMakeFiles/test_ASIFT.dir/fproj.cpp.o" \
"CMakeFiles/test_ASIFT.dir/library.cpp.o" \
"CMakeFiles/test_ASIFT.dir/flimage.cpp.o" \
"CMakeFiles/test_ASIFT.dir/filter.cpp.o" \
"CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o" \
"CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o" \
"CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o" \
"CMakeFiles/test_ASIFT.dir/orsa.cpp.o" \
"CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o"
# External object files for target test_ASIFT
test_ASIFT_EXTERNAL_OBJECTS =
test_ASIFT: CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/numerics1.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/frot.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/splines.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/fproj.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/library.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/flimage.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/filter.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/orsa.cpp.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o
test_ASIFT: CMakeFiles/test_ASIFT.dir/build.make
test_ASIFT: io_png/libs/png/libpng.a
test_ASIFT: io_png/libs/zlib/libzlib.a
test_ASIFT: libMatch/libMatch.a
test_ASIFT: libNumerics/libNumerics.a
test_ASIFT: CMakeFiles/test_ASIFT.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX executable test_ASIFT"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test_ASIFT.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/test_ASIFT.dir/build: test_ASIFT
.PHONY : CMakeFiles/test_ASIFT.dir/build
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/numerics1.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/frot.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/splines.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/fproj.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/library.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/flimage.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/filter.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/orsa.cpp.o.requires
CMakeFiles/test_ASIFT.dir/requires: CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o.requires
.PHONY : CMakeFiles/test_ASIFT.dir/requires
CMakeFiles/test_ASIFT.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/test_ASIFT.dir/cmake_clean.cmake
.PHONY : CMakeFiles/test_ASIFT.dir/clean
CMakeFiles/test_ASIFT.dir/depend:
cd /home/harle/catkin_ws/src/demo_ASIFT_src && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/test_ASIFT.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/test_ASIFT.dir/depend

View file

@ -0,0 +1,23 @@
FILE(REMOVE_RECURSE
"CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o"
"CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o"
"CMakeFiles/test_ASIFT.dir/numerics1.cpp.o"
"CMakeFiles/test_ASIFT.dir/frot.cpp.o"
"CMakeFiles/test_ASIFT.dir/splines.cpp.o"
"CMakeFiles/test_ASIFT.dir/fproj.cpp.o"
"CMakeFiles/test_ASIFT.dir/library.cpp.o"
"CMakeFiles/test_ASIFT.dir/flimage.cpp.o"
"CMakeFiles/test_ASIFT.dir/filter.cpp.o"
"CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o"
"CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o"
"CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o"
"CMakeFiles/test_ASIFT.dir/orsa.cpp.o"
"CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o"
"test_ASIFT.pdb"
"test_ASIFT"
)
# Per-language clean rules from dependency scanning.
FOREACH(lang C CXX)
INCLUDE(CMakeFiles/test_ASIFT.dir/cmake_clean_${lang}.cmake OPTIONAL)
ENDFOREACH(lang)

View file

@ -0,0 +1,268 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o
./io_png/libs/png/png.h
./io_png/libs/png/pngconf.h
./io_png/libs/zlib/zconf.h
./io_png/libs/zlib/zlib.h
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.c
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.hpp
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.h
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/match.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/numerics.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/vector.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/test_ASIFT.dir/filter.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
CMakeFiles/test_ASIFT.dir/flimage.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
CMakeFiles/test_ASIFT.dir/fproj.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/test_ASIFT.dir/frot.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
CMakeFiles/test_ASIFT.dir/library.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/library.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/match.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/matrix.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/numerics.h
/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/vector.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/orsa.h
third_party/Eigen/Cholesky
third_party/Eigen/Core
third_party/Eigen/Eigen2Support
third_party/Eigen/Eigenvalues
third_party/Eigen/Householder
third_party/Eigen/Jacobi
third_party/Eigen/LU
third_party/Eigen/QR
third_party/Eigen/SVD
third_party/Eigen/src/Cholesky/LDLT.h
third_party/Eigen/src/Cholesky/LLT.h
third_party/Eigen/src/Core/Array.h
third_party/Eigen/src/Core/ArrayBase.h
third_party/Eigen/src/Core/ArrayWrapper.h
third_party/Eigen/src/Core/Assign.h
third_party/Eigen/src/Core/BandMatrix.h
third_party/Eigen/src/Core/Block.h
third_party/Eigen/src/Core/BooleanRedux.h
third_party/Eigen/src/Core/CommaInitializer.h
third_party/Eigen/src/Core/CwiseBinaryOp.h
third_party/Eigen/src/Core/CwiseNullaryOp.h
third_party/Eigen/src/Core/CwiseUnaryOp.h
third_party/Eigen/src/Core/CwiseUnaryView.h
third_party/Eigen/src/Core/DenseBase.h
third_party/Eigen/src/Core/DenseCoeffsBase.h
third_party/Eigen/src/Core/DenseStorage.h
third_party/Eigen/src/Core/Diagonal.h
third_party/Eigen/src/Core/DiagonalMatrix.h
third_party/Eigen/src/Core/DiagonalProduct.h
third_party/Eigen/src/Core/Dot.h
third_party/Eigen/src/Core/EigenBase.h
third_party/Eigen/src/Core/Flagged.h
third_party/Eigen/src/Core/ForceAlignedAccess.h
third_party/Eigen/src/Core/Functors.h
third_party/Eigen/src/Core/Fuzzy.h
third_party/Eigen/src/Core/GenericPacketMath.h
third_party/Eigen/src/Core/GlobalFunctions.h
third_party/Eigen/src/Core/IO.h
third_party/Eigen/src/Core/Map.h
third_party/Eigen/src/Core/MapBase.h
third_party/Eigen/src/Core/MathFunctions.h
third_party/Eigen/src/Core/Matrix.h
third_party/Eigen/src/Core/MatrixBase.h
third_party/Eigen/src/Core/NestByValue.h
third_party/Eigen/src/Core/NoAlias.h
third_party/Eigen/src/Core/NumTraits.h
third_party/Eigen/src/Core/PermutationMatrix.h
third_party/Eigen/src/Core/PlainObjectBase.h
third_party/Eigen/src/Core/Product.h
third_party/Eigen/src/Core/ProductBase.h
third_party/Eigen/src/Core/Random.h
third_party/Eigen/src/Core/Redux.h
third_party/Eigen/src/Core/Replicate.h
third_party/Eigen/src/Core/ReturnByValue.h
third_party/Eigen/src/Core/Reverse.h
third_party/Eigen/src/Core/Select.h
third_party/Eigen/src/Core/SelfAdjointView.h
third_party/Eigen/src/Core/SelfCwiseBinaryOp.h
third_party/Eigen/src/Core/SolveTriangular.h
third_party/Eigen/src/Core/StableNorm.h
third_party/Eigen/src/Core/Stride.h
third_party/Eigen/src/Core/Swap.h
third_party/Eigen/src/Core/Transpose.h
third_party/Eigen/src/Core/Transpositions.h
third_party/Eigen/src/Core/TriangularMatrix.h
third_party/Eigen/src/Core/VectorBlock.h
third_party/Eigen/src/Core/VectorwiseOp.h
third_party/Eigen/src/Core/Visitor.h
third_party/Eigen/src/Core/arch/AltiVec/Complex.h
third_party/Eigen/src/Core/arch/AltiVec/PacketMath.h
third_party/Eigen/src/Core/arch/Default/Settings.h
third_party/Eigen/src/Core/arch/NEON/Complex.h
third_party/Eigen/src/Core/arch/NEON/PacketMath.h
third_party/Eigen/src/Core/arch/SSE/Complex.h
third_party/Eigen/src/Core/arch/SSE/MathFunctions.h
third_party/Eigen/src/Core/arch/SSE/PacketMath.h
third_party/Eigen/src/Core/products/CoeffBasedProduct.h
third_party/Eigen/src/Core/products/GeneralBlockPanelKernel.h
third_party/Eigen/src/Core/products/GeneralMatrixMatrix.h
third_party/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
third_party/Eigen/src/Core/products/GeneralMatrixVector.h
third_party/Eigen/src/Core/products/Parallelizer.h
third_party/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
third_party/Eigen/src/Core/products/SelfadjointMatrixVector.h
third_party/Eigen/src/Core/products/SelfadjointProduct.h
third_party/Eigen/src/Core/products/SelfadjointRank2Update.h
third_party/Eigen/src/Core/products/TriangularMatrixMatrix.h
third_party/Eigen/src/Core/products/TriangularMatrixVector.h
third_party/Eigen/src/Core/products/TriangularSolverMatrix.h
third_party/Eigen/src/Core/products/TriangularSolverVector.h
third_party/Eigen/src/Core/util/BlasUtil.h
third_party/Eigen/src/Core/util/Constants.h
third_party/Eigen/src/Core/util/DisableStupidWarnings.h
third_party/Eigen/src/Core/util/ForwardDeclarations.h
third_party/Eigen/src/Core/util/Macros.h
third_party/Eigen/src/Core/util/Memory.h
third_party/Eigen/src/Core/util/Meta.h
third_party/Eigen/src/Core/util/ReenableStupidWarnings.h
third_party/Eigen/src/Core/util/StaticAssert.h
third_party/Eigen/src/Core/util/XprHelper.h
third_party/Eigen/src/Eigen2Support/Block.h
third_party/Eigen/src/Eigen2Support/Cwise.h
third_party/Eigen/src/Eigen2Support/CwiseOperators.h
third_party/Eigen/src/Eigen2Support/LU.h
third_party/Eigen/src/Eigen2Support/Lazy.h
third_party/Eigen/src/Eigen2Support/Macros.h
third_party/Eigen/src/Eigen2Support/MathFunctions.h
third_party/Eigen/src/Eigen2Support/Memory.h
third_party/Eigen/src/Eigen2Support/Meta.h
third_party/Eigen/src/Eigen2Support/Minor.h
third_party/Eigen/src/Eigen2Support/QR.h
third_party/Eigen/src/Eigen2Support/SVD.h
third_party/Eigen/src/Eigen2Support/TriangularSolver.h
third_party/Eigen/src/Eigen2Support/VectorBlock.h
third_party/Eigen/src/Eigenvalues/./ComplexSchur.h
third_party/Eigen/src/Eigenvalues/./EigenvaluesCommon.h
third_party/Eigen/src/Eigenvalues/./HessenbergDecomposition.h
third_party/Eigen/src/Eigenvalues/./RealSchur.h
third_party/Eigen/src/Eigenvalues/./Tridiagonalization.h
third_party/Eigen/src/Eigenvalues/ComplexEigenSolver.h
third_party/Eigen/src/Eigenvalues/ComplexSchur.h
third_party/Eigen/src/Eigenvalues/EigenSolver.h
third_party/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
third_party/Eigen/src/Eigenvalues/HessenbergDecomposition.h
third_party/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
third_party/Eigen/src/Eigenvalues/RealSchur.h
third_party/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
third_party/Eigen/src/Eigenvalues/Tridiagonalization.h
third_party/Eigen/src/Householder/BlockHouseholder.h
third_party/Eigen/src/Householder/Householder.h
third_party/Eigen/src/Householder/HouseholderSequence.h
third_party/Eigen/src/Jacobi/Jacobi.h
third_party/Eigen/src/LU/Determinant.h
third_party/Eigen/src/LU/FullPivLU.h
third_party/Eigen/src/LU/Inverse.h
third_party/Eigen/src/LU/PartialPivLU.h
third_party/Eigen/src/LU/arch/Inverse_SSE.h
third_party/Eigen/src/QR/ColPivHouseholderQR.h
third_party/Eigen/src/QR/FullPivHouseholderQR.h
third_party/Eigen/src/QR/HouseholderQR.h
third_party/Eigen/src/SVD/JacobiSVD.h
third_party/Eigen/src/SVD/UpperBidiagonalization.h
third_party/Eigen/src/misc/Image.h
third_party/Eigen/src/misc/Kernel.h
third_party/Eigen/src/misc/Solve.h
third_party/Eigen/src/plugins/ArrayCwiseBinaryOps.h
third_party/Eigen/src/plugins/ArrayCwiseUnaryOps.h
third_party/Eigen/src/plugins/BlockMethods.h
third_party/Eigen/src/plugins/CommonCwiseBinaryOps.h
third_party/Eigen/src/plugins/CommonCwiseUnaryOps.h
third_party/Eigen/src/plugins/MatrixCwiseBinaryOps.h
third_party/Eigen/src/plugins/MatrixCwiseUnaryOps.h
CMakeFiles/test_ASIFT.dir/splines.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.cpp
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o
/home/harle/catkin_ws/src/demo_ASIFT_src/ASIFT_matcher.hpp
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_keypoints.h
/home/harle/catkin_ws/src/demo_ASIFT_src/compute_asift_matches.h
/home/harle/catkin_ws/src/demo_ASIFT_src/demo_lib_sift.h
/home/harle/catkin_ws/src/demo_ASIFT_src/domain.h
/home/harle/catkin_ws/src/demo_ASIFT_src/filter.h
/home/harle/catkin_ws/src/demo_ASIFT_src/flimage.h
/home/harle/catkin_ws/src/demo_ASIFT_src/fproj.h
/home/harle/catkin_ws/src/demo_ASIFT_src/frot.h
/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/io_png.h
/home/harle/catkin_ws/src/demo_ASIFT_src/library.h
/home/harle/catkin_ws/src/demo_ASIFT_src/numerics1.h
/home/harle/catkin_ws/src/demo_ASIFT_src/splines.h
/home/harle/catkin_ws/src/demo_ASIFT_src/test_ASIFT.cpp

View file

@ -0,0 +1,268 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/png/png.h
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/png/pngconf.h
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/zlib/zconf.h
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: ./io_png/libs/zlib/zlib.h
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: io_png/io_png.c
CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o: io_png/io_png.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: ASIFT_matcher.cpp
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: ASIFT_matcher.hpp
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: compute_asift_keypoints.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: compute_asift_matches.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: demo_lib_sift.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: domain.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: filter.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: flimage.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: fproj.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: frot.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: io_png/io_png.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: compute_asift_keypoints.cpp
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: compute_asift_keypoints.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: demo_lib_sift.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: domain.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: filter.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: flimage.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: fproj.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: frot.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: compute_asift_matches.cpp
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: compute_asift_matches.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: demo_lib_sift.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: domain.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: filter.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: flimage.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: fproj.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: frot.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: libMatch/match.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/matrix.cpp
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/matrix.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/numerics.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: libNumerics/vector.cpp
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: orsa.h
CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: demo_lib_sift.cpp
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: demo_lib_sift.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: domain.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: filter.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: flimage.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/filter.cpp.o: filter.cpp
CMakeFiles/test_ASIFT.dir/filter.cpp.o: filter.h
CMakeFiles/test_ASIFT.dir/filter.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/flimage.cpp.o: flimage.cpp
CMakeFiles/test_ASIFT.dir/flimage.cpp.o: flimage.h
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: fproj.cpp
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: fproj.h
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/fproj.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/frot.cpp.o: frot.cpp
CMakeFiles/test_ASIFT.dir/frot.cpp.o: frot.h
CMakeFiles/test_ASIFT.dir/frot.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/library.cpp.o: library.cpp
CMakeFiles/test_ASIFT.dir/library.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o: numerics1.cpp
CMakeFiles/test_ASIFT.dir/numerics1.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: libMatch/match.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: libNumerics/matrix.cpp
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: libNumerics/matrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: libNumerics/numerics.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: libNumerics/vector.cpp
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: orsa.cpp
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: orsa.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Cholesky
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Core
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Eigen2Support
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Eigenvalues
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Householder
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/Jacobi
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/LU
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/QR
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/SVD
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Cholesky/LDLT.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Cholesky/LLT.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Array.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ArrayBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ArrayWrapper.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Assign.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/BandMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Block.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/BooleanRedux.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CommaInitializer.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseBinaryOp.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseNullaryOp.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseUnaryOp.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/CwiseUnaryView.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DenseBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DenseCoeffsBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DenseStorage.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Diagonal.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DiagonalMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/DiagonalProduct.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Dot.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/EigenBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Flagged.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ForceAlignedAccess.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Functors.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Fuzzy.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/GenericPacketMath.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/GlobalFunctions.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/IO.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Map.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/MapBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/MathFunctions.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Matrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/MatrixBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/NestByValue.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/NoAlias.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/NumTraits.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/PermutationMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/PlainObjectBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Product.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ProductBase.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Random.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Redux.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Replicate.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/ReturnByValue.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Reverse.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Select.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/SelfAdjointView.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/SelfCwiseBinaryOp.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/SolveTriangular.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/StableNorm.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Stride.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Swap.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Transpose.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Transpositions.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/TriangularMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/VectorBlock.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/VectorwiseOp.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/Visitor.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/AltiVec/Complex.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/AltiVec/PacketMath.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/Default/Settings.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/NEON/Complex.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/NEON/PacketMath.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/SSE/Complex.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/SSE/MathFunctions.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/arch/SSE/PacketMath.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/CoeffBasedProduct.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralBlockPanelKernel.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralMatrixMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/GeneralMatrixVector.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/Parallelizer.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointMatrixVector.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointProduct.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/SelfadjointRank2Update.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularMatrixMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularMatrixVector.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularSolverMatrix.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/products/TriangularSolverVector.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/BlasUtil.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Constants.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/DisableStupidWarnings.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/ForwardDeclarations.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Macros.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Memory.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/Meta.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/ReenableStupidWarnings.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/StaticAssert.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Core/util/XprHelper.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Block.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Cwise.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/CwiseOperators.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/LU.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Lazy.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Macros.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/MathFunctions.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Memory.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Meta.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/Minor.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/QR.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/SVD.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/TriangularSolver.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigen2Support/VectorBlock.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./ComplexSchur.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./EigenvaluesCommon.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./HessenbergDecomposition.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./RealSchur.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/./Tridiagonalization.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/ComplexEigenSolver.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/ComplexSchur.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/EigenSolver.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/HessenbergDecomposition.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/RealSchur.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Eigenvalues/Tridiagonalization.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Householder/BlockHouseholder.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Householder/Householder.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Householder/HouseholderSequence.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/Jacobi/Jacobi.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/Determinant.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/FullPivLU.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/Inverse.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/PartialPivLU.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/LU/arch/Inverse_SSE.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/QR/ColPivHouseholderQR.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/QR/FullPivHouseholderQR.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/QR/HouseholderQR.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/SVD/JacobiSVD.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/SVD/UpperBidiagonalization.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/misc/Image.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/misc/Kernel.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/misc/Solve.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/ArrayCwiseBinaryOps.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/ArrayCwiseUnaryOps.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/BlockMethods.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/CommonCwiseBinaryOps.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/CommonCwiseUnaryOps.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/MatrixCwiseBinaryOps.h
CMakeFiles/test_ASIFT.dir/orsa.cpp.o: third_party/Eigen/src/plugins/MatrixCwiseUnaryOps.h
CMakeFiles/test_ASIFT.dir/splines.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/splines.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/splines.cpp.o: splines.cpp
CMakeFiles/test_ASIFT.dir/splines.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: ASIFT_matcher.hpp
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: compute_asift_keypoints.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: compute_asift_matches.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: demo_lib_sift.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: domain.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: filter.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: flimage.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: fproj.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: frot.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: io_png/io_png.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: library.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: numerics1.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: splines.h
CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o: test_ASIFT.cpp

View file

@ -0,0 +1,13 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile C with /usr/bin/cc
# compile CXX with /usr/bin/c++
C_FLAGS = -I/home/harle/catkin_ws/src/demo_ASIFT_src/. -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png/libs/png
C_DEFINES =
CXX_FLAGS = -fopenmp -Wall -Wno-strict-aliasing -Wextra -Wno-write-strings -Wno-deprecated -ansi -O3 -ftree-vectorize -funroll-loops -I/home/harle/catkin_ws/src/demo_ASIFT_src/. -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png -I/home/harle/catkin_ws/src/demo_ASIFT_src/./io_png/libs/png
CXX_DEFINES =

View file

@ -0,0 +1 @@
/usr/bin/c++ -fopenmp -Wall -Wno-strict-aliasing -Wextra -Wno-write-strings -Wno-deprecated -ansi -O3 -ftree-vectorize -funroll-loops CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o CMakeFiles/test_ASIFT.dir/numerics1.cpp.o CMakeFiles/test_ASIFT.dir/frot.cpp.o CMakeFiles/test_ASIFT.dir/splines.cpp.o CMakeFiles/test_ASIFT.dir/fproj.cpp.o CMakeFiles/test_ASIFT.dir/library.cpp.o CMakeFiles/test_ASIFT.dir/flimage.cpp.o CMakeFiles/test_ASIFT.dir/filter.cpp.o CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o CMakeFiles/test_ASIFT.dir/orsa.cpp.o CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o -o test_ASIFT -rdynamic io_png/libs/png/libpng.a io_png/libs/zlib/libzlib.a libMatch/libMatch.a libNumerics/libNumerics.a

View file

@ -0,0 +1,15 @@
CMAKE_PROGRESS_1 = 38
CMAKE_PROGRESS_2 = 39
CMAKE_PROGRESS_3 = 40
CMAKE_PROGRESS_4 = 41
CMAKE_PROGRESS_5 = 42
CMAKE_PROGRESS_6 = 43
CMAKE_PROGRESS_7 = 44
CMAKE_PROGRESS_8 = 45
CMAKE_PROGRESS_9 = 46
CMAKE_PROGRESS_10 = 47
CMAKE_PROGRESS_11 = 48
CMAKE_PROGRESS_12 = 49
CMAKE_PROGRESS_13 = 50
CMAKE_PROGRESS_14 = 51

View file

@ -0,0 +1,54 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# Author : Pierre Moulon
# Date : December 2010.
# README :
# The following cmake works for windows.
# Openmp is accessible only on the professionnal version of Visual Studio.
# In order to use OPENMP in visual your have to add the preprocessor _OPENMP
# and enable OPENMP library in C/C++/Language.
PROJECT(ASIFT)
ADD_SUBDIRECTORY(io_png)
ADD_SUBDIRECTORY(libMatch)
ADD_SUBDIRECTORY(libNumerics)
FIND_PACKAGE(OpenMP)
if (OPENMP_FOUND)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif (OPENMP_FOUND)
IF(MSVC)
ADD_DEFINITIONS(/arch:SSE2)
ENDIF(MSVC)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-strict-aliasing")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wno-write-strings")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -ansi")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -ftree-vectorize -funroll-loops")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
set(ASIFT_srcs
numerics1.cpp frot.cpp splines.cpp fproj.cpp
library.cpp flimage.cpp filter.cpp
demo_lib_sift.cpp compute_asift_keypoints.cpp
compute_asift_matches.cpp
orsa.cpp #demo_ASIFT.cpp
#ASIFT_matcher.cpp
io_png/io_png.c)
include_directories(.
./io_png
./io_png/libs/png)
add_executable(demo_ASIFT demo_ASIFT.cpp ${ASIFT_srcs})
TARGET_LINK_LIBRARIES(demo_ASIFT png zlib Match Numerics)
add_executable(test_ASIFT test_ASIFT.cpp ASIFT_matcher.cpp ${ASIFT_srcs})
TARGET_LINK_LIBRARIES(test_ASIFT png zlib Match Numerics)

View file

@ -0,0 +1,53 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# Author : Pierre Moulon
# Date : December 2010.
# README :
# The following cmake works for windows.
# Openmp is accessible only on the professionnal version of Visual Studio.
# In order to use OPENMP in visual your have to add the preprocessor _OPENMP
# and enable OPENMP library in C/C++/Language.
PROJECT(ASIFT)
ADD_SUBDIRECTORY(io_png)
ADD_SUBDIRECTORY(libMatch)
ADD_SUBDIRECTORY(libNumerics)
FIND_PACKAGE(OpenMP)
if (OPENMP_FOUND)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif (OPENMP_FOUND)
IF(MSVC)
ADD_DEFINITIONS(/arch:SSE2)
ENDIF(MSVC)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-strict-aliasing")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wno-write-strings")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -ansi")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -ftree-vectorize -funroll-loops")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
set(ASIFT_srcs
numerics1.cpp frot.cpp splines.cpp fproj.cpp
library.cpp flimage.cpp filter.cpp
demo_lib_sift.cpp compute_asift_keypoints.cpp
compute_asift_matches.cpp
orsa.cpp #demo_ASIFT.cpp
#ASIFT_matcher.cpp
io_png/io_png.c)
include_directories(.
./io_png
./io_png/libs/png)
add_executable(demo_ASIFT demo_ASIFT.cpp ${ASIFT_srcs})
add_executable(test_ASIFT test_ASIFT.cpp ASIFT_matcher.cpp ${ASIFT_srcs})
TARGET_LINK_LIBRARIES(demo_ASIFT png zlib Match Numerics)

View file

@ -0,0 +1,72 @@
Copyright (c) 2011, Guoshen Yu and Jean-Michel Morel
All rights reserved.
The source code files in this directory implement as tightly as
possible algorithms described in this IPOL article. They are made
available to the exclusive aim of serving as scientific tools enabling
the verification of the soundness and completeness of the algorithmic
descriptions.
These source codes implement an algorithm possibly linked to the patent
[1][2]. Compiling or running this code may violate patents in certain
countries. For this reason, the use of the source files
- demo_ASIFT.cpp
- compute_asift_keypoints.cpp
- compute_asift_matches.cpp
- demo_lib_sift.cpp
may be restricted in certain countries to non profit research and non profit
educational purposes. In certain countries, redistribution or commercial
use of these source files may require the consent of the patent owner.
[1] Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
affine recognition recognition of shapes (WO/2009/150361), patent pending.
[2] David Lowe "Method and apparatus for identifying scale invariant
features in an image and use of same for locating an object in an
image", U.S. Patent 6,711,293.
In short, be careful before you download, compile, use, modify, or
redistribute these source codes. The situation being different for every
country and changing over time, it is your responsibility to check that
you are not infringing a patent by using this source code. IPOL therefore
invites potential users to consult a patent lawyer. If and only if you are
free from any patent restriction, then you can enjoy the BSD license terms.
The source code in the subdirectory third_party comes from the Eigen
library, which is LGPL-licensed.
(see http://www.gnu.org/copyleft/lesser.html)
fproj.cpp, frot.cpp, orsa.cpp, libMatch, libNumerics
copyright (C) 2007-2010, Lionel Moisan <Lionel.Moisan@parisdescartes.fr>,
Universite Paris Descartes, distributed under the BSD license.
With the exception of the files mentioned above, redistribution and use
in source and binary forms, with or without modification, are permitted
provided that the following conditions are met: the rest of usual BSD
license follows.
BSD LICENSE
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This license file must be retained with all copies of the software,
including any modified or derivative versions.

View file

@ -0,0 +1,647 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/harle/catkin_ws/src/demo_ASIFT_src
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running interactive CMake command-line interface..."
/usr/bin/cmake -i .
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles/progress.marks
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/harle/catkin_ws/src/demo_ASIFT_src/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named demo_ASIFT
# Build rule for target.
demo_ASIFT: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 demo_ASIFT
.PHONY : demo_ASIFT
# fast build rule for target.
demo_ASIFT/fast:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/build
.PHONY : demo_ASIFT/fast
#=============================================================================
# Target rules for targets named test_ASIFT
# Build rule for target.
test_ASIFT: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 test_ASIFT
.PHONY : test_ASIFT
# fast build rule for target.
test_ASIFT/fast:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/build
.PHONY : test_ASIFT/fast
#=============================================================================
# Target rules for targets named zlib
# Build rule for target.
zlib: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 zlib
.PHONY : zlib
# fast build rule for target.
zlib/fast:
$(MAKE) -f io_png/libs/zlib/CMakeFiles/zlib.dir/build.make io_png/libs/zlib/CMakeFiles/zlib.dir/build
.PHONY : zlib/fast
#=============================================================================
# Target rules for targets named png
# Build rule for target.
png: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 png
.PHONY : png
# fast build rule for target.
png/fast:
$(MAKE) -f io_png/libs/png/CMakeFiles/png.dir/build.make io_png/libs/png/CMakeFiles/png.dir/build
.PHONY : png/fast
#=============================================================================
# Target rules for targets named Match
# Build rule for target.
Match: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 Match
.PHONY : Match
# fast build rule for target.
Match/fast:
$(MAKE) -f libMatch/CMakeFiles/Match.dir/build.make libMatch/CMakeFiles/Match.dir/build
.PHONY : Match/fast
#=============================================================================
# Target rules for targets named Numerics
# Build rule for target.
Numerics: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 Numerics
.PHONY : Numerics
# fast build rule for target.
Numerics/fast:
$(MAKE) -f libNumerics/CMakeFiles/Numerics.dir/build.make libNumerics/CMakeFiles/Numerics.dir/build
.PHONY : Numerics/fast
ASIFT_matcher.o: ASIFT_matcher.cpp.o
.PHONY : ASIFT_matcher.o
# target to build an object file
ASIFT_matcher.cpp.o:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.o
.PHONY : ASIFT_matcher.cpp.o
ASIFT_matcher.i: ASIFT_matcher.cpp.i
.PHONY : ASIFT_matcher.i
# target to preprocess a source file
ASIFT_matcher.cpp.i:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.i
.PHONY : ASIFT_matcher.cpp.i
ASIFT_matcher.s: ASIFT_matcher.cpp.s
.PHONY : ASIFT_matcher.s
# target to generate assembly for a file
ASIFT_matcher.cpp.s:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/ASIFT_matcher.cpp.s
.PHONY : ASIFT_matcher.cpp.s
compute_asift_keypoints.o: compute_asift_keypoints.cpp.o
.PHONY : compute_asift_keypoints.o
# target to build an object file
compute_asift_keypoints.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.o
.PHONY : compute_asift_keypoints.cpp.o
compute_asift_keypoints.i: compute_asift_keypoints.cpp.i
.PHONY : compute_asift_keypoints.i
# target to preprocess a source file
compute_asift_keypoints.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.i
.PHONY : compute_asift_keypoints.cpp.i
compute_asift_keypoints.s: compute_asift_keypoints.cpp.s
.PHONY : compute_asift_keypoints.s
# target to generate assembly for a file
compute_asift_keypoints.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_keypoints.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_keypoints.cpp.s
.PHONY : compute_asift_keypoints.cpp.s
compute_asift_matches.o: compute_asift_matches.cpp.o
.PHONY : compute_asift_matches.o
# target to build an object file
compute_asift_matches.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.o
.PHONY : compute_asift_matches.cpp.o
compute_asift_matches.i: compute_asift_matches.cpp.i
.PHONY : compute_asift_matches.i
# target to preprocess a source file
compute_asift_matches.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.i
.PHONY : compute_asift_matches.cpp.i
compute_asift_matches.s: compute_asift_matches.cpp.s
.PHONY : compute_asift_matches.s
# target to generate assembly for a file
compute_asift_matches.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/compute_asift_matches.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/compute_asift_matches.cpp.s
.PHONY : compute_asift_matches.cpp.s
demo_ASIFT.o: demo_ASIFT.cpp.o
.PHONY : demo_ASIFT.o
# target to build an object file
demo_ASIFT.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.o
.PHONY : demo_ASIFT.cpp.o
demo_ASIFT.i: demo_ASIFT.cpp.i
.PHONY : demo_ASIFT.i
# target to preprocess a source file
demo_ASIFT.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.i
.PHONY : demo_ASIFT.cpp.i
demo_ASIFT.s: demo_ASIFT.cpp.s
.PHONY : demo_ASIFT.s
# target to generate assembly for a file
demo_ASIFT.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_ASIFT.cpp.s
.PHONY : demo_ASIFT.cpp.s
demo_lib_sift.o: demo_lib_sift.cpp.o
.PHONY : demo_lib_sift.o
# target to build an object file
demo_lib_sift.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.o
.PHONY : demo_lib_sift.cpp.o
demo_lib_sift.i: demo_lib_sift.cpp.i
.PHONY : demo_lib_sift.i
# target to preprocess a source file
demo_lib_sift.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.i
.PHONY : demo_lib_sift.cpp.i
demo_lib_sift.s: demo_lib_sift.cpp.s
.PHONY : demo_lib_sift.s
# target to generate assembly for a file
demo_lib_sift.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/demo_lib_sift.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/demo_lib_sift.cpp.s
.PHONY : demo_lib_sift.cpp.s
filter.o: filter.cpp.o
.PHONY : filter.o
# target to build an object file
filter.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/filter.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/filter.cpp.o
.PHONY : filter.cpp.o
filter.i: filter.cpp.i
.PHONY : filter.i
# target to preprocess a source file
filter.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/filter.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/filter.cpp.i
.PHONY : filter.cpp.i
filter.s: filter.cpp.s
.PHONY : filter.s
# target to generate assembly for a file
filter.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/filter.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/filter.cpp.s
.PHONY : filter.cpp.s
flimage.o: flimage.cpp.o
.PHONY : flimage.o
# target to build an object file
flimage.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/flimage.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/flimage.cpp.o
.PHONY : flimage.cpp.o
flimage.i: flimage.cpp.i
.PHONY : flimage.i
# target to preprocess a source file
flimage.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/flimage.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/flimage.cpp.i
.PHONY : flimage.cpp.i
flimage.s: flimage.cpp.s
.PHONY : flimage.s
# target to generate assembly for a file
flimage.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/flimage.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/flimage.cpp.s
.PHONY : flimage.cpp.s
fproj.o: fproj.cpp.o
.PHONY : fproj.o
# target to build an object file
fproj.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/fproj.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/fproj.cpp.o
.PHONY : fproj.cpp.o
fproj.i: fproj.cpp.i
.PHONY : fproj.i
# target to preprocess a source file
fproj.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/fproj.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/fproj.cpp.i
.PHONY : fproj.cpp.i
fproj.s: fproj.cpp.s
.PHONY : fproj.s
# target to generate assembly for a file
fproj.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/fproj.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/fproj.cpp.s
.PHONY : fproj.cpp.s
frot.o: frot.cpp.o
.PHONY : frot.o
# target to build an object file
frot.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/frot.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/frot.cpp.o
.PHONY : frot.cpp.o
frot.i: frot.cpp.i
.PHONY : frot.i
# target to preprocess a source file
frot.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/frot.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/frot.cpp.i
.PHONY : frot.cpp.i
frot.s: frot.cpp.s
.PHONY : frot.s
# target to generate assembly for a file
frot.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/frot.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/frot.cpp.s
.PHONY : frot.cpp.s
io_png/io_png.o: io_png/io_png.c.o
.PHONY : io_png/io_png.o
# target to build an object file
io_png/io_png.c.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/io_png/io_png.c.o
.PHONY : io_png/io_png.c.o
io_png/io_png.i: io_png/io_png.c.i
.PHONY : io_png/io_png.i
# target to preprocess a source file
io_png/io_png.c.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/io_png/io_png.c.i
.PHONY : io_png/io_png.c.i
io_png/io_png.s: io_png/io_png.c.s
.PHONY : io_png/io_png.s
# target to generate assembly for a file
io_png/io_png.c.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/io_png/io_png.c.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/io_png/io_png.c.s
.PHONY : io_png/io_png.c.s
library.o: library.cpp.o
.PHONY : library.o
# target to build an object file
library.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/library.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/library.cpp.o
.PHONY : library.cpp.o
library.i: library.cpp.i
.PHONY : library.i
# target to preprocess a source file
library.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/library.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/library.cpp.i
.PHONY : library.cpp.i
library.s: library.cpp.s
.PHONY : library.s
# target to generate assembly for a file
library.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/library.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/library.cpp.s
.PHONY : library.cpp.s
numerics1.o: numerics1.cpp.o
.PHONY : numerics1.o
# target to build an object file
numerics1.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/numerics1.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/numerics1.cpp.o
.PHONY : numerics1.cpp.o
numerics1.i: numerics1.cpp.i
.PHONY : numerics1.i
# target to preprocess a source file
numerics1.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/numerics1.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/numerics1.cpp.i
.PHONY : numerics1.cpp.i
numerics1.s: numerics1.cpp.s
.PHONY : numerics1.s
# target to generate assembly for a file
numerics1.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/numerics1.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/numerics1.cpp.s
.PHONY : numerics1.cpp.s
orsa.o: orsa.cpp.o
.PHONY : orsa.o
# target to build an object file
orsa.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/orsa.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/orsa.cpp.o
.PHONY : orsa.cpp.o
orsa.i: orsa.cpp.i
.PHONY : orsa.i
# target to preprocess a source file
orsa.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/orsa.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/orsa.cpp.i
.PHONY : orsa.cpp.i
orsa.s: orsa.cpp.s
.PHONY : orsa.s
# target to generate assembly for a file
orsa.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/orsa.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/orsa.cpp.s
.PHONY : orsa.cpp.s
splines.o: splines.cpp.o
.PHONY : splines.o
# target to build an object file
splines.cpp.o:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/splines.cpp.o
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/splines.cpp.o
.PHONY : splines.cpp.o
splines.i: splines.cpp.i
.PHONY : splines.i
# target to preprocess a source file
splines.cpp.i:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/splines.cpp.i
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/splines.cpp.i
.PHONY : splines.cpp.i
splines.s: splines.cpp.s
.PHONY : splines.s
# target to generate assembly for a file
splines.cpp.s:
$(MAKE) -f CMakeFiles/demo_ASIFT.dir/build.make CMakeFiles/demo_ASIFT.dir/splines.cpp.s
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/splines.cpp.s
.PHONY : splines.cpp.s
test_ASIFT.o: test_ASIFT.cpp.o
.PHONY : test_ASIFT.o
# target to build an object file
test_ASIFT.cpp.o:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.o
.PHONY : test_ASIFT.cpp.o
test_ASIFT.i: test_ASIFT.cpp.i
.PHONY : test_ASIFT.i
# target to preprocess a source file
test_ASIFT.cpp.i:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.i
.PHONY : test_ASIFT.cpp.i
test_ASIFT.s: test_ASIFT.cpp.s
.PHONY : test_ASIFT.s
# target to generate assembly for a file
test_ASIFT.cpp.s:
$(MAKE) -f CMakeFiles/test_ASIFT.dir/build.make CMakeFiles/test_ASIFT.dir/test_ASIFT.cpp.s
.PHONY : test_ASIFT.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... demo_ASIFT"
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... test_ASIFT"
@echo "... zlib"
@echo "... png"
@echo "... Match"
@echo "... Numerics"
@echo "... ASIFT_matcher.o"
@echo "... ASIFT_matcher.i"
@echo "... ASIFT_matcher.s"
@echo "... compute_asift_keypoints.o"
@echo "... compute_asift_keypoints.i"
@echo "... compute_asift_keypoints.s"
@echo "... compute_asift_matches.o"
@echo "... compute_asift_matches.i"
@echo "... compute_asift_matches.s"
@echo "... demo_ASIFT.o"
@echo "... demo_ASIFT.i"
@echo "... demo_ASIFT.s"
@echo "... demo_lib_sift.o"
@echo "... demo_lib_sift.i"
@echo "... demo_lib_sift.s"
@echo "... filter.o"
@echo "... filter.i"
@echo "... filter.s"
@echo "... flimage.o"
@echo "... flimage.i"
@echo "... flimage.s"
@echo "... fproj.o"
@echo "... fproj.i"
@echo "... fproj.s"
@echo "... frot.o"
@echo "... frot.i"
@echo "... frot.s"
@echo "... io_png/io_png.o"
@echo "... io_png/io_png.i"
@echo "... io_png/io_png.s"
@echo "... library.o"
@echo "... library.i"
@echo "... library.s"
@echo "... numerics1.o"
@echo "... numerics1.i"
@echo "... numerics1.s"
@echo "... orsa.o"
@echo "... orsa.i"
@echo "... orsa.s"
@echo "... splines.o"
@echo "... splines.i"
@echo "... splines.s"
@echo "... test_ASIFT.o"
@echo "... test_ASIFT.i"
@echo "... test_ASIFT.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system

View file

@ -0,0 +1,267 @@
Demo code for Affine-SIFT (ASIFT) image matching
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Jean-Michel Morel (Jean-Michel Morel <morel@cmla.ens-cachan.fr>)
Guoshen Yu (yu@cmap.polytechnique.fr)
Version 2.2, April. 10, 2010
This directory contains the C++ code for ASIFT, a fully affine invariant image
matching algorithm.
************************** Unix/Linux/Mac Users **************************
For Unix/Linux and Mac users, the code is ready to be compiled. The
executable adapted to your computer system is generated after compiling.
**************************************************************************
***************************** Windows Users ******************************
For Windows users, the executable as well as the code is provided.
(For the executable, you need to download separately the installation file from
http://www.ipol.im/pub/algo/my_affine_sift/ .)
**************************************************************************
**************************** Matlab Interface ****************************
Although the ASIFT program is standalone and can be executed without Matlab,
a Matlab interface is provided (for Unix/Linux/Mac/Windows users).
**************************************************************************
Source code compilation and software usage across platforms is detailed in this
manual. If you have any problem using the this program, please contact Guoshen Yu
yu@cmap.polytechnique.fr
For more information about ASIFT, please see the web page at
http://www.ipol.im/pub/algo/my_affine_sift/.
You can also try ASIFT using the online demo. The online demo allows testing
ASIFT with your own images without installing the program.
If you use the ASIFT code or software, please cite the following paper:
J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
-------------------------------------------------------------------------
-------------------------------------------------------------------------
I. UNIX/LINUX/MAC USER GUIDE
The source code needs to be compiled before the software can be used.
The compilation requires the make program, and is typically straightforward.
- Library.
This code requires the libpng library. You can automatically download,
compile and include this library to the compiled program by adding the
LOCAL_LIBS=1 option to the make commands.
- Image format.
Only the PNG format is supported.
-------------------------------------------------------------------------
Source compilation and software usage
1. Download the ASIFT code package and extract it. Go to that directory.
2. Compile the source code (on Unix/Linux/Mac OS).
There are two ways to compile the code.
(1) RECOMMENDED, with Open Multi-Processing multithread parallelization
(http://openmp.org/). Roughly speaking, it accelerates the program using the
multiple processors in the computer. Run
make OMP=1
OR
(2) If the complier does not support OpenMp, run
make
ATTENTION:
If libpng (the official PNG reference library) is not installed in your computer,
an option LOCAL_LIBS=1 should be added after make. Example
make OMP=1 LOCAL_LIBS=1
The compilation will automatically download and compile libpng and zlib and
include the library to the program.
3. Run ASIFT.
./demo_ASIFT imgIn1.png, imgIn2.png imgOutVert.png imgOutHori.png matchings.txt
keys1.txt keys2.txt
-- imgIn1.png, imgIn2.png: Input images (in png format).
-- imgOutVert.png, imgOutHori.png: Output images (vertical/horizontal concatenated).
The detected matches are connected by write lines.
-- matchings.txt: The file format starts with 1 integer giving the total number
of matches. Then each line specifies the coordinates (col1, row1, col2, row2)
of a pair of matched points. (col: horizontal axis, from left to right.
row: vertical axis, from top to bottom.)
-- keys1.txt keys2.txt: ASIFT keypoints in the two images, in the same format
as the SIFT keypoints of David Lowe. The file starts with 2 integers giving
the total number of keypoints and the length of the descriptor vector for each
keypoint (128). Then the location of each keypoint in the image is specified
by 4 floating point numbers giving subpixel column and row location, scale,
and orientation (in radians from -PI to PI). Finally, the invariant descriptor
vector for the keypoint is given as a list of 128 integers in range [0,255].
-- [optional 0/1]. 1: input images resize to an area equal to 800x600 for ASIFT,
in keeping the aspect ratio (by default). 0: no resize. The resize is to limit
the ASIFT computation time. The results (output images, keypoint coordinates
and scales) are normalized to the original image size, so the resize is
"transparent" to the user.
Example, run
./demo_ASIFT adam1.png adam2.png imgOutVert.png imgOutHori.png matchings.txt
keys1.txt keys2.txt
You get on the screen
"WARNING: The input images are resized to 800x600 for ASIFT.
But the results will be normalized to the original image size.
Computing keypoints on the two images...
12928 ASIFT keypoints are detected.
8972 ASIFT keypoints are detected.
Keypoints computation accomplished in 24 seconds.
Matching the keypoints...
The two images match! 914 matchings are identified. log(nfa)=-1496.88.
Keypoints matching accomplished in 4 seconds."
-------------------------------------------------------------------------
-------------------------------------------------------------------------
II. WINDOWS USER GUIDE
_________________________________________________________________________
A. EXECUTABLE
_________________________________________________________________________
For Windows users who do not want to recompile the source code, an ASIFT executable
installation file can be download separately from
http://www.ipol.im/pub/algo/my_affine_sift/.
- The provided Windows executable demo_ASIFT.exe has been compiled by the Intel C++
compiler on 32-bit Windows. It is executable on both 32-bit and 64-bit Windows,
although it is not optimized for the latter.
- The executable has not been extensively tested. If you have any problem using it,
please contact Guoshen Yu yu@cmap.polytechnique.fr.
Usage:
1. Download the installation file demo_ASIFTsetp.exe from
http://www.ipol.im/pub/algo/my_affine_sift/
2. Install the program.
Double click the file demo_ASIFTsetp.exe. A small library distributed by Microsoft
(Microsoft Visual C++ 2010 Redistributable Package) will be installed to your PC.
The ASIFT software will be installed to C:\Program Files\demo_ASIFT
3. Run ASIFT.
Run a Dos command prompt (you find it in Start > All Programs > Accessories
> Command Prompt)
- Go to the ASIFT directory by typing
cd C:\Program Files\demo_ASIFT.
- Run the ASIFT program by typing
demo_ASIFT adam1.png adam2.png imgOutVert.png imgOutHori.png matchings.txt
keys1.txt keys2.txt
(It follows the same syntax of that for Unix/Linux/Mac described above.)
You can of course move the ASIFT directory C:\Program Files\demo_ASIFT to
wherever that is more convenient.
-------------------------------------------------------------------------
Troubleshooting
1. If you are able to run the program but the results are not written to
the output files, check and make sure that you have the write file permission
in the demo_ASIFT directory.
2. Microsoft Visual Studio is NOT required to run the program. However,
in case you cannot run the program (for example some library or dll is missing),
you may try installing a Microsoft Visual Studio and then running again
the program.
_________________________________________________________________________
B. SOURCE COMPILATION
_________________________________________________________________________
Windows users who want to recompile the source code themselves, please follow the
guidelines below for a smooth compilation.
It is assumed that the CMake and Visual Studio are installed. Moreover,
the Intel C++ compiler, which supports vectorization, is highly recommended.
For an optimized software execution speed, it is crucial that both OpenMP
and vectorization are activated and effective (see below). (Note that
the CPU must have SSE2 or higher instruction sets in order to make vectorization
possible. The /arch:SSE2 opiton must be turned on, which should have
been normally the case.)
1. If you don't have CMake, an open-source build system,
then download and install it from http://cmake.org
2. Launch the CMake program cmake-gui.exe
3. Provide the paths
- "Where is the source code :" (the path that leads to CMakeLists.txt and
the ASIFT source code), e.g., E:/demo_ASIFT_src
- Create a subdirectory Build under demo_ASIFT_src
- "Where to build the binaries:" (the directory where build project and
object files will be stored), e.g., E:/demo_ASIFT_src/Build
4. Press "Configure" and select "Use default native compilers" and
select the code IDE that you have in your machine, e.g., Visual Studio 10.
5. Press "Generate". A Visual Studio solution file ASIFT.sln will
be created under E:/demo_ASIFT_src/Build
6. Launch Visual Studio 10, and open ASIFT.sln.
7. Switch the mode from Debug to Release.
8. Not mandatory, but HIGHLY RECOMMENDED (for program acceleration).
- Switch from the Microsoft Visual C++
compiler to the Intel C++ compiler, if you have it.
- Turn on OpenMP
Click the demo_ASIFT project in the Solution Explorer. Select the menu
Project -> Property -> Configuration Properties -> C/C++ -> Language [Intel C++]
Set OpenMP Support to "Generate Parallel Code (/Qopenmp)"
- Open demo_lib_sift.cpp under demo_ASIFT/Source Files in the Solution Explorer.
Make the following code change in demo_lib_sift.cpp.
unsigned short distsq = 0; ----> int distsq = 0;
Note: This manipulation allows the compiler to vectorize the SIFT code
comparison, which accelerates the ASIFT keypoint matching by a factor of
from 5 to 20. To have the vectorization possible, this distsq variable must
be in unsigned short when compiled with make on Linux/Mac, and be instead
int when complied with the Intel C++ on Windows. Therefore
this format should be adapted according to the compiler. (So don't
forget to change it back if you want to compile the code on Linux/Mac.)
This vectorization is not achieved with the Visual C++ compiler.
9. Build solution. An executable will be created in Build/Release.
Run it in a Dos command prompt.
demo_ASIFT adam1.png adam2.png imgOutVert.png imgOutHori.png matchings.txt
keys1.txt keys2.txt
(It follows the same syntax of that for Unix/Linux/Mac described above.)
-------------------------------------------------------------------------
-------------------------------------------------------------------------
III. MATLAB INTERFACE (OPTIONAL)
Run ASIFT via Matlab: Open test_demo_ASIFT.m in Matlab and execute the script.
The Matlab interface reads most standard image formats.
-------------------------------------------------------------------------
-------------------------------------------------------------------------
CREDITS
- The epipolar geometry filtering algorithm ORSA of Moisan and Stival is
used at the end of the ASIFT algorithm
to eliminate false matches.
http://www.math-info.univ-paris5.fr/~moisan/epipolar/
Pierre Moulon contributed to the SVD subroutine of ORSA. The SVD subroutine
uses
the toolbox Eigen, which is LGPL-licensed.
- We would like to thank Nicolas Limare for his help on developing the program,
and Pierre Moulon for his help on making the Windows compilation much easier with
CMake.
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Licensing conditions
This software is being made available for research purposes only. See the
file LICENSE in this directory for conditions of use.

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View file

@ -0,0 +1,52 @@
# Install script for directory: /home/harle/catkin_ws/src/demo_ASIFT_src
# Set the install prefix
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
SET(CMAKE_INSTALL_PREFIX "/usr/local")
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
IF(BUILD_TYPE)
STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
ELSE(BUILD_TYPE)
SET(CMAKE_INSTALL_CONFIG_NAME "")
ENDIF(BUILD_TYPE)
MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
# Set the component getting installed.
IF(NOT CMAKE_INSTALL_COMPONENT)
IF(COMPONENT)
MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
ELSE(COMPONENT)
SET(CMAKE_INSTALL_COMPONENT)
ENDIF(COMPONENT)
ENDIF(NOT CMAKE_INSTALL_COMPONENT)
# Install shared libraries without execute permission?
IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
SET(CMAKE_INSTALL_SO_NO_EXE "1")
ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
IF(NOT CMAKE_INSTALL_LOCAL_ONLY)
# Include the install script for each subdirectory.
INCLUDE("/home/harle/catkin_ws/src/demo_ASIFT_src/io_png/cmake_install.cmake")
INCLUDE("/home/harle/catkin_ws/src/demo_ASIFT_src/libMatch/cmake_install.cmake")
INCLUDE("/home/harle/catkin_ws/src/demo_ASIFT_src/libNumerics/cmake_install.cmake")
ENDIF(NOT CMAKE_INSTALL_LOCAL_ONLY)
IF(CMAKE_INSTALL_COMPONENT)
SET(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
ELSE(CMAKE_INSTALL_COMPONENT)
SET(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
ENDIF(CMAKE_INSTALL_COMPONENT)
FILE(WRITE "/home/harle/catkin_ws/src/demo_ASIFT_src/${CMAKE_INSTALL_MANIFEST}" "")
FOREACH(file ${CMAKE_INSTALL_MANIFEST_FILES})
FILE(APPEND "/home/harle/catkin_ws/src/demo_ASIFT_src/${CMAKE_INSTALL_MANIFEST}" "${file}\n")
ENDFOREACH(file)

View file

@ -0,0 +1,569 @@
// Copyright (c) 2008-2011, Guoshen Yu <yu@cmap.polytechnique.fr>
// Copyright (c) 2008-2011, Jean-Michel Morel <morel@cmla.ens-cachan.fr>
//
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
// affine recognition recognition of shapes (WO/2009/150361), patent pending.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
//
//
//*------------------------ compute_asift_keypoints -------------------------*/
// Compute the ASIFT keypoints on the input image.
//
// Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
//
// Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
// Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
// Reference: ASIFT online demo (You can try ASIFT with your own images online.)
// http://www.ipol.im/pub/algo/my_affine_sift/
/*---------------------------------------------------------------------------*/
#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include "compute_asift_keypoints.h"
#ifdef _OPENMP
#include <omp.h>
#endif
#define ABS(x) (((x) > 0) ? (x) : (-(x)))
/* InitSigma gives the amount of smoothing applied to the image at the
first level of each octave. In effect, this determines the sampling
needed in the image domain relative to amount of smoothing. Good
values determined experimentally are in the range 1.2 to 1.8.
*/
/* float InitSigma_aa = 1.0;*/
static float InitSigma_aa = 1.6;
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
/* Gaussian convolution kernels are truncated at this many sigmas from
the center. While it is more efficient to keep this value small,
experiments show that for consistent scale-space analysis it needs
a value of about 3.0, at which point the Gaussian has fallen to
only 1% of its central value. A value of 2.0 greatly reduces
keypoint consistency, and a value of 4.0 is better than 3.0.
*/
const float GaussTruncate1 = 4.0;
/* --------------------------- Blur image --------------------------- */
/* Same as ConvBuffer, but implemented with loop unrolling for increased
speed. This is the most time intensive routine in keypoint detection,
so deserves careful attention to efficiency. Loop unrolling simply
sums 5 multiplications at a time to allow the compiler to schedule
operations better and avoid loop overhead. This almost triples
speed of previous version on a Pentium with gcc.
*/
void ConvBufferFast(float *buffer, float *kernel, int rsize, int ksize)
{
int i;
float *bp, *kp, *endkp;
float sum;
for (i = 0; i < rsize; i++) {
sum = 0.0;
bp = &buffer[i];
kp = &kernel[0];
endkp = &kernel[ksize];
/* Loop unrolling: do 5 multiplications at a time. */
// while (kp + 4 < endkp) {
// sum += (double) bp[0] * (double) kp[0] + (double) bp[1] * (double) kp[1] + (double) bp[2] * (double) kp[2] +
// (double) bp[3] * (double) kp[3] + (double) bp[4] * (double) kp[4];
// bp += 5;
// kp += 5;
// }
// /* Do 2 multiplications at a time on remaining items. */
// while (kp + 1 < endkp) {
// sum += (double) bp[0] * (double) kp[0] + (double) bp[1] * (double) kp[1];
// bp += 2;
// kp += 2;
// }
// /* Finish last one if needed. */
// if (kp < endkp) {
// sum += (double) *bp * (double) *kp;
// }
while (kp < endkp) {
sum += *bp++ * *kp++;
}
buffer[i] = sum;
}
}
/* Convolve image with the 1-D kernel vector along image rows. This
is designed to be as efficient as possible. Pixels outside the
image are set to the value of the closest image pixel.
*/
void ConvHorizontal(vector<float>& image, int width, int height, float *kernel, int ksize)
{
int rows, cols, r, c, i, halfsize;
float buffer[4000];
vector<float> pixels(width*height);
rows = height;
cols = width;
halfsize = ksize / 2;
pixels = image;
assert(cols + ksize < 4000);
for (r = 0; r < rows; r++) {
/* Copy the row into buffer with pixels at ends replicated for
half the mask size. This avoids need to check for ends
within inner loop. */
for (i = 0; i < halfsize; i++)
buffer[i] = pixels[r*cols];
for (i = 0; i < cols; i++)
buffer[halfsize + i] = pixels[r*cols+i];
for (i = 0; i < halfsize; i++)
buffer[halfsize + cols + i] = pixels[r*cols+cols-1];
ConvBufferFast(buffer, kernel, cols, ksize);
for (c = 0; c < cols; c++)
pixels[r*cols+c] = buffer[c];
}
image = pixels;
}
/* Same as ConvHorizontal, but apply to vertical columns of image.
*/
void ConvVertical(vector<float>& image, int width, int height, float *kernel, int ksize)
{
int rows, cols, r, c, i, halfsize;
float buffer[4000];
vector<float> pixels(width*height);
rows = height;
cols = width;
halfsize = ksize / 2;
pixels = image;
assert(rows + ksize < 4000);
for (c = 0; c < cols; c++) {
for (i = 0; i < halfsize; i++)
buffer[i] = pixels[c];
for (i = 0; i < rows; i++)
buffer[halfsize + i] = pixels[i*cols+c];
for (i = 0; i < halfsize; i++)
buffer[halfsize + rows + i] = pixels[(rows - 1)*cols+c];
ConvBufferFast(buffer, kernel, rows, ksize);
for (r = 0; r < rows; r++)
pixels[r*cols+c] = buffer[r];
}
image = pixels;
}
/* 1D Convolve image with a Gaussian of width sigma and store result back
in image. This routine creates the Gaussian kernel, and then applies
it in horizontal (flag_dir=0) OR vertical directions (flag_dir!=0).
*/
void GaussianBlur1D(vector<float>& image, int width, int height, float sigma, int flag_dir)
{
float x, kernel[100], sum = 0.0;
int ksize, i;
/* The Gaussian kernel is truncated at GaussTruncate sigmas from
center. The kernel size should be odd.
*/
ksize = (int)(2.0 * GaussTruncate1 * sigma + 1.0);
ksize = MAX(3, ksize); /* Kernel must be at least 3. */
if (ksize % 2 == 0) /* Make kernel size odd. */
ksize++;
assert(ksize < 100);
/* Fill in kernel values. */
for (i = 0; i <= ksize; i++) {
x = i - ksize / 2;
kernel[i] = exp(- x * x / (2.0 * sigma * sigma));
sum += kernel[i];
}
/* Normalize kernel values to sum to 1.0. */
for (i = 0; i < ksize; i++)
kernel[i] /= sum;
if (flag_dir == 0)
{
ConvHorizontal(image, width, height, kernel, ksize);
}
else
{
ConvVertical(image, width, height, kernel, ksize);
}
}
void compensate_affine_coor1(float *x0, float *y0, int w1, int h1, float t1, float t2, float Rtheta)
{
float x_ori, y_ori;
float x_tmp, y_tmp;
float x1 = *x0;
float y1 = *y0;
Rtheta = Rtheta*PI/180;
if ( Rtheta <= PI/2 )
{
x_ori = 0;
y_ori = w1 * sin(Rtheta) / t1;
}
else
{
x_ori = -w1 * cos(Rtheta) / t2;
y_ori = ( w1 * sin(Rtheta) + h1 * sin(Rtheta-PI/2) ) / t1;
}
float sin_Rtheta = sin(Rtheta);
float cos_Rtheta = cos(Rtheta);
/* project the coordinates of im1 to original image before tilt-rotation transform */
/* Get the coordinates with respect to the 'origin' of the original image before transform */
x1 = x1 - x_ori;
y1 = y1 - y_ori;
/* Invert tilt */
x1 = x1 * t2;
y1 = y1 * t1;
/* Invert rotation (Note that the y direction (vertical) is inverse to the usual concention. Hence Rtheta instead of -Rtheta to inverse the rotation.) */
x_tmp = cos_Rtheta*x1 - sin_Rtheta*y1;
y_tmp = sin_Rtheta*x1 + cos_Rtheta*y1;
x1 = x_tmp;
y1 = y_tmp;
*x0 = x1;
*y0 = y1;
}
/* -------------- MAIN FUNCTION ---------------------- */
int compute_asift_keypoints(vector<float>& image, int width, int height, int num_of_tilts, int verb, vector< vector< keypointslist > >& keys_all, siftPar &siftparameters)
// Compute ASIFT keypoints in the input image.
// Input:
// image: input image
// width, height: width and height of the input image.
// num_of_tilts: number of tilts to simulate.
// verb: 1/0 --> show/don not show verbose messages. (1 for debugging)
// keys_all (output): ASIFT keypoints. It is a 2D matrix with varying rows and columns. Each entry keys_all[tt][rr]
// stores the SIFT keypoints calculated on the image with the simulated tilt index tt and simulated rotation index rr (see the code below). In the coordinates of the keypoints,
// the affine distortions have been compensated.
// siftparameters: SIFT parameters.
//
// Output: the number of keypoints
{
vector<float> image_t, image_tmp1, image_tmp;
float t_min, t_k;
int num_tilt, tt, num_rot_t2, rr;
int fproj_o;
float fproj_p, fproj_bg;
char fproj_i;
float *fproj_x4, *fproj_y4;
// float frot_b=0;
float frot_b=128;
char *frot_k;
int counter_sim=0, num_sim;
int flag_dir = 1;
float BorderFact=6*sqrt(2.);
int num_keys_total=0;
fproj_o = 3;
fproj_p = 0;
fproj_i = 0;
fproj_bg = 0;
fproj_x4 = 0;
fproj_y4 = 0;
frot_k = 0;
num_rot_t2 = 10;
t_min = 1;
t_k = sqrt(2.);
num_tilt = num_of_tilts;
if ( num_tilt < 1)
{
printf("Number of tilts num_tilt should be equal or larger than 1. \n");
exit(-1);
}
image_tmp1 = image;
/* Calculate the number of simulations, and initialize keys_all */
keys_all = std::vector< vector< keypointslist > >(num_tilt);
for (tt = 1; tt <= num_tilt; tt++)
{
float t = t_min * pow(t_k, tt-1);
if ( t == 1 )
{
counter_sim ++;
keys_all[tt-1] = std::vector< keypointslist >(1);
}
else
{
int num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
counter_sim += num_rot1;
keys_all[tt-1] = std::vector< keypointslist >(num_rot1);
}
}
num_sim = counter_sim;
if ( verb )
{
printf("%d affine simulations will be performed. \n", num_sim);
}
counter_sim = 0;
/* Affine simulation (rotation+tilt simulation) */
// Loop on tilts.
#ifdef _OPENMP
omp_set_nested(1);
#endif
#pragma omp parallel for private(tt)
for (tt = 1; tt <= num_tilt; tt++)
{
float t = t_min * pow(t_k, tt-1);
float t1 = 1;
float t2 = 1/t;
// If tilt t = 1, do not simulate rotation.
if ( t == 1 )
{
// copy the image from vector to array as compute_sift_keypoints uses only array.
float *image_tmp1_float = new float[width*height];
for (int cc = 0; cc < width*height; cc++)
image_tmp1_float[cc] = image_tmp1[cc];
compute_sift_keypoints(image_tmp1_float,keys_all[tt-1][0],width,height,siftparameters);
delete[] image_tmp1_float;
}
else
{
// The number of rotations to simulate under the current tilt.
int num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
float delta_theta = PI/num_rot1;
// Loop on rotations.
#pragma omp parallel for private(rr)
for ( int rr = 1; rr <= num_rot1; rr++ )
{
float theta = delta_theta * (rr-1);
theta = theta * 180 / PI;
vector<float> image_t;
int width_r, height_r;
// simulate a rotation: rotate the image with an angle theta. (the outside of the rotated image are padded with the value frot_b)
frot(image, image_t, width, height, &width_r, &height_r, &theta, &frot_b , frot_k);
/* Tilt */
int width_t = (int) (width_r * t1);
int height_t = (int) (height_r * t2);
int fproj_sx = width_t;
int fproj_sy = height_t;
float fproj_x1 = 0;
float fproj_y1 = 0;
float fproj_x2 = width_t;
float fproj_y2 = 0;
float fproj_x3 = 0;
float fproj_y3 = height_t;
/* Anti-aliasing filtering along vertical direction */
/* sigma_aa = InitSigma_aa * log2(t);*/
float sigma_aa = InitSigma_aa * t / 2;
GaussianBlur1D(image_t,width_r,height_r,sigma_aa,flag_dir);
// simulate a tilt: subsample the image along the vertical axis by a factor of t.
vector<float> image_tmp(width_t*height_t);
fproj (image_t, image_tmp, width_r, height_r, &fproj_sx, &fproj_sy, &fproj_bg, &fproj_o, &fproj_p, &fproj_i , fproj_x1 , fproj_y1 , fproj_x2 , fproj_y2 , fproj_x3 , fproj_y3, fproj_x4, fproj_y4);
vector<float> image_tmp1 = image_tmp;
if ( verb )
{
printf("Rotation theta = %.2f, Tilt t = %.2f. w=%d, h=%d, sigma_aa=%.2f, \n", theta, t, width_t, height_t, sigma_aa);
}
float *image_tmp1_float = new float[width_t*height_t];
for (int cc = 0; cc < width_t*height_t; cc++)
image_tmp1_float[cc] = image_tmp1[cc];
// compute SIFT keypoints on simulated image.
keypointslist keypoints;
keypointslist keypoints_filtered;
compute_sift_keypoints(image_tmp1_float,keypoints,width_t,height_t,siftparameters);
delete[] image_tmp1_float;
/* check if the keypoint is located on the boundary of the parallelogram (i.e., the boundary of the distorted input image). If so, remove it to avoid boundary artifacts. */
if ( keypoints.size() != 0 )
{
for ( int cc = 0; cc < (int) keypoints.size(); cc++ )
{
float x0, y0, x1, y1, x2, y2, x3, y3 ,x4, y4, d1, d2, d3, d4, scale1, theta1, sin_theta1, cos_theta1, BorderTh;
x0 = keypoints[cc].x;
y0 = keypoints[cc].y;
scale1= keypoints[cc].scale;
theta1 = theta * PI / 180;
sin_theta1 = sin(theta1);
cos_theta1 = cos(theta1);
/* the coordinates of the 4 submits of the parallelogram */
if ( theta <= 90 )
{
x1 = height * sin_theta1;
y1 = 0;
y2 = width * sin_theta1;
x3 = width * cos_theta1;
x4 = 0;
y4 = height * cos_theta1;
x2 = x1 + x3;
y3 = y2 + y4;
/* note that the vertical direction goes from top to bottom!!!
The calculation above assumes that the vertical direction goes from the bottom to top. Thus the vertical coordinates need to be reversed!!! */
y1 = y3 - y1;
y2 = y3 - y2;
y4 = y3 - y4;
y3 = 0;
y1 = y1 * t2;
y2 = y2 * t2;
y3 = y3 * t2;
y4 = y4 * t2;
}
else
{
y1 = -height * cos_theta1;
x2 = height * sin_theta1;
x3 = 0;
y3 = width * sin_theta1;
x4 = -width * cos_theta1;
y4 = 0;
x1 = x2 + x4;
y2 = y1 + y3;
/* note that the vertical direction goes from top to bottom!!!
The calculation above assumes that the vertical direction goes from the bottom to top. Thus the vertical coordinates need to be reversed!!! */
y1 = y2 - y1;
y3 = y2 - y3;
y4 = y2 - y4;
y2 = 0;
y1 = y1 * t2;
y2 = y2 * t2;
y3 = y3 * t2;
y4 = y4 * t2;
}
/* the distances from the keypoint to the 4 sides of the parallelogram */
d1 = ABS((x2-x1)*(y1-y0)-(x1-x0)*(y2-y1)) / sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
d2 = ABS((x3-x2)*(y2-y0)-(x2-x0)*(y3-y2)) / sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));
d3 = ABS((x4-x3)*(y3-y0)-(x3-x0)*(y4-y3)) / sqrt((x4-x3)*(x4-x3)+(y4-y3)*(y4-y3));
d4 = ABS((x1-x4)*(y4-y0)-(x4-x0)*(y1-y4)) / sqrt((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4));
BorderTh = BorderFact*scale1;
if (!((d1<BorderTh) || (d2<BorderTh) || (d3<BorderTh) || (d4<BorderTh) ))
{
// Normalize the coordinates of the matched points by compensate the simulate affine transformations
compensate_affine_coor1(&x0, &y0, width, height, 1/t2, t1, theta);
keypoints[cc].x = x0;
keypoints[cc].y = y0;
keypoints_filtered.push_back(keypoints[cc]);
}
}
}
keys_all[tt-1][rr-1] = keypoints_filtered;
}
}
}
{
for (tt = 0; tt < (int) keys_all.size(); tt++)
for (rr = 0; rr < (int) keys_all[tt].size(); rr++)
{
num_keys_total += (int) keys_all[tt][rr].size();
}
printf("%d ASIFT keypoints are detected. \n", num_keys_total);
}
return num_keys_total;
}

View file

@ -0,0 +1,53 @@
// Copyright (c) 2008-2011, Guoshen Yu <yu@cmap.polytechnique.fr>
// Copyright (c) 2008-2011, Jean-Michel Morel <morel@cmla.ens-cachan.fr>
//
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
// affine recognition recognition of shapes (WO/2009/150361), patent pending.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
//
//
//*------------------------ compute_asift_keypoints -------------------------*/
// Compute the ASIFT keypoints on the input image.
//
// Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
//
// Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
// Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
// Reference: ASIFT online demo (You can try ASIFT with your own images online.)
// http://www.ipol.im/pub/algo/my_affine_sift/
/*---------------------------------------------------------------------------*/
#include "library.h"
#include "demo_lib_sift.h"
#include "frot.h"
#include "fproj.h"
#include <vector>
using namespace std;
int compute_asift_keypoints(vector<float>& image, int width, int height, int num_of_tilts, int verb, vector< vector< keypointslist > >& keys_all, siftPar &siftparameters);
void GaussianBlur1D(vector<float>& image, int width, int height, float sigma, int flag_dir);

Binary file not shown.

View file

@ -0,0 +1,791 @@
// Copyright (c) 2008-2011, Guoshen Yu <yu@cmap.polytechnique.fr>
// Copyright (c) 2008-2011, Jean-Michel Morel <morel@cmla.ens-cachan.fr>
//
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
// affine recognition recognition of shapes (WO/2009/150361), patent pending.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
//
//
//*------------------------ compute_asift_matches-- -------------------------*/
// Match the ASIFT keypoints.
//
// Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
//
// Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
// Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
// Reference: ASIFT online demo (You can try ASIFT with your own images online.)
// http://www.ipol.im/pub/algo/my_affine_sift/
/*---------------------------------------------------------------------------*/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#ifdef _OPENMP
#include <omp.h>
#endif
#include "compute_asift_matches.h"
#include "libMatch/match.h"
#include "orsa.h"
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
/* Remove the repetitive matches that appear in different simulations and retain only one */
void unique_match1(matchingslist &seg_in, matchingslist &seg_out, vector< vector <float> > &Minfoall_in, vector< vector <float> > &Minfoall_out)
{
int i_in, i_out;
float x1_in, x2_in, y1_in, y2_in, x1_out, x2_out, y1_out, y2_out;
int flag_unique;
float d1, d2;
int Th2 = 2;
seg_out.push_back(seg_in[0]);
Minfoall_out.push_back(Minfoall_in[0]);
/* For other matches */
if ( seg_in.size() > 1 )
{
/* check if a match is unique. if yes, copy */
/* Bug fix by Xiaoyu Sun (Sichuan university) (Dec 13, 2015) */
/* Original version
matchingslist::iterator ptr_in = seg_in.begin();
for ( i_in = 1; i_in < (int) seg_in.size(); i_in++, ptr_in++ )
*/
/* Bug fixed */
matchingslist::iterator ptr_in = seg_in.begin();
ptr_in++;
for ( i_in = 1; i_in < (int) seg_in.size(); i_in++, ptr_in++ )
{
x1_in = ptr_in->first.x;
y1_in = ptr_in->first.y;
x2_in = ptr_in->second.x;
y2_in = ptr_in->second.y;
flag_unique = 1;
matchingslist::iterator ptr_out = seg_out.begin();
for ( i_out = 0; i_out < (int) seg_out.size(); i_out++, ptr_out++ )
{
x1_out = ptr_out->first.x;
y1_out = ptr_out->first.y;
x2_out = ptr_out->second.x;
y2_out = ptr_out->second.y;
d1 = (x1_in - x1_out)*(x1_in - x1_out) + (y1_in - y1_out)*(y1_in - y1_out);
d2 = (x2_in - x2_out)*(x2_in - x2_out) + (y2_in - y2_out)*(y2_in - y2_out);
if ( ( d1 <= Th2) && ( d2 <= Th2) )
{
flag_unique = 0;
continue;
}
}
if ( flag_unique == 1 )
{
seg_out.push_back(seg_in[i_in]);
Minfoall_out.push_back(Minfoall_in[i_in]);
}
}
}
}
/* Remove the ALL one-to-multiple matches. */
void clean_match1(matchingslist &seg_in, matchingslist &seg_out, vector< vector <float> > &Minfoall_in, vector< vector <float> > &Minfoall_out)
{
int i1, i2;
float x1_in, x2_in, y1_in, y2_in, x1_out, x2_out, y1_out, y2_out;
// Guoshen Yu, 2010.09.22, Windows version
// int flag_unique[seg_in.size()];
int tmp_size = seg_in.size();
int *flag_unique = new int[tmp_size];
int sum_flag=0;
float d1, d2;
int Th1 = 1;
int Th2 = 4;
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
flag_unique[i1] = 1;
}
/* Set the flag of redundant matches to 0. */
matchingslist::iterator ptr_in = seg_in.begin();
for ( i1 = 0; i1 < (int) seg_in.size() - 1; i1++, ptr_in++ )
{
x1_in = ptr_in->first.x;
y1_in = ptr_in->first.y;
x2_in = ptr_in->second.x;
y2_in = ptr_in->second.y;
matchingslist::iterator ptr_out = ptr_in+1;
for ( i2 = i1 + 1; i2 < (int) seg_in.size(); i2++, ptr_out++ )
{
x1_out = ptr_out->first.x;
y1_out = ptr_out->first.y;
x2_out = ptr_out->second.x;
y2_out = ptr_out->second.y;
d1 = (x1_in - x1_out)*(x1_in - x1_out) + (y1_in - y1_out)*(y1_in - y1_out);
d2 = (x2_in - x2_out)*(x2_in - x2_out) + (y2_in - y2_out)*(y2_in - y2_out);
/* If redundant, set flags of both elements to 0.*/
if ( ( ( d1 <= Th1) && ( d2 > Th2) ) || ( ( d1 > Th2) && ( d2 <= Th1) ) )
{
flag_unique[i1] = 0;
flag_unique[i2] = 0;
}
}
}
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
sum_flag += flag_unique[i1];
}
/* Copy the matches that are not redundant */
if ( sum_flag > 0 )
{
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
if ( flag_unique[i1] == 1 )
{
seg_out.push_back(seg_in[i1]);
Minfoall_out.push_back(Minfoall_in[i1]);
}
}
}
else
{
printf("Warning: all matches are redundant and are thus removed! This step of match cleaning is short circuited. (Normally this should not happen...)\n");
}
// Guoshen Yu, 2010.09.22, Windows version
delete [] flag_unique;
}
/* Remove the ALL multiple-to-one matches */
void clean_match2(matchingslist &seg_in, matchingslist &seg_out, vector< vector <float> > &Minfoall_in, vector< vector <float> > &Minfoall_out)
{
int i1, i2;
float x1_in, x2_in, y1_in, y2_in, x1_out, x2_out, y1_out, y2_out;
// Guoshen Yu, 2010.09.22, Windows version
// int flag_unique[seg_in.size()];
int tmp_size = seg_in.size();
int *flag_unique = new int[tmp_size];
int sum_flag=0;
float d1, d2;
int Th1 = 1;
int Th2 = 4;
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
flag_unique[i1] = 1;
}
/* Set the flag of redundant matches to 0. */
matchingslist::iterator ptr_in = seg_in.begin();
for ( i1 = 0; i1 < (int) seg_in.size() - 1; i1++, ptr_in++ )
{
x1_in = ptr_in->first.x;
y1_in = ptr_in->first.y;
x2_in = ptr_in->second.x;
y2_in = ptr_in->second.y;
matchingslist::iterator ptr_out = ptr_in+1;
for ( i2 = i1 + 1; i2 < (int) seg_in.size(); i2++, ptr_out++ )
{
x1_out = ptr_out->first.x;
y1_out = ptr_out->first.y;
x2_out = ptr_out->second.x;
y2_out = ptr_out->second.y;
d1 = (x1_in - x1_out)*(x1_in - x1_out) + (y1_in - y1_out)*(y1_in - y1_out);
d2 = (x2_in - x2_out)*(x2_in - x2_out) + (y2_in - y2_out)*(y2_in - y2_out);
/* If redundant, set flags of both elements to 0.*/
if ( ( d1 > Th2) && ( d2 <= Th1) )
{
flag_unique[i1] = 0;
flag_unique[i2] = 0;
}
}
}
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
sum_flag += flag_unique[i1];
}
/* Copy the matches that are not redundant */
if ( sum_flag > 0 )
{
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
if ( flag_unique[i1] == 1 )
{
seg_out.push_back(seg_in[i1]);
Minfoall_out.push_back(Minfoall_in[i1]);
}
}
}
else
{
printf("Warning: all matches are redundant and are thus removed! This step of match cleaning is short circuited. (Normally this should not happen...)\n");
}
// Guoshen Yu, 2010.09.22, Windows version
delete [] flag_unique;
}
// Normalize the coordinates of the matched points by compensating the simulate affine transformations
void compensate_affine_coor(matching &matching1, int w1, int h1, int w2, int h2, float t1, float t2, float Rtheta, float t_im2_1, float t_im2_2, float Rtheta2)
{
float x_ori, y_ori;
float x_ori2, y_ori2, x_tmp, y_tmp;
float x1, y1, x2, y2;
Rtheta = Rtheta*PI/180;
if ( Rtheta <= PI/2 )
{
x_ori = 0;
y_ori = w1 * sin(Rtheta) / t1;
}
else
{
x_ori = -w1 * cos(Rtheta) / t2;
y_ori = ( w1 * sin(Rtheta) + h1 * sin(Rtheta-PI/2) ) / t1;
}
Rtheta2 = Rtheta2*PI/180;
if ( Rtheta2 <= PI/2 )
{
x_ori2 = 0;
y_ori2 = w2 * sin(Rtheta2) / t_im2_1;
}
else
{
x_ori2 = -w2 * cos(Rtheta2) / t_im2_2;
y_ori2 = ( w2 * sin(Rtheta2) + h2 * sin(Rtheta2-PI/2) ) / t_im2_1;
}
float sin_Rtheta = sin(Rtheta);
float cos_Rtheta = cos(Rtheta);
float sin_Rtheta2 = sin(Rtheta2);
float cos_Rtheta2 = cos(Rtheta2);
x1 = matching1.first.x;
y1 = matching1.first.y;
x2 = matching1.second.x;
y2 = matching1.second.y;
/* project the coordinates of im1 to original image before tilt-rotation transform */
/* Get the coordinates with respect to the 'origin' of the original image before transform */
x1 = x1 - x_ori;
y1 = y1 - y_ori;
/* Invert tilt */
x1 = x1 * t2;
y1 = y1 * t1;
/* Invert rotation (Note that the y direction (vertical) is inverse to the usual concention. Hence Rtheta instead of -Rtheta to inverse the rotation.) */
x_tmp = cos_Rtheta*x1 - sin_Rtheta*y1;
y_tmp = sin_Rtheta*x1 + cos_Rtheta*y1;
x1 = x_tmp;
y1 = y_tmp;
/* Coordinate projection on image2 */
/* Get the coordinates with respect to the 'origin' of the original image before transform */
x2 = x2 - x_ori2;
y2 = y2 - y_ori2;
/* Invert tilt */
x2 = x2 * t_im2_2;
y2 = y2 * t_im2_1;
/* Invert rotation (Note that the y direction (vertical) is inverse to the usual concention. Hence Rtheta instead of -Rtheta to inverse the rotation.) */
x_tmp = cos_Rtheta2*x2 - sin_Rtheta2*y2;
y_tmp = sin_Rtheta2*x2 + cos_Rtheta2*y2;
x2 = x_tmp;
y2 = y_tmp;
matching1.first.x = x1;
matching1.first.y = y1;
matching1.second.x = x2;
matching1.second.y = y2;
}
int compute_asift_matches(int num_of_tilts1, int num_of_tilts2, int w1, int h1, int w2, int h2, int verb, vector< vector< keypointslist > >& keys1, vector< vector< keypointslist > >& keys2, matchingslist &matchings, siftPar &siftparameters)
// Match the ASIFT keypoints.
// Input:
// num_of_tilts1, num_of_tilts2: number of tilts that have been simulated on the two images. (They can be different.)
// w1, h1, w2, h2: widht/height of image1/image2.
// verb: 1/0 --> show/don not show verbose messages. (1 for debugging)
// keys1, keys2: ASIFT keypoints of image1/image2. (They should be calculated with compute_asift_keypoints.)
// matchings (output): the coordinates (col1, row1, col2, row2) of all the matching points.
//
// Output: the number of matching points.
{
float t_min, t_k, t;
int num_tilt1, num_tilt2, tt, num_rot_t2, num_rot1, rr;
int cc;
int tt2, rr2, num_rot1_2;
float t_im2;
/* It stores the coordinates of ALL matches points of ALL affine simulations */
vector< vector <float> > Minfoall;
int Tmin = 8;
float nfa_max = -2;
num_rot_t2 = 10;
t_min = 1;
t_k = sqrt(2.);
num_tilt1 = num_of_tilts1;
num_tilt2 = num_of_tilts2;
if ( ( num_tilt1 < 1 ) || ( num_tilt2 < 1 ) )
{
printf("Number of tilts num_tilt should be equal or larger than 1. \n");
exit(-1);
}
/* Initialize the vector structure for the matching points */
std::vector< vector< vector < vector < matchingslist > > > > matchings_vec(num_tilt1);
std::vector< vector< vector< vector< vector< vector <float> > > > > > Minfoall_vec(num_tilt1);
for (tt = 1; tt <= num_tilt1; tt++)
{
t = t_min * pow(t_k, tt-1);
if ( t == 1 )
{
num_rot1 = 1;
}
else
{
num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
}
matchings_vec[tt-1].resize(num_rot1);
Minfoall_vec[tt-1].resize(num_rot1);
for ( rr = 1; rr <= num_rot1; rr++ )
{
matchings_vec[tt-1][rr-1].resize(num_tilt2);
Minfoall_vec[tt-1][rr-1].resize(num_tilt2);
for (tt2 = 1; tt2 <= num_tilt2; tt2++)
{
t_im2 = t_min * pow(t_k, tt2-1);
if ( t_im2 == 1 )
{
num_rot1_2 = 1;
}
else
{
num_rot1_2 = round(num_rot_t2*t_im2/2);
if ( num_rot1_2%2 == 1 )
{
num_rot1_2 = num_rot1_2 + 1;
}
num_rot1_2 = num_rot1_2 / 2;
}
matchings_vec[tt-1][rr-1][tt2-1].resize(num_rot1_2);
Minfoall_vec[tt-1][rr-1][tt2-1].resize(num_rot1_2);
}
}
}
///*
// * setup the tilt and rotation parameters
// * for all the loops, this vector will hold
// * the following parameters:
// * tt, num_rot1, rr, tt2, num_rot1_2, rr2
// */
//vector<int> tilt_rot;
///* loop on tilts for image 1 */
//for (int tt = 1; tt <= num_tilt1; tt++)
//{
// float t = t_min * pow(t_k, tt-1);
// int num_rot1;
// /* if tilt t = 1, do not simulate rotation. */
// if ( 1 == tt )
// num_rot1 = 1;
// else
// {
// /* number of rotations to simulate */
// num_rot1 = round(num_rot_t2 * t / 2);
// if ( num_rot1%2 == 1 )
// num_rot1 = num_rot1 + 1;
// num_rot1 = num_rot1 / 2;
// }
// /* loop on rotations for image 1 */
// for (int rr = 1; rr <= num_rot1; rr++ )
// {
// /* loop on tilts for image 2 */
// for (int tt2 = 1; tt2 <= num_tilt2; tt2++)
// {
// float t_im2 = t_min * pow(t_k, tt2-1);
// int num_rot1_2;
// if ( tt2 == 1 )
// num_rot1_2 = 1;
// else
// {
// num_rot1_2 = round(num_rot_t2 * t_im2 / 2);
// if ( num_rot1_2%2 == 1 )
// num_rot1_2 = num_rot1_2 + 1;
// num_rot1_2 = num_rot1_2 / 2;
// }
// /* loop on rotations for image 2 */
// for (int rr2 = 1; rr2 <= num_rot1_2; rr2++ )
// {
// tilt_rot.push_back(tt);
// tilt_rot.push_back(num_rot1);
// tilt_rot.push_back(rr);
// tilt_rot.push_back(tt2);
// tilt_rot.push_back(num_rot1_2);
// tilt_rot.push_back(rr2);
// }
// }
// }
//}
/* Calculate the number of simulations */
#ifdef _OPENMP
omp_set_nested(1);
#endif
// loop on tilts for image 1.
#pragma omp parallel for private(tt)
for (int tt = 1; tt <= num_tilt1; tt++)
{
float t = t_min * pow(t_k, tt-1);
/* Attention: the t1, t2 do not follow the same convention as in compute_asift_keypoints */
float t1 = t;
float t2 = 1;
int num_rot1;
// If tilt t = 1, do not simulate rotation.
if ( tt == 1 )
{
num_rot1 = 1;
}
else
{
// The number of rotations to simulate under the current tilt.
num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
}
float delta_theta = PI/num_rot1;
// Loop on rotations for image 1.
#pragma omp parallel for private(rr)
for ( int rr = 1; rr <= num_rot1; rr++ )
{
float theta = delta_theta * (rr-1);
theta = theta * 180 / PI;
/* Read the keypoints of image 1 */
keypointslist keypoints1 = keys1[tt-1][rr-1];
// loop on tilts for image 2.
#pragma omp parallel for private(tt2)
for (int tt2 = 1; tt2 <= num_tilt2; tt2++)
{
float t_im2 = t_min * pow(t_k, tt2-1);
/* Attention: the t1, t2 do not follow the same convention as in asift_v1.c */
float t_im2_1 = t_im2;
float t_im2_2 = 1;
int num_rot1_2;
if ( tt2 == 1 )
{
num_rot1_2 = 1;
}
else
{
num_rot1_2 = round(num_rot_t2*t_im2/2);
if ( num_rot1_2%2 == 1 )
{
num_rot1_2 = num_rot1_2 + 1;
}
num_rot1_2 = num_rot1_2 / 2;
}
float delta_theta2 = PI/num_rot1_2;
#pragma omp parallel for private(rr2)
// Loop on rotations for image 2.
for ( int rr2 = 1; rr2 <= num_rot1_2; rr2++ )
{
float theta2 = delta_theta2 * (rr2-1);
theta2 = theta2 * 180 / PI;
/* Read the keypoints of image2. */
keypointslist keypoints2 = keys2[tt2-1][rr2-1];
// Match the keypoints of image1 and image2.
matchingslist matchings1;
compute_sift_matches(keypoints1,keypoints2,matchings1,siftparameters);
if ( verb )
{
printf("t1=%.2f, theta1=%.2f, num keys1 = %d, t2=%.2f, theta2=%.2f, num keys2 = %d, num matches=%d\n", t, theta, (int) keypoints1.size(), t_im2, theta2, (int) keypoints2.size(), (int) matchings1.size());
}
/* Store the matches */
if ( matchings1.size() > 0 )
{
matchings_vec[tt-1][rr-1][tt2-1][rr2-1] = matchingslist(matchings1.size());
Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1].resize(matchings1.size());
for ( int cc = 0; cc < (int) matchings1.size(); cc++ )
{
///// In the coordinates the affine transformations have been normalized already in compute_asift_keypoints. So no need to normalize here.
// Normalize the coordinates of the matched points by compensating the simulate affine transformations
// compensate_affine_coor(matchings1[cc], w1, h1, w2, h2, t1, t2, theta, t_im2_1, t_im2_2, theta2);
matchings_vec[tt-1][rr-1][tt2-1][rr2-1][cc] = matchings1[cc];
vector<float> Minfo_1match(6);
Minfo_1match[0] = t1;
Minfo_1match[1] = t2;
Minfo_1match[2] = theta;
Minfo_1match[3] = t_im2_1;
Minfo_1match[4] = t_im2_2;
Minfo_1match[5] = theta2;
Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1][cc] = Minfo_1match;
}
}
}
}
}
}
// Move the matches to a 1D vector
for (tt = 1; tt <= num_tilt1; tt++)
{
t = t_min * pow(t_k, tt-1);
if ( t == 1 )
{
num_rot1 = 1;
}
else
{
num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
}
for ( rr = 1; rr <= num_rot1; rr++ )
{
for (tt2 = 1; tt2 <= num_tilt2; tt2++)
{
t_im2 = t_min * pow(t_k, tt2-1);
if ( t_im2 == 1 )
{
num_rot1_2 = 1;
}
else
{
num_rot1_2 = round(num_rot_t2*t_im2/2);
if ( num_rot1_2%2 == 1 )
{
num_rot1_2 = num_rot1_2 + 1;
}
num_rot1_2 = num_rot1_2 / 2;
}
for ( rr2 = 1; rr2 <= num_rot1_2; rr2++ )
{
for ( cc=0; cc < (int) matchings_vec[tt-1][rr-1][tt2-1][rr2-1].size(); cc++ )
{
matchings.push_back(matchings_vec[tt-1][rr-1][tt2-1][rr2-1][cc]);
Minfoall.push_back(Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1][cc]);
}
}
}
}
}
if ( verb )
{
printf("The number of matches is %d \n", (int) matchings.size());
}
if ( matchings.size() > 0 )
{
/* Remove the repetitive matches that appear in different simulations and retain only one. */
// Since tilts are simuated on both image 1 and image 2, it is normal to have repetitive matches.
matchingslist matchings_unique;
vector< vector<float> > Minfoall_unique;
unique_match1(matchings, matchings_unique, Minfoall, Minfoall_unique);
matchings = matchings_unique;
Minfoall = Minfoall_unique;
if ( verb )
{
printf("The number of unique matches is %d \n", (int) matchings.size());
}
// There often appear to be some one-to-multiple/multiple-to-one matches (one point in image 1 matches with many points in image 2/vice versa).
// This is an artifact of SIFT on interpolated images, as the interpolation tends to create some auto-similar structures (steps for example).
// These matches need to be removed.
/* Separating the removal of multiple-to-one and one-to-multiple in two steps:
- first remove multiple-to-one
- then remove one-to-multiple
This allows to avoid removing some good matches: multiple-to-one matches is much more frequent than one-to-multiple. Sometimes some of the feature points in image 1 that take part in "multiple-to-one" bad matches have also correct matches in image 2. The modified scheme avoid removing these good matches. */
// Remove to multiple-to-one matches
matchings_unique.clear();
Minfoall_unique.clear();
clean_match2(matchings, matchings_unique, Minfoall, Minfoall_unique);
matchings = matchings_unique;
Minfoall = Minfoall_unique;
// Remove to one-to-multiple matches
matchings_unique.clear();
Minfoall_unique.clear();
clean_match1(matchings, matchings_unique, Minfoall, Minfoall_unique);
matchings = matchings_unique;
Minfoall = Minfoall_unique;
if ( verb )
{
printf("The number of final matches is %d \n", (int) matchings.size());
}
// If enough matches to do epipolar filtering
if ( (int) matchings.size() >= Tmin )
{
//////// Use ORSA to filter out the incorrect matches.
// store the coordinates of the matching points
vector<Match> match_coor;
for ( cc = 0; cc < (int) matchings.size(); cc++ )
{
Match match1_coor;
match1_coor.x1 = matchings[cc].first.x;
match1_coor.y1 = matchings[cc].first.y;
match1_coor.x2 = matchings[cc].second.x;
match1_coor.y2 = matchings[cc].second.y;
match_coor.push_back(match1_coor);
}
std::vector<float> index;
// Guoshen Yu, 2010.09.23
// index.clear();
int t_value_orsa=10000;
int verb_value_orsa=0;
int n_flag_value_orsa=0;
int mode_value_orsa=2;
int stop_value_orsa=0;
// epipolar filtering with the Moisan-Stival ORSA algorithm.
// float nfa = orsa(w1, h1, match_coor, index, t_value_orsa, verb_value_orsa, n_flag_value_orsa, mode_value_orsa, stop_value_orsa);
float nfa = orsa((w1+w2)/2, (h1+h2)/2, match_coor, index, t_value_orsa, verb_value_orsa, n_flag_value_orsa, mode_value_orsa, stop_value_orsa);
// if the matching is significant, register the good matches
if ( nfa < nfa_max )
{
// extract meaningful matches
matchings_unique.clear();
Minfoall_unique.clear();
for ( cc = 0; cc < (int) index.size(); cc++ )
{
matchings_unique.push_back(matchings[(int)index[cc]]);
Minfoall_unique.push_back(Minfoall[(int)index[cc]]);
}
matchings = matchings_unique;
Minfoall = Minfoall_unique;
cout << "The two images match! " << matchings.size() << " matchings are identified. log(nfa)=" << nfa << "." << endl;
}
else
{
matchings.clear();
Minfoall.clear();
cout << "The two images do not match. The matching is not significant: log(nfa)=" << nfa << "." << endl;
}
}
else
{
matchings.clear();
Minfoall.clear();
cout << "The two images do not match. Not enough matches to do epipolar filtering." << endl;
}
}
else
{
cout << "The two images do not match.\n" << endl;
}
return matchings.size();
}

View file

@ -0,0 +1,784 @@
// Copyright (c) 2008-2011, Guoshen Yu <yu@cmap.polytechnique.fr>
// Copyright (c) 2008-2011, Jean-Michel Morel <morel@cmla.ens-cachan.fr>
//
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
// affine recognition recognition of shapes (WO/2009/150361), patent pending.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
//
//
//*------------------------ compute_asift_matches-- -------------------------*/
// Match the ASIFT keypoints.
//
// Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
//
// Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
// Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
// Reference: ASIFT online demo (You can try ASIFT with your own images online.)
// http://www.ipol.im/pub/algo/my_affine_sift/
/*---------------------------------------------------------------------------*/
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#ifdef _OPENMP
#include <omp.h>
#endif
#include "compute_asift_matches.h"
#include "libMatch/match.h"
#include "orsa.h"
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
/* Remove the repetitive matches that appear in different simulations and retain only one */
void unique_match1(matchingslist &seg_in, matchingslist &seg_out, vector< vector <float> > &Minfoall_in, vector< vector <float> > &Minfoall_out)
{
int i_in, i_out;
float x1_in, x2_in, y1_in, y2_in, x1_out, x2_out, y1_out, y2_out;
int flag_unique;
float d1, d2;
int Th2 = 2;
seg_out.push_back(seg_in[0]);
Minfoall_out.push_back(Minfoall_in[0]);
/* For other matches */
if ( seg_in.size() > 1 )
{
/* check if a match is unique. if yes, copy */
matchingslist::iterator ptr_in = seg_in.begin();
for ( i_in = 1; i_in < (int) seg_in.size(); i_in++, ptr_in++ )
{
x1_in = ptr_in->first.x;
y1_in = ptr_in->first.y;
x2_in = ptr_in->second.x;
y2_in = ptr_in->second.y;
flag_unique = 1;
matchingslist::iterator ptr_out = seg_out.begin();
for ( i_out = 0; i_out < (int) seg_out.size(); i_out++, ptr_out++ )
{
x1_out = ptr_out->first.x;
y1_out = ptr_out->first.y;
x2_out = ptr_out->second.x;
y2_out = ptr_out->second.y;
d1 = (x1_in - x1_out)*(x1_in - x1_out) + (y1_in - y1_out)*(y1_in - y1_out);
d2 = (x2_in - x2_out)*(x2_in - x2_out) + (y2_in - y2_out)*(y2_in - y2_out);
if ( ( d1 <= Th2) && ( d2 <= Th2) )
{
flag_unique = 0;
continue;
}
}
if ( flag_unique == 1 )
{
seg_out.push_back(seg_in[i_in]);
Minfoall_out.push_back(Minfoall_in[i_in]);
}
}
}
}
/* Remove the ALL one-to-multiple matches. */
void clean_match1(matchingslist &seg_in, matchingslist &seg_out, vector< vector <float> > &Minfoall_in, vector< vector <float> > &Minfoall_out)
{
int i1, i2;
float x1_in, x2_in, y1_in, y2_in, x1_out, x2_out, y1_out, y2_out;
// Guoshen Yu, 2010.09.22, Windows version
// int flag_unique[seg_in.size()];
int tmp_size = seg_in.size();
int *flag_unique = new int[tmp_size];
int sum_flag=0;
float d1, d2;
int Th1 = 1;
int Th2 = 4;
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
flag_unique[i1] = 1;
}
/* Set the flag of redundant matches to 0. */
matchingslist::iterator ptr_in = seg_in.begin();
for ( i1 = 0; i1 < (int) seg_in.size() - 1; i1++, ptr_in++ )
{
x1_in = ptr_in->first.x;
y1_in = ptr_in->first.y;
x2_in = ptr_in->second.x;
y2_in = ptr_in->second.y;
matchingslist::iterator ptr_out = ptr_in+1;
for ( i2 = i1 + 1; i2 < (int) seg_in.size(); i2++, ptr_out++ )
{
x1_out = ptr_out->first.x;
y1_out = ptr_out->first.y;
x2_out = ptr_out->second.x;
y2_out = ptr_out->second.y;
d1 = (x1_in - x1_out)*(x1_in - x1_out) + (y1_in - y1_out)*(y1_in - y1_out);
d2 = (x2_in - x2_out)*(x2_in - x2_out) + (y2_in - y2_out)*(y2_in - y2_out);
/* If redundant, set flags of both elements to 0.*/
if ( ( ( d1 <= Th1) && ( d2 > Th2) ) || ( ( d1 > Th2) && ( d2 <= Th1) ) )
{
flag_unique[i1] = 0;
flag_unique[i2] = 0;
}
}
}
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
sum_flag += flag_unique[i1];
}
/* Copy the matches that are not redundant */
if ( sum_flag > 0 )
{
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
if ( flag_unique[i1] == 1 )
{
seg_out.push_back(seg_in[i1]);
Minfoall_out.push_back(Minfoall_in[i1]);
}
}
}
else
{
printf("Warning: all matches are redundant and are thus removed! This step of match cleaning is short circuited. (Normally this should not happen...)\n");
}
// Guoshen Yu, 2010.09.22, Windows version
delete [] flag_unique;
}
/* Remove the ALL multiple-to-one matches */
void clean_match2(matchingslist &seg_in, matchingslist &seg_out, vector< vector <float> > &Minfoall_in, vector< vector <float> > &Minfoall_out)
{
int i1, i2;
float x1_in, x2_in, y1_in, y2_in, x1_out, x2_out, y1_out, y2_out;
// Guoshen Yu, 2010.09.22, Windows version
// int flag_unique[seg_in.size()];
int tmp_size = seg_in.size();
int *flag_unique = new int[tmp_size];
int sum_flag=0;
float d1, d2;
int Th1 = 1;
int Th2 = 4;
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
flag_unique[i1] = 1;
}
/* Set the flag of redundant matches to 0. */
matchingslist::iterator ptr_in = seg_in.begin();
for ( i1 = 0; i1 < (int) seg_in.size() - 1; i1++, ptr_in++ )
{
x1_in = ptr_in->first.x;
y1_in = ptr_in->first.y;
x2_in = ptr_in->second.x;
y2_in = ptr_in->second.y;
matchingslist::iterator ptr_out = ptr_in+1;
for ( i2 = i1 + 1; i2 < (int) seg_in.size(); i2++, ptr_out++ )
{
x1_out = ptr_out->first.x;
y1_out = ptr_out->first.y;
x2_out = ptr_out->second.x;
y2_out = ptr_out->second.y;
d1 = (x1_in - x1_out)*(x1_in - x1_out) + (y1_in - y1_out)*(y1_in - y1_out);
d2 = (x2_in - x2_out)*(x2_in - x2_out) + (y2_in - y2_out)*(y2_in - y2_out);
/* If redundant, set flags of both elements to 0.*/
if ( ( d1 > Th2) && ( d2 <= Th1) )
{
flag_unique[i1] = 0;
flag_unique[i2] = 0;
}
}
}
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
sum_flag += flag_unique[i1];
}
/* Copy the matches that are not redundant */
if ( sum_flag > 0 )
{
for ( i1 = 0; i1 < (int) seg_in.size(); i1++ )
{
if ( flag_unique[i1] == 1 )
{
seg_out.push_back(seg_in[i1]);
Minfoall_out.push_back(Minfoall_in[i1]);
}
}
}
else
{
printf("Warning: all matches are redundant and are thus removed! This step of match cleaning is short circuited. (Normally this should not happen...)\n");
}
// Guoshen Yu, 2010.09.22, Windows version
delete [] flag_unique;
}
// Normalize the coordinates of the matched points by compensating the simulate affine transformations
void compensate_affine_coor(matching &matching1, int w1, int h1, int w2, int h2, float t1, float t2, float Rtheta, float t_im2_1, float t_im2_2, float Rtheta2)
{
float x_ori, y_ori;
float x_ori2, y_ori2, x_tmp, y_tmp;
float x1, y1, x2, y2;
Rtheta = Rtheta*PI/180;
if ( Rtheta <= PI/2 )
{
x_ori = 0;
y_ori = w1 * sin(Rtheta) / t1;
}
else
{
x_ori = -w1 * cos(Rtheta) / t2;
y_ori = ( w1 * sin(Rtheta) + h1 * sin(Rtheta-PI/2) ) / t1;
}
Rtheta2 = Rtheta2*PI/180;
if ( Rtheta2 <= PI/2 )
{
x_ori2 = 0;
y_ori2 = w2 * sin(Rtheta2) / t_im2_1;
}
else
{
x_ori2 = -w2 * cos(Rtheta2) / t_im2_2;
y_ori2 = ( w2 * sin(Rtheta2) + h2 * sin(Rtheta2-PI/2) ) / t_im2_1;
}
float sin_Rtheta = sin(Rtheta);
float cos_Rtheta = cos(Rtheta);
float sin_Rtheta2 = sin(Rtheta2);
float cos_Rtheta2 = cos(Rtheta2);
x1 = matching1.first.x;
y1 = matching1.first.y;
x2 = matching1.second.x;
y2 = matching1.second.y;
/* project the coordinates of im1 to original image before tilt-rotation transform */
/* Get the coordinates with respect to the 'origin' of the original image before transform */
x1 = x1 - x_ori;
y1 = y1 - y_ori;
/* Invert tilt */
x1 = x1 * t2;
y1 = y1 * t1;
/* Invert rotation (Note that the y direction (vertical) is inverse to the usual concention. Hence Rtheta instead of -Rtheta to inverse the rotation.) */
x_tmp = cos_Rtheta*x1 - sin_Rtheta*y1;
y_tmp = sin_Rtheta*x1 + cos_Rtheta*y1;
x1 = x_tmp;
y1 = y_tmp;
/* Coordinate projection on image2 */
/* Get the coordinates with respect to the 'origin' of the original image before transform */
x2 = x2 - x_ori2;
y2 = y2 - y_ori2;
/* Invert tilt */
x2 = x2 * t_im2_2;
y2 = y2 * t_im2_1;
/* Invert rotation (Note that the y direction (vertical) is inverse to the usual concention. Hence Rtheta instead of -Rtheta to inverse the rotation.) */
x_tmp = cos_Rtheta2*x2 - sin_Rtheta2*y2;
y_tmp = sin_Rtheta2*x2 + cos_Rtheta2*y2;
x2 = x_tmp;
y2 = y_tmp;
matching1.first.x = x1;
matching1.first.y = y1;
matching1.second.x = x2;
matching1.second.y = y2;
}
int compute_asift_matches(int num_of_tilts1, int num_of_tilts2, int w1, int h1, int w2, int h2, int verb, vector< vector< keypointslist > >& keys1, vector< vector< keypointslist > >& keys2, matchingslist &matchings, siftPar &siftparameters)
// Match the ASIFT keypoints.
// Input:
// num_of_tilts1, num_of_tilts2: number of tilts that have been simulated on the two images. (They can be different.)
// w1, h1, w2, h2: widht/height of image1/image2.
// verb: 1/0 --> show/don not show verbose messages. (1 for debugging)
// keys1, keys2: ASIFT keypoints of image1/image2. (They should be calculated with compute_asift_keypoints.)
// matchings (output): the coordinates (col1, row1, col2, row2) of all the matching points.
//
// Output: the number of matching points.
{
float t_min, t_k, t;
int num_tilt1, num_tilt2, tt, num_rot_t2, num_rot1, rr;
int cc;
int tt2, rr2, num_rot1_2;
float t_im2;
/* It stores the coordinates of ALL matches points of ALL affine simulations */
vector< vector <float> > Minfoall;
int Tmin = 8;
float nfa_max = -2;
num_rot_t2 = 10;
t_min = 1;
t_k = sqrt(2.);
num_tilt1 = num_of_tilts1;
num_tilt2 = num_of_tilts2;
if ( ( num_tilt1 < 1 ) || ( num_tilt2 < 1 ) )
{
printf("Number of tilts num_tilt should be equal or larger than 1. \n");
exit(-1);
}
/* Initialize the vector structure for the matching points */
std::vector< vector< vector < vector < matchingslist > > > > matchings_vec(num_tilt1);
std::vector< vector< vector< vector< vector< vector <float> > > > > > Minfoall_vec(num_tilt1);
for (tt = 1; tt <= num_tilt1; tt++)
{
t = t_min * pow(t_k, tt-1);
if ( t == 1 )
{
num_rot1 = 1;
}
else
{
num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
}
matchings_vec[tt-1].resize(num_rot1);
Minfoall_vec[tt-1].resize(num_rot1);
for ( rr = 1; rr <= num_rot1; rr++ )
{
matchings_vec[tt-1][rr-1].resize(num_tilt2);
Minfoall_vec[tt-1][rr-1].resize(num_tilt2);
for (tt2 = 1; tt2 <= num_tilt2; tt2++)
{
t_im2 = t_min * pow(t_k, tt2-1);
if ( t_im2 == 1 )
{
num_rot1_2 = 1;
}
else
{
num_rot1_2 = round(num_rot_t2*t_im2/2);
if ( num_rot1_2%2 == 1 )
{
num_rot1_2 = num_rot1_2 + 1;
}
num_rot1_2 = num_rot1_2 / 2;
}
matchings_vec[tt-1][rr-1][tt2-1].resize(num_rot1_2);
Minfoall_vec[tt-1][rr-1][tt2-1].resize(num_rot1_2);
}
}
}
///*
// * setup the tilt and rotation parameters
// * for all the loops, this vector will hold
// * the following parameters:
// * tt, num_rot1, rr, tt2, num_rot1_2, rr2
// */
//vector<int> tilt_rot;
///* loop on tilts for image 1 */
//for (int tt = 1; tt <= num_tilt1; tt++)
//{
// float t = t_min * pow(t_k, tt-1);
// int num_rot1;
// /* if tilt t = 1, do not simulate rotation. */
// if ( 1 == tt )
// num_rot1 = 1;
// else
// {
// /* number of rotations to simulate */
// num_rot1 = round(num_rot_t2 * t / 2);
// if ( num_rot1%2 == 1 )
// num_rot1 = num_rot1 + 1;
// num_rot1 = num_rot1 / 2;
// }
// /* loop on rotations for image 1 */
// for (int rr = 1; rr <= num_rot1; rr++ )
// {
// /* loop on tilts for image 2 */
// for (int tt2 = 1; tt2 <= num_tilt2; tt2++)
// {
// float t_im2 = t_min * pow(t_k, tt2-1);
// int num_rot1_2;
// if ( tt2 == 1 )
// num_rot1_2 = 1;
// else
// {
// num_rot1_2 = round(num_rot_t2 * t_im2 / 2);
// if ( num_rot1_2%2 == 1 )
// num_rot1_2 = num_rot1_2 + 1;
// num_rot1_2 = num_rot1_2 / 2;
// }
// /* loop on rotations for image 2 */
// for (int rr2 = 1; rr2 <= num_rot1_2; rr2++ )
// {
// tilt_rot.push_back(tt);
// tilt_rot.push_back(num_rot1);
// tilt_rot.push_back(rr);
// tilt_rot.push_back(tt2);
// tilt_rot.push_back(num_rot1_2);
// tilt_rot.push_back(rr2);
// }
// }
// }
//}
/* Calculate the number of simulations */
#ifdef _OPENMP
omp_set_nested(1);
#endif
// loop on tilts for image 1.
#pragma omp parallel for private(tt)
for (int tt = 1; tt <= num_tilt1; tt++)
{
float t = t_min * pow(t_k, tt-1);
/* Attention: the t1, t2 do not follow the same convention as in compute_asift_keypoints */
float t1 = t;
float t2 = 1;
int num_rot1;
// If tilt t = 1, do not simulate rotation.
if ( tt == 1 )
{
num_rot1 = 1;
}
else
{
// The number of rotations to simulate under the current tilt.
num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
}
float delta_theta = PI/num_rot1;
// Loop on rotations for image 1.
#pragma omp parallel for private(rr)
for ( int rr = 1; rr <= num_rot1; rr++ )
{
float theta = delta_theta * (rr-1);
theta = theta * 180 / PI;
/* Read the keypoints of image 1 */
keypointslist keypoints1 = keys1[tt-1][rr-1];
// loop on tilts for image 2.
#pragma omp parallel for private(tt2)
for (int tt2 = 1; tt2 <= num_tilt2; tt2++)
{
float t_im2 = t_min * pow(t_k, tt2-1);
/* Attention: the t1, t2 do not follow the same convention as in asift_v1.c */
float t_im2_1 = t_im2;
float t_im2_2 = 1;
int num_rot1_2;
if ( tt2 == 1 )
{
num_rot1_2 = 1;
}
else
{
num_rot1_2 = round(num_rot_t2*t_im2/2);
if ( num_rot1_2%2 == 1 )
{
num_rot1_2 = num_rot1_2 + 1;
}
num_rot1_2 = num_rot1_2 / 2;
}
float delta_theta2 = PI/num_rot1_2;
#pragma omp parallel for private(rr2)
// Loop on rotations for image 2.
for ( int rr2 = 1; rr2 <= num_rot1_2; rr2++ )
{
float theta2 = delta_theta2 * (rr2-1);
theta2 = theta2 * 180 / PI;
/* Read the keypoints of image2. */
keypointslist keypoints2 = keys2[tt2-1][rr2-1];
// Match the keypoints of image1 and image2.
matchingslist matchings1;
compute_sift_matches(keypoints1,keypoints2,matchings1,siftparameters);
if ( verb )
{
printf("t1=%.2f, theta1=%.2f, num keys1 = %d, t2=%.2f, theta2=%.2f, num keys2 = %d, num matches=%d\n", t, theta, (int) keypoints1.size(), t_im2, theta2, (int) keypoints2.size(), (int) matchings1.size());
}
/* Store the matches */
if ( matchings1.size() > 0 )
{
matchings_vec[tt-1][rr-1][tt2-1][rr2-1] = matchingslist(matchings1.size());
Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1].resize(matchings1.size());
for ( int cc = 0; cc < (int) matchings1.size(); cc++ )
{
///// In the coordinates the affine transformations have been normalized already in compute_asift_keypoints. So no need to normalize here.
// Normalize the coordinates of the matched points by compensating the simulate affine transformations
// compensate_affine_coor(matchings1[cc], w1, h1, w2, h2, t1, t2, theta, t_im2_1, t_im2_2, theta2);
matchings_vec[tt-1][rr-1][tt2-1][rr2-1][cc] = matchings1[cc];
vector<float> Minfo_1match(6);
Minfo_1match[0] = t1;
Minfo_1match[1] = t2;
Minfo_1match[2] = theta;
Minfo_1match[3] = t_im2_1;
Minfo_1match[4] = t_im2_2;
Minfo_1match[5] = theta2;
Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1][cc] = Minfo_1match;
}
}
}
}
}
}
// Move the matches to a 1D vector
for (tt = 1; tt <= num_tilt1; tt++)
{
t = t_min * pow(t_k, tt-1);
if ( t == 1 )
{
num_rot1 = 1;
}
else
{
num_rot1 = round(num_rot_t2*t/2);
if ( num_rot1%2 == 1 )
{
num_rot1 = num_rot1 + 1;
}
num_rot1 = num_rot1 / 2;
}
for ( rr = 1; rr <= num_rot1; rr++ )
{
for (tt2 = 1; tt2 <= num_tilt2; tt2++)
{
t_im2 = t_min * pow(t_k, tt2-1);
if ( t_im2 == 1 )
{
num_rot1_2 = 1;
}
else
{
num_rot1_2 = round(num_rot_t2*t_im2/2);
if ( num_rot1_2%2 == 1 )
{
num_rot1_2 = num_rot1_2 + 1;
}
num_rot1_2 = num_rot1_2 / 2;
}
for ( rr2 = 1; rr2 <= num_rot1_2; rr2++ )
{
for ( cc=0; cc < (int) matchings_vec[tt-1][rr-1][tt2-1][rr2-1].size(); cc++ )
{
matchings.push_back(matchings_vec[tt-1][rr-1][tt2-1][rr2-1][cc]);
Minfoall.push_back(Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1][cc]);
}
}
}
}
}
if ( verb )
{
printf("The number of matches is %d \n", (int) matchings.size());
}
if ( matchings.size() > 0 )
{
/* Remove the repetitive matches that appear in different simulations and retain only one. */
// Since tilts are simuated on both image 1 and image 2, it is normal to have repetitive matches.
matchingslist matchings_unique;
vector< vector<float> > Minfoall_unique;
unique_match1(matchings, matchings_unique, Minfoall, Minfoall_unique);
matchings = matchings_unique;
Minfoall = Minfoall_unique;
if ( verb )
{
printf("The number of unique matches is %d \n", (int) matchings.size());
}
// There often appear to be some one-to-multiple/multiple-to-one matches (one point in image 1 matches with many points in image 2/vice versa).
// This is an artifact of SIFT on interpolated images, as the interpolation tends to create some auto-similar structures (steps for example).
// These matches need to be removed.
/* Separating the removal of multiple-to-one and one-to-multiple in two steps:
- first remove multiple-to-one
- then remove one-to-multiple
This allows to avoid removing some good matches: multiple-to-one matches is much more frequent than one-to-multiple. Sometimes some of the feature points in image 1 that take part in "multiple-to-one" bad matches have also correct matches in image 2. The modified scheme avoid removing these good matches. */
// Remove to multiple-to-one matches
matchings_unique.clear();
Minfoall_unique.clear();
clean_match2(matchings, matchings_unique, Minfoall, Minfoall_unique);
matchings = matchings_unique;
Minfoall = Minfoall_unique;
// Remove to one-to-multiple matches
matchings_unique.clear();
Minfoall_unique.clear();
clean_match1(matchings, matchings_unique, Minfoall, Minfoall_unique);
matchings = matchings_unique;
Minfoall = Minfoall_unique;
if ( verb )
{
printf("The number of final matches is %d \n", (int) matchings.size());
}
// If enough matches to do epipolar filtering
if ( (int) matchings.size() >= Tmin )
{
//////// Use ORSA to filter out the incorrect matches.
// store the coordinates of the matching points
vector<Match> match_coor;
for ( cc = 0; cc < (int) matchings.size(); cc++ )
{
Match match1_coor;
match1_coor.x1 = matchings[cc].first.x;
match1_coor.y1 = matchings[cc].first.y;
match1_coor.x2 = matchings[cc].second.x;
match1_coor.y2 = matchings[cc].second.y;
match_coor.push_back(match1_coor);
}
std::vector<float> index;
// Guoshen Yu, 2010.09.23
// index.clear();
int t_value_orsa=10000;
int verb_value_orsa=0;
int n_flag_value_orsa=0;
int mode_value_orsa=2;
int stop_value_orsa=0;
// epipolar filtering with the Moisan-Stival ORSA algorithm.
// float nfa = orsa(w1, h1, match_coor, index, t_value_orsa, verb_value_orsa, n_flag_value_orsa, mode_value_orsa, stop_value_orsa);
float nfa = orsa((w1+w2)/2, (h1+h2)/2, match_coor, index, t_value_orsa, verb_value_orsa, n_flag_value_orsa, mode_value_orsa, stop_value_orsa);
// if the matching is significant, register the good matches
if ( nfa < nfa_max )
{
// extract meaningful matches
matchings_unique.clear();
Minfoall_unique.clear();
for ( cc = 0; cc < (int) index.size(); cc++ )
{
matchings_unique.push_back(matchings[(int)index[cc]]);
Minfoall_unique.push_back(Minfoall[(int)index[cc]]);
}
matchings = matchings_unique;
Minfoall = Minfoall_unique;
cout << "The two images match! " << matchings.size() << " matchings are identified. log(nfa)=" << nfa << "." << endl;
}
else
{
matchings.clear();
Minfoall.clear();
cout << "The two images do not match. The matching is not significant: log(nfa)=" << nfa << "." << endl;
}
}
else
{
matchings.clear();
Minfoall.clear();
cout << "The two images do not match. Not enough matches to do epipolar filtering." << endl;
}
}
else
{
cout << "The two images do not match.\n" << endl;
}
return matchings.size();
}

View file

@ -0,0 +1,51 @@
// Copyright (c) 2008-2011, Guoshen Yu <yu@cmap.polytechnique.fr>
// Copyright (c) 2008-2011, Jean-Michel Morel <morel@cmla.ens-cachan.fr>
//
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
// affine recognition recognition of shapes (WO/2009/150361), patent pending.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
//
//
//*------------------------ compute_asift_matches-- -------------------------*/
// Match the ASIFT keypoints.
//
// Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
//
// Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
// Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
// Reference: ASIFT online demo (You can try ASIFT with your own images online.)
// http://www.ipol.im/pub/algo/my_affine_sift/
/*---------------------------------------------------------------------------*/
#include "library.h"
#include "demo_lib_sift.h"
#include "frot.h"
#include "fproj.h"
#include <vector>
using namespace std;
int compute_asift_matches(int num_of_tilts1, int num_of_tilts2, int w1, int h1, int w2, int h2, int verb, vector< vector< keypointslist > >& keys1, vector< vector< keypointslist > >& keys2, matchingslist &matchings, siftPar &siftparameters);

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,404 @@
// Copyright (c) 2008-2011, Guoshen Yu <yu@cmap.polytechnique.fr>
// Copyright (c) 2008-2011, Jean-Michel Morel <morel@cmla.ens-cachan.fr>
//
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// Jean-Michel Morel and Guoshen Yu, Method and device for the invariant
// affine recognition recognition of shapes (WO/2009/150361), patent pending.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
//
//
//*----------------------------- demo_ASIFT --------------------------------*/
// Detect corresponding points in two images with the ASIFT method.
// Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
//
// Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
// Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
// Reference: ASIFT online demo (You can try ASIFT with your own images online.)
// http://www.ipol.im/pub/algo/my_affine_sift/
/*---------------------------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <vector>
using namespace std;
#ifdef _OPENMP
#include <omp.h>
#endif
#include "demo_lib_sift.h"
#include "io_png/io_png.h"
#include "library.h"
#include "frot.h"
#include "fproj.h"
#include "compute_asift_keypoints.h"
#include "compute_asift_matches.h"
# define IM_X 800
# define IM_Y 600
int main(int argc, char **argv)
{
if ((argc != 8) && (argc != 9)) {
std::cerr << " ******************************************************************************* " << std::endl
<< " *************************** ASIFT image matching **************************** " << std::endl
<< " ******************************************************************************* " << std::endl
<< "Usage: " << argv[0] << " imgIn1.png imgIn2.png imgOutVert.png imgOutHori.png " << std::endl
<< " matchings.txt keys1.txt keys2.txt [Resize option: 0/1] " << std::endl
<< "- imgIn1.png, imgIn2.png: input images (in PNG format). " << std::endl
<< "- imgOutVert.png, imgOutHori.png: output images (vertical/horizontal concatenated, " << std::endl
<< " in PNG format.) The detected matchings are connected by write lines." << std::endl
<< "- matchings.txt: coordinates of matched points (col1, row1, col2, row2). " << std::endl
<< "- keys1.txt keys2.txt: ASIFT keypoints of the two images." << std::endl
<< "- [optional 0/1]. 1: input images resize to 800x600 (default). 0: no resize. " << std::endl
<< " ******************************************************************************* " << std::endl
<< " ********************* Jean-Michel Morel, Guoshen Yu, 2010 ******************** " << std::endl
<< " ******************************************************************************* " << std::endl;
return 1;
}
//////////////////////////////////////////////// Input
// Read image1
float * iarr1;
size_t w1, h1;
if (NULL == (iarr1 = read_png_f32_gray(argv[1], &w1, &h1))) {
std::cerr << "Unable to load image file " << argv[1] << std::endl;
return 1;
}
std::vector<float> ipixels1(iarr1, iarr1 + w1 * h1);
free(iarr1); /*memcheck*/
// Read image2
float * iarr2;
size_t w2, h2;
if (NULL == (iarr2 = read_png_f32_gray(argv[2], &w2, &h2))) {
std::cerr << "Unable to load image file " << argv[2] << std::endl;
return 1;
}
std::vector<float> ipixels2(iarr2, iarr2 + w2 * h2);
free(iarr2); /*memcheck*/
///// Resize the images to area wS*hW in remaining the apsect-ratio
///// Resize if the resize flag is not set or if the flag is set unequal to 0
float wS = IM_X;
float hS = IM_Y;
float zoom1=0, zoom2=0;
int wS1=0, hS1=0, wS2=0, hS2=0;
vector<float> ipixels1_zoom, ipixels2_zoom;
int flag_resize = 1;
if (argc == 9)
{
flag_resize = atoi(argv[8]);
}
if ((argc == 8) || (flag_resize != 0))
{
cout << "WARNING: The input images are resized to " << wS << "x" << hS << " for ASIFT. " << endl
<< " But the results will be normalized to the original image size." << endl << endl;
float InitSigma_aa = 1.6;
float fproj_p, fproj_bg;
char fproj_i;
float *fproj_x4, *fproj_y4;
int fproj_o;
fproj_o = 3;
fproj_p = 0;
fproj_i = 0;
fproj_bg = 0;
fproj_x4 = 0;
fproj_y4 = 0;
float areaS = wS * hS;
// Resize image 1
float area1 = w1 * h1;
zoom1 = sqrt(area1/areaS);
wS1 = (int) (w1 / zoom1);
hS1 = (int) (h1 / zoom1);
int fproj_sx = wS1;
int fproj_sy = hS1;
float fproj_x1 = 0;
float fproj_y1 = 0;
float fproj_x2 = wS1;
float fproj_y2 = 0;
float fproj_x3 = 0;
float fproj_y3 = hS1;
/* Anti-aliasing filtering along vertical direction */
if ( zoom1 > 1 )
{
float sigma_aa = InitSigma_aa * zoom1 / 2;
GaussianBlur1D(ipixels1,w1,h1,sigma_aa,1);
GaussianBlur1D(ipixels1,w1,h1,sigma_aa,0);
}
// simulate a tilt: subsample the image along the vertical axis by a factor of t.
ipixels1_zoom.resize(wS1*hS1);
fproj (ipixels1, ipixels1_zoom, w1, h1, &fproj_sx, &fproj_sy, &fproj_bg, &fproj_o, &fproj_p,
&fproj_i , fproj_x1 , fproj_y1 , fproj_x2 , fproj_y2 , fproj_x3 , fproj_y3, fproj_x4, fproj_y4);
// Resize image 2
float area2 = w2 * h2;
zoom2 = sqrt(area2/areaS);
wS2 = (int) (w2 / zoom2);
hS2 = (int) (h2 / zoom2);
fproj_sx = wS2;
fproj_sy = hS2;
fproj_x2 = wS2;
fproj_y3 = hS2;
/* Anti-aliasing filtering along vertical direction */
if ( zoom1 > 1 )
{
float sigma_aa = InitSigma_aa * zoom2 / 2;
GaussianBlur1D(ipixels2,w2,h2,sigma_aa,1);
GaussianBlur1D(ipixels2,w2,h2,sigma_aa,0);
}
// simulate a tilt: subsample the image along the vertical axis by a factor of t.
ipixels2_zoom.resize(wS2*hS2);
fproj (ipixels2, ipixels2_zoom, w2, h2, &fproj_sx, &fproj_sy, &fproj_bg, &fproj_o, &fproj_p,
&fproj_i , fproj_x1 , fproj_y1 , fproj_x2 , fproj_y2 , fproj_x3 , fproj_y3, fproj_x4, fproj_y4);
}
else
{
ipixels1_zoom.resize(w1*h1);
ipixels1_zoom = ipixels1;
wS1 = w1;
hS1 = h1;
zoom1 = 1;
ipixels2_zoom.resize(w2*h2);
ipixels2_zoom = ipixels2;
wS2 = w2;
hS2 = h2;
zoom2 = 1;
}
///// Compute ASIFT keypoints
// number N of tilts to simulate t = 1, \sqrt{2}, (\sqrt{2})^2, ..., {\sqrt{2}}^(N-1)
int num_of_tilts1 = 7;
int num_of_tilts2 = 7;
// int num_of_tilts1 = 1;
// int num_of_tilts2 = 1;
int verb = 0;
// Define the SIFT parameters
siftPar siftparameters;
default_sift_parameters(siftparameters);
vector< vector< keypointslist > > keys1;
vector< vector< keypointslist > > keys2;
int num_keys1=0, num_keys2=0;
cout << "Computing keypoints on the two images..." << endl;
time_t tstart, tend;
tstart = time(0);
num_keys1 = compute_asift_keypoints(ipixels1_zoom, wS1, hS1, num_of_tilts1, verb, keys1, siftparameters);
num_keys2 = compute_asift_keypoints(ipixels2_zoom, wS2, hS2, num_of_tilts2, verb, keys2, siftparameters);
tend = time(0);
cout << "Keypoints computation accomplished in " << difftime(tend, tstart) << " seconds." << endl;
//// Match ASIFT keypoints
int num_matchings;
matchingslist matchings;
cout << "Matching the keypoints..." << endl;
tstart = time(0);
num_matchings = compute_asift_matches(num_of_tilts1, num_of_tilts2, wS1, hS1, wS2,
hS2, verb, keys1, keys2, matchings, siftparameters);
tend = time(0);
cout << "Keypoints matching accomplished in " << difftime(tend, tstart) << " seconds." << endl;
///////////////// Output image containing line matches (the two images are concatenated one above the other)
int band_w = 20; // insert a black band of width band_w between the two images for better visibility
int wo = MAX(w1,w2);
int ho = h1+h2+band_w;
float *opixelsASIFT = new float[wo*ho];
for(int j = 0; j < (int) ho; j++)
for(int i = 0; i < (int) wo; i++) opixelsASIFT[j*wo+i] = 255;
/////////////////////////////////////////////////////////////////// Copy both images to output
for(int j = 0; j < (int) h1; j++)
for(int i = 0; i < (int) w1; i++) opixelsASIFT[j*wo+i] = ipixels1[j*w1+i];
for(int j = 0; j < (int) h2; j++)
for(int i = 0; i < (int) (int)w2; i++) opixelsASIFT[(h1 + band_w + j)*wo + i] = ipixels2[j*w2 + i];
//////////////////////////////////////////////////////////////////// Draw matches
matchingslist::iterator ptr = matchings.begin();
for(int i=0; i < (int) matchings.size(); i++, ptr++)
{
draw_line(opixelsASIFT, (int) (zoom1*ptr->first.x), (int) (zoom1*ptr->first.y),
(int) (zoom2*ptr->second.x), (int) (zoom2*ptr->second.y) + h1 + band_w, 255.0f, wo, ho);
}
///////////////////////////////////////////////////////////////// Save imgOut
write_png_f32(argv[3], opixelsASIFT, wo, ho, 1);
delete[] opixelsASIFT; /*memcheck*/
/////////// Output image containing line matches (the two images are concatenated one aside the other)
int woH = w1+w2+band_w;
int hoH = MAX(h1,h2);
float *opixelsASIFT_H = new float[woH*hoH];
for(int j = 0; j < (int) hoH; j++)
for(int i = 0; i < (int) woH; i++) opixelsASIFT_H[j*woH+i] = 255;
/////////////////////////////////////////////////////////////////// Copy both images to output
for(int j = 0; j < (int) h1; j++)
for(int i = 0; i < (int) w1; i++) opixelsASIFT_H[j*woH+i] = ipixels1[j*w1+i];
for(int j = 0; j < (int) h2; j++)
for(int i = 0; i < (int) w2; i++) opixelsASIFT_H[j*woH + w1 + band_w + i] = ipixels2[j*w2 + i];
//////////////////////////////////////////////////////////////////// Draw matches
matchingslist::iterator ptrH = matchings.begin();
for(int i=0; i < (int) matchings.size(); i++, ptrH++)
{
draw_line(opixelsASIFT_H, (int) (zoom1*ptrH->first.x), (int) (zoom1*ptrH->first.y),
(int) (zoom2*ptrH->second.x) + w1 + band_w, (int) (zoom2*ptrH->second.y), 255.0f, woH, hoH);
}
///////////////////////////////////////////////////////////////// Save imgOut
write_png_f32(argv[4], opixelsASIFT_H, woH, hoH, 1);
delete[] opixelsASIFT_H; /*memcheck*/
////// Write the coordinates of the matched points (row1, col1, row2, col2) to the file argv[5]
std::ofstream file(argv[5]);
if (file.is_open())
{
// Write the number of matchings in the first line
file << num_matchings << std::endl;
matchingslist::iterator ptr = matchings.begin();
for(int i=0; i < (int) matchings.size(); i++, ptr++)
{
file << zoom1*ptr->first.x << " " << zoom1*ptr->first.y << " " << zoom2*ptr->second.x <<
" " << zoom2*ptr->second.y << std::endl;
}
}
else
{
std::cerr << "Unable to open the file matchings.";
}
file.close();
// Write all the keypoints (row, col, scale, orientation, desciptor (128 integers)) to
// the file argv[6] (so that the users can match the keypoints with their own matching algorithm if they wish to)
// keypoints in the 1st image
std::ofstream file_key1(argv[6]);
if (file_key1.is_open())
{
// Follow the same convention of David Lowe:
// the first line contains the number of keypoints and the length of the desciptors (128)
file_key1 << num_keys1 << " " << VecLength << " " << std::endl;
for (int tt = 0; tt < (int) keys1.size(); tt++)
{
for (int rr = 0; rr < (int) keys1[tt].size(); rr++)
{
keypointslist::iterator ptr = keys1[tt][rr].begin();
for(int i=0; i < (int) keys1[tt][rr].size(); i++, ptr++)
{
file_key1 << zoom1*ptr->x << " " << zoom1*ptr->y << " " << zoom1*ptr->scale << " " << ptr->angle;
for (int ii = 0; ii < (int) VecLength; ii++)
{
file_key1 << " " << ptr->vec[ii];
}
file_key1 << std::endl;
}
}
}
}
else
{
std::cerr << "Unable to open the file keys1.";
}
file_key1.close();
////// keypoints in the 2nd image
std::ofstream file_key2(argv[7]);
if (file_key2.is_open())
{
// Follow the same convention of David Lowe:
// the first line contains the number of keypoints and the length of the desciptors (128)
file_key2 << num_keys2 << " " << VecLength << " " << std::endl;
for (int tt = 0; tt < (int) keys2.size(); tt++)
{
for (int rr = 0; rr < (int) keys2[tt].size(); rr++)
{
keypointslist::iterator ptr = keys2[tt][rr].begin();
for(int i=0; i < (int) keys2[tt][rr].size(); i++, ptr++)
{
file_key2 << zoom2*ptr->x << " " << zoom2*ptr->y << " " << zoom2*ptr->scale << " " << ptr->angle;
for (int ii = 0; ii < (int) VecLength; ii++)
{
file_key2 << " " << ptr->vec[ii];
}
file_key2 << std::endl;
}
}
}
}
else
{
std::cerr << "Unable to open the file keys2.";
}
file_key2.close();
return 0;
}

View file

@ -0,0 +1,96 @@
%*-------------------demo_ASIFT MATLAB interface -------------------------*/
%
% *************************************************************************
% NOTE: The ASIFT SOFTWARE ./demo_ASIFT IS STANDALONE AND CAN BE EXECUTED
% WITHOUT MATLAB.
% *************************************************************************
%
% Detect corresponding points in two images with the ASIFT method.
% Copyright, Jean-Michel Morel, Guoshen Yu, 2008.
% Please report bugs and/or send comments to Guoshen Yu yu@cmap.polytechnique.fr
%
% Reference: J.M. Morel and G.Yu, ASIFT: A New Framework for Fully Affine Invariant Image
% Comparison, SIAM Journal on Imaging Sciences, vol. 2, issue 2, pp. 438-469, 2009.
% Reference: ASIFT online demo (You can try ASIFT with your own images online.)
% http://www.ipol.im/pub/algo/my_affine_sift/
%
% 2010.08.17
% ---------------------------------------------------------------------------*/
function demo_ASIFT(file_img1, file_img2, imgOutVert, imgOutHori, matchings, keys1, keys2, flag_resize)
if (nargin == 8)
if (isnumeric(flag_resize) && (flag_resize == 0))
flag_resize = 0;
else
flag_resize = 1;
end
elseif (nargin == 7)
flag_resize = 1;
else
disp('*******************************************************************************');
disp('*************************** ASIFT image matching ****************************');
disp('*******************************************************************************');
disp('Usage: ./demo_ASIFT imgIn1 imgIn2 imgOutVert.png imgOutHori.png');
disp(' matchings.txt keys1.txt keys2.txt [Resize option: 0/1]');
disp('- imgIn1, imgIn2: input images (in most standard formats).');
disp('- imgOutVert.png, imgOutHori.png: output images (vertical/horizontal concatenated,');
disp(' in PNG format.) The detected matchings are connected by write lines.');
disp('- matchings.txt: coordinates of matched points (col1, row1, col2, row2).');
disp('- keys1.txt keys2.txt: ASIFT keypoints of the two images.')
disp('- [optional 0/1]. 1: input images resize to 800x600 (default). 0: no resize.');
disp('*******************************************************************************');
disp('********************* Jean-Michel Morel, Guoshen Yu, 2010 ********************');
disp('*******************************************************************************');
assert(false);
end
imgIn1 = imread(file_img1);
imgIn2 = imread(file_img2);
% convert the image to png format
file_img1_png = 'tmpASIFTinput1.png';
file_img2_png = 'tmpASIFTinput2.png';
imwrite(imgIn1, file_img1_png, 'png');
imwrite(imgIn2, file_img2_png, 'png');
% ASIFT command
command_ASIFT = './demo_ASIFT';
command_ASIFT = [command_ASIFT ' ' file_img1_png ' ' file_img2_png ' ' ...
imgOutVert ' ' imgOutHori ' ' matchings ' ' keys1 ' ' keys2];
if (flag_resize == 0)
command_ASIFT = [command_ASIFT ' 0'];
end
% get the number of processors
% Mac
if (ismac == 1)
[s, w] = unix('sysctl -n hw.ncpu');
num_CPUs = str2num(w);
% set the maximum OpenMP threads to the number of processors
set_threads = sprintf('export OMP_NUM_THREADS=%d;', num_CPUs);
command = [set_threads ' ' command_ASIFT];
% Unix
elseif (isunix == 1)
[s, w] = unix('grep processor /proc/cpuinfo | wc -l');
num_CPUs = str2num(w);
% set the maximum OpenMP threads to the number of processors
set_threads = sprintf('export OMP_NUM_THREADS=%d;', num_CPUs);
command = [set_threads ' ' command_ASIFT];
% Windows
elseif (ispc == 1)
[s, w] = dos('set NUMBER_OF_PROCESSORS');
num_CPUs = sscanf(w, '%*21c%d', [1, Inf]);
% set the maximum OpenMP threads to the number of processors
setenv('OMP_NUM_THREADS', num2str(num_CPUs));
command = command_ASIFT;
else
error('Unrecognized operating system. The operating system should be Windows, Linux/Unix, or Mac OS.');
end
status = system(command);

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,298 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
// WARNING:
// This file implements an algorithm possibly linked to the patent
//
// David Lowe "Method and apparatus for identifying scale invariant
// features in an image and use of same for locating an object in an
// image", U.S. Patent 6,711,293.
//
// This file is made available for the exclusive aim of serving as
// scientific tool to verify of the soundness and
// completeness of the algorithm description. Compilation,
// execution and redistribution of this file may violate exclusive
// patents rights in certain countries.
// The situation being different for every country and changing
// over time, it is your responsibility to determine which patent
// rights restrictions apply to you before you compile, use,
// modify, or redistribute this file. A patent lawyer is qualified
// to make this determination.
// If and only if they don't conflict with any patent terms, you
// can benefit from the following license terms attached to this
// file.
//
// This program is provided for scientific and educational only:
// you can use and/or modify it for these purposes, but you are
// not allowed to redistribute this work or derivative works in
// source or executable form. A license must be obtained from the
// patent right holders for any other use.
#ifndef _CLIBSIFT_H_
#define _CLIBSIFT_H_
///////////// Description
/// For each octave:
/// - Divide in par.Scales scales
/// - Convolve and compute differences of convolved scales
/// - Look for a 3x3 multiscale extrema and contraste enough and with no predominant direction (no 1d edge)
/// For each extrema
/// - Compute orientation histogram in neighborhood.
/// - Generate a keypoint for each mode with this orientation
/// For each keypoint
/// - Create vector
///////////// Possible differences with MW
/// Gaussian convolution
#include <stdlib.h>
#include <assert.h>
#include "numerics1.h"
#include "library.h"
#include "filter.h"
#include "domain.h"
#include "splines.h"
#include "flimage.h"
#include <vector>
// BASIC STRUCTURES:
// Keypoints:
#define OriSize 8
#define IndexSize 4
#define VecLength IndexSize * IndexSize * OriSize
/* Keypoint structure:
position: x,y
scale: s
orientation: angle
descriptor: array of gradient orientation histograms in a neighbors */
struct keypoint {
float x,y,
scale,
angle;
float vec[VecLength];
};
/* Keypoint structure:
position: x,y
scale: s
orientation: angle
descriptor: array of gradient orientation histograms in a neighbors */
struct keypoint_char {
float x,y,
scale,
angle;
unsigned char vec[VecLength];
};
/* Keypoint structure:
position: x,y
scale: s
orientation: angle
descriptor: array of gradient orientation histograms in a neighbors */
struct keypoint_short {
float x,y,
scale,
angle;
unsigned short vec[VecLength];
};
/* Keypoint structure:
position: x,y
scale: s
orientation: angle
descriptor: array of gradient orientation histograms in a neighbors */
struct keypoint_int {
float x,y,
scale,
angle;
unsigned int vec[VecLength];
};
/* List of keypoints: just use the standard class vector: */
typedef std::vector<keypoint> keypointslist;
/* List of keypoints: just use the standard class vector: */
typedef std::vector<keypoint_char> keypointslist_char;
typedef std::vector<keypoint_short> keypointslist_short;
typedef std::vector<keypoint_int> keypointslist_int;
/* Matching: just use the standard class pair: */
typedef std::pair<keypoint,keypoint> matching;
/* List of matchings: just use the standard class vector: */
typedef std::vector<matching> matchingslist;
struct siftPar
{
int OctaveMax;
int DoubleImSize;
int order;
/* InitSigma gives the amount of smoothing applied to the image at the
first level of each octave. In effect, this determines the sampling
needed in the image domain relative to amount of smoothing. Good
values determined experimentally are in the range 1.2 to 1.8.
*/
float InitSigma /*= 1.6*/;
/* Peaks in the DOG function must be at least BorderDist samples away
from the image border, at whatever sampling is used for that scale.
Keypoints close to the border (BorderDist < about 15) will have part
of the descriptor landing outside the image, which is approximated by
having the closest image pixel replicated. However, to perform as much
matching as possible close to the edge, use BorderDist of 4.
*/
int BorderDist /*= 5*/;
/* Scales gives the number of discrete smoothing levels within each octave.
For example, Scales = 2 implies dividing octave into 2 intervals, so
smoothing for each scale sample is sqrt(2) more than previous level.
Value of 2 works well, but higher values find somewhat more keypoints.
*/
int Scales /*= 3*/;
/// Decreasing PeakThresh allows more non contrasted keypoints
/* Magnitude of difference-of-Gaussian value at a keypoint must be above
this threshold. This avoids considering points with very low contrast
that are dominated by noise. It is divided by Scales because more
closely spaced scale samples produce smaller DOG values. A value of
0.08 considers only the most stable keypoints, but applications may
wish to use lower values such as 0.02 to find keypoints from low-contast
regions.
*/
//#define PeakThreshInit 255*0.04
//#define PeakThresh PeakThreshInit / Scales
float PeakThresh /*255.0 * 0.04 / 3.0*/;
/// Decreasing EdgeThresh allows more edge points
/* This threshold eliminates responses at edges. A value of 0.08 means
that the ratio of the largest to smallest eigenvalues (principle
curvatures) is below 10. A value of 0.14 means ratio is less than 5.
A value of 0.0 does not eliminate any responses.
Threshold at first octave is different.
*/
float EdgeThresh /*0.06*/;
float EdgeThresh1 /*0.08*/;
/* OriBins gives the number of bins in the histogram (36 gives 10
degree spacing of bins).
*/
int OriBins /*36*/;
/* Size of Gaussian used to select orientations as multiple of scale
of smaller Gaussian in DOG function used to find keypoint.
Best values: 1.0 for UseHistogramOri = FALSE; 1.5 for TRUE.
*/
float OriSigma /*1.5*/;
/// Look for local (3-neighborhood) maximum with valuer larger or equal than OriHistThresh * maxval
/// Setting one returns a single peak
/* All local peaks in the orientation histogram are used to generate
keypoints, as long as the local peak is within OriHistThresh of
the maximum peak. A value of 1.0 only selects a single orientation
at each location.
*/
float OriHistThresh /*0.8*/;
/// Feature vector is normalized to has euclidean norm 1.
/// This threshold avoid the excessive concentration of information on single peaks
/* Index values are thresholded at this value so that regions with
high gradients do not need to match precisely in magnitude.
Best value should be determined experimentally. Value of 1.0
has no effect. Value of 0.2 is significantly better.
*/
float MaxIndexVal /*0.2*/;
/* This constant specifies how large a region is covered by each index
vector bin. It gives the spacing of index samples in terms of
pixels at this scale (which is then multiplied by the scale of a
keypoint). It should be set experimentally to as small a value as
possible to keep features local (good values are in range 3 to 5).
*/
int MagFactor /*3*/;
/* Width of Gaussian weighting window for index vector values. It is
given relative to half-width of index, so value of 1.0 means that
weight has fallen to about half near corners of index patch. A
value of 1.0 works slightly better than large values (which are
equivalent to not using weighting). Value of 0.5 is considerably
worse.
*/
float IndexSigma /*1.0*/;
/* If this is TRUE, then treat gradients with opposite signs as being
the same. In theory, this could create more illumination invariance,
but generally harms performance in practice.
*/
int IgnoreGradSign /*0*/;
float MatchRatio /*0.6*/;
/*
In order to constrain the research zone for matches.
Useful for example when looking only at epipolar lines
*/
float MatchXradius /*= 1000000.0f*/;
float MatchYradius /*= 1000000.0f*/;
int noncorrectlylocalized;
};
//////////////////////////////////////////////////////////
/// SIFT
//////////////////////////////////////////////////////////
void default_sift_parameters(siftPar &par);
void compute_sift_keypoints(float *input, keypointslist& keypoints,int width, int height, siftPar &par);
// MATCHING DETECTION FUNCTION:
void compute_sift_matches( keypointslist& keys1, keypointslist& keys2, matchingslist& matchings, siftPar &par);
#endif // _LIBSIFT_H_

Binary file not shown.

View file

@ -0,0 +1,145 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
#include "domain.h"
#define DEBUG 0
void apply_zoom(float *input, float *out, float zoom, int order, int width, int height)
{
int nwidth = (int)( zoom * (float) width);
int nheight = (int)( zoom * (float) height);
float *coeffs;
float *ref;
float cx[12],cy[12],ak[13];
// Guoshen Yu, 2010.09.22, Windows versions
vector<float> input_vec, coeffs_vec, ref_vec;
input_vec = vector<float>(width*height);
coeffs_vec = vector<float>(width*height);
ref_vec = vector<float>(width*height);
for (int i = 0; i < width*height; i++)
input_vec[i] = input[i];
if (order!=0 && order!=1 && order!=-3 &&
order!=3 && order!=5 && order!=7 && order!=9 && order!=11)
{
printf("unrecognized interpolation order.\n");
exit(-1);
}
if (order>=3) {
coeffs = new float[width*height];
// Guoshen Yu, 2010.09.21, Windows version
//finvspline(input,order,coeffs,width,height);
finvspline(input_vec,order,coeffs_vec,width,height);
for (int i = 0; i < width*height; i++)
coeffs[i] = coeffs_vec[i];
ref = coeffs;
if (order>3) init_splinen(ak,order);
} else
{
coeffs = NULL;
ref = input;
}
int xi,yi;
float xp,yp;
float res;
int n1,n2;
float bg = 0.0f;
float p=-0.5;
for(int i=0; i < nwidth; i++)
for(int j=0; j < nheight; j++)
{
xp = (float) i / zoom;
yp = (float) j / zoom;
if (order == 0) {
xi = (int)floor((double)xp);
yi = (int)floor((double)yp);
if (xi<0 || xi>=width || yi<0 || yi>=height)
res = bg;
else res = input[yi*width+xi];
} else {
if (xp<0. || xp>=(float)width || yp<0. || yp>=(float)height) res=bg;
else {
xp -= 0.5; yp -= 0.5;
int xi = (int)floor((double)xp);
int yi = (int)floor((double)yp);
float ux = xp-(float)xi;
float uy = yp-(float)yi;
switch (order)
{
case 1: /* first order interpolation (bilinear) */
n2 = 1;
cx[0]=ux; cx[1]=1.-ux;
cy[0]=uy; cy[1]=1.-uy;
break;
case -3: /* third order interpolation (bicubic Keys' function) */
n2 = 2;
keys(cx,ux,p);
keys(cy,uy,p);
break;
case 3: /* spline of order 3 */
n2 = 2;
spline3(cx,ux);
spline3(cy,uy);
break;
default: /* spline of order >3 */
n2 = (1+order)/2;
splinen(cx,ux,ak,order);
splinen(cy,uy,ak,order);
break;
}
res = 0.; n1 = 1-n2;
if (xi+n1>=0 && xi+n2<width && yi+n1>=0 && yi+n2<height) {
int adr = yi*width+xi;
for (int dy=n1;dy<=n2;dy++)
for (int dx=n1;dx<=n2;dx++)
res += cy[n2-dy]*cx[n2-dx]*ref[adr+width*dy+dx];
} else
// Guoshen Yu, 2010.09.21, Windows
for (int i = 0; i < width*height; i++)
ref_vec[i] = ref[i];
for (int dy=n1;dy<=n2;dy++)
for (int dx=n1;dx<=n2;dx++)
// Guoshen Yu, 2010.09.21, Windows
// res += cy[n2-dy]*cx[n2-dx]*v(ref,xi+dx,yi+dy,bg,width,height);
res += cy[n2-dy]*cx[n2-dx]*v(ref_vec,xi+dx,yi+dy,bg,width,height);
}
}
out[j*nwidth+i] = res;
}
}

View file

@ -0,0 +1,40 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
#ifndef _DOMAIN_H_
#define _DOMAIN_H_
#include "numerics1.h"
#include "library.h"
#include "splines.h"
/// Compute homography from n points using svd
void compute_planar_homography_n_points(float *x0, float *y0, float *x1, float *y1, int n, float **H);
/// Compute homography using svd + Ransac
void compute_ransac_planar_homography_n_points(float *x0, float *y0, float *x1, float *y1, int n, int niter, float tolerance, float **H);
/// Compute homography by using Lionel Code
void compute_moisan_planar_homography_n_points(float *x0, float *y0, float *x1, float *y1, int n, int niter, float &epsilon, float **H, int &counter, int recursivity);
/// Apply planar homography to image
void compute_planar_homography_bounding_box(int width, int height, float **H, float *x0, float *y0, int *nwidth, int *nheight);
void apply_planar_homography(float *input, int width, int height, float **H, float bg, int order, float *out, float x0, float y0, int nwidth, int nheight);
/// Apply zoom of factor z
void apply_zoom(float *input, float *out, float zoom, int order, int width, int height);
/// Apply general transformation
void apply_general_transformation(float *input, float *transformx, float* transformy, float *out, float bg, int order, int width, int height, int nwidth,int nheight);
#endif

View file

@ -0,0 +1,460 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
#include "filter.h"
/////////////////////////////////////////////////////////////// Build Gaussian filters
float * directional_gauss_filter(float xsigma, float ysigma, float angle, int *kwidth, int *kheight)
{
int ksize = (int)(2.0 * 2.0 * MAX(xsigma, ysigma) + 1.0);
float *kernel = new float[ksize*ksize];
float xsigma2 = xsigma*xsigma;
float ysigma2 = ysigma*ysigma;
int l2 = ksize/2;
for(int y = -l2; y <= l2; y++)
for(int x = -l2; x <= l2; x++)
{
float a = (float) angle * PI / 180.0f;
float sina = sin(a);
float cosa = cos(a);
float ax = (float) x * cosa + (float) y * sina;
float ay = -(float) x * sina + (float) y * cosa;
kernel[(y+l2) * ksize + x + l2] = exp(-(ax*ax)/(2.0f*xsigma2) - (ay*ay)/(2.0f*ysigma2) );
}
float sum=0.0;
for(int i=0; i < ksize*ksize; i++) sum += kernel[i];
for(int i=0; i < ksize*ksize; i++) kernel[i] /= sum;
*kwidth = ksize;
*kheight = ksize;
return kernel;
}
/* Convolution with a kernel */
/* No padding applied to the image */
void convol(float *u,float *v,int width,int height,float *kernel,int kwidth,int kheight)
{
// float S;
// int K2,L2,m,n,kmin,kmax,lmin,lmax,l,k;
int K2 = kwidth / 2;
int L2 = kheight / 2;
for(int y=0 ; y < height; y++)
for (int x=0 ; x < width; x++) {
float S = 0.0;
// kmax = MIN(kwidth-1,n+K2);
// kmin = MAX(0,1+n+K2-width);
// lmax = MIN(kheight-1,m+L2);
// lmin = MAX(0,1+m+L2-height);
for (int l = -L2; l <= L2; l++)
for (int k = -K2 ; k<= K2; k++)
{
int px=x+k;
int py=y+l;
if (px>=0 && px < width && py>=0 && py<height)
S += u[width*py + px] * kernel[kwidth*(l+L2) + k+K2];
}
v[y*width+x] = (float) S;
}
}
void median(float *u,float *v, float radius, int niter, int width,int height)
{
int iradius = (int)(radius+1.0);
int rsize=(2*iradius+1)*(2*iradius+1);
float * vector = new float[rsize];
float * index = new float[rsize];
for(int n=0; n< niter;n++){
for(int x=0;x<width;x++)
for(int y=0;y<height;y++){
int count=0;
for(int i=-iradius;i<=iradius;i++)
for(int j=-iradius;j<=iradius;j++)
if ((float) (i*i + j*j) <= iradius*iradius){
int x0=x+i;
int y0=y+j;
if (x0>=0 && y0>=0 && x0 < width && y0 < height) {
vector[count] = u[y0*width+x0];
index[count] = count;
count++;
}
}
quick_sort(vector,index,count);
v[y*width+x] = vector[count/2];
}
copy(v,u,width*height);
}
delete[] vector;
delete[] index;
}
void remove_outliers(float *igray,float *ogray,int width, int height)
{
int bloc=1;
int bsize = (2*bloc+1)*(2*bloc+1)-1;
for(int x=bloc;x<width-bloc;x++)
for(int y=bloc;y<height-bloc;y++) {
int l = y*width+x;
int countmax=0;
int countmin=0;
float valueg0 = igray[l];
// float distmin = MAXFLOAT;
float distmin = FLT_MAX; // Guoshen Yu
float green = igray[l];
for(int i=-bloc;i<=bloc;i++)
for(int j=-bloc;j<=bloc;j++)
if ((i!=0 || j!=0)){
int l0 = (y+j)*width+x+i;
int valueg = (int) igray[l0];
if (valueg0>valueg) countmax++;
if (valueg0<valueg) countmin++;
float dist = fabsf(valueg - valueg0);
if (dist < distmin) {distmin=dist;green=valueg;}
}
if (countmin == bsize || countmax == bsize ) ogray[l]=green;
else ogray[l] = igray[l];
}
}
/* Convolution with a separable kernel */
/* boundary condition: 0=zero, 1=symmetry */
void separable_convolution(float *u, float *v, int width, int height,float * xkernel, int xsize,float *ykernel,int ysize,int boundary)
{
int width2 = 2*width;
int height2 = 2*height;
float *tmp = (float *) malloc(width*height*sizeof(float));
/* convolution along x axis */
float sum = 0.0;
int org = xsize / 2;
for (int y=height;y--;)
for (int x=width;x--;) {
sum = 0.0;
for (int i=xsize;i--;) {
int s = x-i+org;
switch(boundary) {
case 0:
if (s>=0 && s<width) sum += xkernel[i]*u[y*width+s];
break;
case 1:
while (s<0) s+=width2;
while (s>=width2) s-=width2;
if (s>=width) s = width2-1-s;
sum += xkernel[i]*u[y*width+s];
break;
}
}
tmp[y*width+x] = sum;
}
/* convolution along y axis */
org = ysize / 2;
for (int y=height;y--;)
for (int x=width;x--;) {
sum=0.0;
for (int i=ysize;i--;) {
int s = y-i+org;
switch(boundary) {
case 0:
if (s>=0 && s<height) sum += ykernel[i]*tmp[s*width+x];
break;
case 1:
while (s<0) s+=height2;
while (s>=height2) s-=height2;
if (s>=height) s = height2-1-s;
sum += ykernel[i]*tmp[s*width+x];
break;
}
}
v[y*width+x] = sum;
}
free(tmp);
}
void gaussian_convolution(float *u, float *v, int width, int height, float sigma)
{
int ksize;
float * kernel;
ksize = (int)(2.0 * 4.0 * sigma + 1.0);
kernel = gauss(1,sigma,&ksize);
int boundary = 1;
copy(u,v,width*height);
horizontal_convolution(v, v, width, height, kernel, ksize, boundary);
vertical_convolution(v, v, width, height, kernel, ksize, boundary);
delete[] kernel; /*memcheck*/
}
void gaussian_convolution(float *u, float *v, int width, int height, float sigma, int ksize)
{
float * kernel;
kernel = gauss(1,sigma,&ksize);
int boundary = 1;
copy(u,v,width*height);
horizontal_convolution(v, v, width, height, kernel, ksize, boundary);
vertical_convolution(v, v, width, height, kernel, ksize, boundary);
}
void fast_separable_convolution(float *u, float *v, int width, int height,float * xkernel, int xsize,float *ykernel,int ysize,int boundary)
{
copy(u,v,width*height);
horizontal_convolution(v, v, width, height, xkernel, xsize, boundary);
vertical_convolution(v, v, width, height, ykernel, ysize, boundary);
}
/* Loop unrolling simply sums 5 multiplications
at a time to allow the compiler to schedule
operations better and avoid loop overhead.
*/
void buffer_convolution(float *buffer,float *kernel,int size,int ksize)
{
for (int i = 0; i < size; i++) {
float sum = 0.0;
float *bp = &buffer[i];
float *kp = &kernel[0];
/* Loop unrolling: do 5 multiplications at a time. */
// int k=0;
for(int k = 0; k < ksize; k++)
sum += *bp++ * *kp++;
// for(;k + 4 < ksize; bp += 5, kp += 5, k += 5)
// sum += bp[0] * kp[0] + bp[1] * kp[1] + bp[2] * kp[2] +
// bp[3] * kp[3] + bp[4] * kp[4];
/* Do multiplications at a time on remaining items. */
// for(; k < ksize; bp++ , kp++, k++) sum += *bp * (*kp);
buffer[i] = sum;
}
}
/* Convolve image with the 1-D kernel vector along image rows. This
is designed to be as efficient as possible.
*/
void horizontal_convolution(float *u, float *v, int width, int height, float *kernel, int ksize, int boundary)
{
int halfsize = ksize / 2;
int buffersize = width + ksize;
float *buffer = new float[buffersize];
for (int r = 0; r < height; r++) {
/// symmetry
int l = r*width;
if (boundary == 1)
for (int i = 0; i < halfsize; i++)
buffer[i] = u[l + halfsize - 1 - i ];
else
for (int i = 0; i < halfsize; i++)
buffer[i] = 0.0;
for (int i = 0; i < width; i++)
buffer[halfsize + i] = u[l + i];
if (boundary == 1)
for (int i = 0; i < halfsize; i++)
buffer[i + width + halfsize] = u[l + width - 1 - i];
else
for (int i = 0; i < halfsize; i++)
buffer[i + width + halfsize] = 0.0;
buffer_convolution(buffer, kernel, width, ksize);
for (int c = 0; c < width; c++)
v[r*width+c] = buffer[c];
}
delete[] buffer; /*memcheck*/
}
void vertical_convolution(float *u, float *v, int width, int height, float *kernel,int ksize, int boundary)
{
int halfsize = ksize / 2;
int buffersize = height + ksize;
float *buffer = new float[buffersize];
for (int c = 0; c < width; c++) {
if (boundary == 1)
for (int i = 0; i < halfsize; i++)
buffer[i] = u[(halfsize-i-1)*width + c];
else
for (int i = 0; i < halfsize; i++)
buffer[i] = 0.0f;
for (int i = 0; i < height; i++)
buffer[halfsize + i] = u[i*width + c];
if (boundary == 1)
for (int i = 0; i < halfsize; i++)
buffer[halfsize + height + i] = u[(height - i - 1)*width+c];
else
for (int i = 0; i < halfsize; i++)
buffer[halfsize + height + i] = 0.0f;
buffer_convolution(buffer, kernel, height, ksize);
for (int r = 0; r < height; r++)
v[r*width+c] = buffer[r];
}
delete[] buffer; /*memcheck*/
}
void heat(float *input, float *out, float step, int niter, float sigma, int width, int height)
{
int i,j,n,ksize,size,im,i1,j1,jm;
float *kernel = NULL, *laplacian = NULL, *convolved = NULL;
size = width*height;
if (sigma > 0.0) kernel = gauss(0,sigma,&ksize);
laplacian = (float *) malloc(size*sizeof(float));
convolved = (float *) malloc(size*sizeof(float));
for(n=0; n < niter; n++)
{
if (sigma > 0.0)
{
separable_convolution(input,convolved,width,height, kernel, ksize,kernel,ksize,1);
for(i=0; i< size; i++) laplacian[i] = convolved[i] - input[i];
} else
{
for (i=0; i < width;i++)
for (j=0; j< height ;j++)
{
if (j==0) jm=1; else jm=j-1;
if (j==height-1) j1=height-2; else j1=j+1;
if (i==0) im=1; else im=i-1;
if (i==width-1) i1=width-2; else i1=i+1;
laplacian[j*width + i] = - 4.0 * input[width*j+i] + input[width*j+im]+ input[width*j+i1]+input[width*jm + i] + input[width*j1 + i];
}
}
for(i=0; i < size; i++) out[i] = input[i] + step * laplacian[i];
copy(out,input,size);
}
free(laplacian);
free(convolved);
if (kernel) free(kernel);
}

View file

@ -0,0 +1,38 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
#ifndef _FILTER_H_
#define _FILTER_H_
#include "library.h"
float * directional_gauss_filter(float xsigma, float ysigma, float angle, int *kwidth, int *kheight);
void median(float *u,float *v, float radius, int niter, int width,int height);
void remove_outliers(float *igray,float *ogray,int width, int height);
/// Convolution with a separable kernel, boundary condition: 0=zero, 1=symmetry
void separable_convolution(float *u, float *v, int width, int height, float *xkernel, int xsize, float *ykernel, int ysize,int boundary);
void buffer_convolution(float *buffer,float *kernel,int size,int ksize);
void horizontal_convolution(float *u, float *v, int width, int height, float *kernel, int ksize, int boundary);
void vertical_convolution(float *u, float *v, int width, int height, float *kernel,int ksize, int boundary);
void fast_separable_convolution(float *u, float *v, int width, int height,float * xkernel, int xsize,float *ykernel,int ysize,int boundary);
/// Can be called with u=v
void gaussian_convolution(float *u, float *v, int width, int height, float sigma);
void gaussian_convolution(float *u, float *v, int width, int height, float sigma, int ksize);
void convol(float *u, float *v, int width, int height, float *kernel, int kwidth, int kheight); /// Convolution with a kernel, No padding applied to the image
void heat(float *u, float *v, float step, int niter, float sigma, int width, int height);
#endif // _FILTER_H_

Binary file not shown.

View file

@ -0,0 +1,86 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
#include "flimage.h"
//////////////////////////////////////////////// Class flimage
//// Construction
flimage::flimage() : width(0), height(0), p(0)
{
}
flimage::flimage(int w, int h) : width(w), height(h), p(new float[w*h])
{
for (int j=width*height-1; j>=0 ; j--) p[j] = 0.0;
}
flimage::flimage(int w, int h, float v) : width(w), height(h), p(new float[w*h])
{
for (int j=width*height-1; j>=0 ; j--) p[j] = v;
}
flimage::flimage(int w, int h, float* v) : width(w), height(h), p(new float[w*h])
{
for (int j=width*height-1; j>=0 ; j--) p[j] = v[j];
}
void flimage::create(int w, int h)
{
erase();
width = w; height = h;
p = new float[w*h];
for (int j=width*height-1; j>=0 ; j--) p[j] = 0.0;
}
void flimage::create(int w, int h, float* v)
{
erase();
width = w; height = h; p = new float[w*h];
for (int j=width*height-1; j>=0 ; j--) p[j] = v[j];
}
flimage::flimage(const flimage& im) : width(im.width), height(im.height), p(new float[im.width*im.height])
{
for (int j=width*height-1; j>=0 ; j--) p[j] = im.p[j];
}
flimage& flimage::operator= (const flimage& im)
{
if (&im == this) {
return *this;
}
if (width != im.width || height != im.height)
{
erase();
width = im.width; height=im.height; p = new float[width*height];
}
for (int j=width*height-1; j>=0 ; j--) p[j] = im.p[j];
return *this;
}
//// Destruction
void flimage::erase()
{
width = height = 0;
if (p) delete[] p;
p=0;
}
flimage::~flimage()
{
erase();
}

View file

@ -0,0 +1,53 @@
// Authors: Unknown. Please, if you are the author of this file, or if you
// know who are the authors of this file, let us know, so we can give the
// adequate credits and/or get the adequate authorizations.
#ifndef _FLIMAGE_H_
#define _FLIMAGE_H_
#include <iostream>
#include <string>
class flimage {
private:
int width, height; // image size
float* p; // array of color levels: level of pixel (x,y) is p[y*width+x]
public:
//// Construction
flimage();
flimage(int w, int h);
flimage(int w, int h, float v);
flimage(int w, int h, float* v);
flimage(const flimage& im);
flimage& operator= (const flimage& im);
void create(int w, int h);
void create(int w, int h, float *v);
//// Destruction
void erase();
~flimage();
//// Get Basic Data
int nwidth() const {return width;} // image size
int nheight() const {return height;}
/// Access values
float* getPlane() {return p;} // return the adress of the array of values
float operator()(int x, int y) const {return p[ y*width + x ];} // acces to the (x,y) value
float& operator()(int x, int y) {return p[ y*width + x ];} // by value (for const images) and by reference
};
#endif

Binary file not shown.

View file

@ -0,0 +1,186 @@
// Copyright (c) 2007 Lionel Moisan <Lionel.Moisan@parisdescartes.fr>
#include <stdio.h>
#include <math.h>
#include "splines.h"
#include "fproj.h"
/*------------------------ MAIN MODULE ---------------------------------*/
//void fproj(float *in, float *out, int nx, int ny, int *sx, int *sy, float *bg, int *o, float *p, char *i, float X1, float Y1, float X2, float Y2, float X3, float Y3, float *x4, float *y4)
void fproj(vector<float>& in, vector<float>& out, int nx, int ny, int *sx, int *sy, float *bg, int *o, float *p, char *i, float X1, float Y1, float X2, float Y2, float X3, float Y3, float *x4, float *y4)
/* Fimage in,out;
int *sx,*sy,*o;
char *i;
float *bg,*p,X1,Y1,X2,Y2,X3,Y3,*x4,*y4; */
{
/* int n1,n2,nx,ny,x,y,xi,yi,adr,dx,dy;*/
int n1,n2,x,y,xi,yi,adr,dx,dy;
float res,xx,yy,xp,yp,ux,uy,a,b,d,fx,fy,x12,x13,y12,y13;
float cx[12],cy[12],ak[13];
/* Fimage ref,coeffs; */
// float *ref, *coeffs;
vector<float> ref, coeffs;
/* CHECK ORDER */
if (*o!=0 && *o!=1 && *o!=-3 &&
*o!=3 && *o!=5 && *o!=7 && *o!=9 && *o!=11)
/* mwerror(FATAL,1,"unrecognized interpolation order.\n"); */
{
printf("unrecognized interpolation order.\n");
exit(-1);
}
/* ALLOCATE NEW IMAGE */
/* nx = in->ncol; ny = in->nrow; */
/* out = mw_change_fimage(out,*sy,*sx);
if (!out) mwerror(FATAL,1,"not enough memory\n"); */
if (*o>=3) {
/* coeffs = mw_new_fimage();
finvspline(in,*o,coeffs); */
// coeffs = new float[nx*ny];
coeffs = vector<float>(nx*ny);
finvspline(in,*o,coeffs,nx,ny);
ref = coeffs;
if (*o>3) init_splinen(ak,*o);
} else {
// coeffs = NULL;
ref = in;
}
/* COMPUTE NEW BASIS */
if (i) {
x12 = (X2-X1)/(float)nx;
y12 = (Y2-Y1)/(float)nx;
x13 = (X3-X1)/(float)ny;
y13 = (Y3-Y1)/(float)ny;
} else {
x12 = (X2-X1)/(float)(*sx);
y12 = (Y2-Y1)/(float)(*sx);
x13 = (X3-X1)/(float)(*sy);
y13 = (Y3-Y1)/(float)(*sy);
}
if (y4) {
xx=((*x4-X1)*(Y3-Y1)-(*y4-Y1)*(X3-X1))/((X2-X1)*(Y3-Y1)-(Y2-Y1)*(X3-X1));
yy=((*x4-X1)*(Y2-Y1)-(*y4-Y1)*(X2-X1))/((X3-X1)*(Y2-Y1)-(Y3-Y1)*(X2-X1));
a = (yy-1.0)/(1.0-xx-yy);
b = (xx-1.0)/(1.0-xx-yy);
}
else
{
a=b=0.0;
}
/********** MAIN LOOP **********/
for (x=0;x<*sx;x++)
for (y=0;y<*sy;y++) {
/* COMPUTE LOCATION IN INPUT IMAGE */
if (i) {
xx = 0.5+(((float)x-X1)*y13-((float)y-Y1)*x13)/(x12*y13-y12*x13);
yy = 0.5-(((float)x-X1)*y12-((float)y-Y1)*x12)/(x12*y13-y12*x13);
d = 1.0-(a/(a+1.0))*xx/(float)nx-(b/(b+1.0))*yy/(float)ny;
xp = xx/((a+1.0)*d);
yp = yy/((b+1.0)*d);
} else {
fx = (float)x + 0.5;
fy = (float)y + 0.5;
d = a*fx/(float)(*sx)+b*fy/(float)(*sy)+1.0;
xx = (a+1.0)*fx/d;
yy = (b+1.0)*fy/d;
xp = X1 + xx*x12 + yy*x13;
yp = Y1 + xx*y12 + yy*y13;
}
/* INTERPOLATION */
if (*o==0) {
/* zero order interpolation (pixel replication) */
xi = (int)floor((double)xp);
yi = (int)floor((double)yp);
/* if (xi<0 || xi>=in->ncol || yi<0 || yi>=in->nrow)*/
if (xi<0 || xi>=nx || yi<0 || yi>=ny)
res = *bg;
else
/* res = in->gray[yi*in->ncol+xi]; */
res = in[yi*nx+xi];
} else {
/* higher order interpolations */
if (xp<0. || xp>(float)nx || yp<0. || yp>(float)ny) res=*bg;
else {
xp -= 0.5; yp -= 0.5;
xi = (int)floor((double)xp);
yi = (int)floor((double)yp);
ux = xp-(float)xi;
uy = yp-(float)yi;
switch (*o)
{
case 1: /* first order interpolation (bilinear) */
n2 = 1;
cx[0]=ux; cx[1]=1.-ux;
cy[0]=uy; cy[1]=1.-uy;
break;
case -3: /* third order interpolation (bicubic Keys' function) */
n2 = 2;
keys(cx,ux,*p);
keys(cy,uy,*p);
break;
case 3: /* spline of order 3 */
n2 = 2;
spline3(cx,ux);
spline3(cy,uy);
break;
default: /* spline of order >3 */
n2 = (1+*o)/2;
splinen(cx,ux,ak,*o);
splinen(cy,uy,ak,*o);
break;
}
res = 0.; n1 = 1-n2;
/* this test saves computation time */
if (xi+n1>=0 && xi+n2<nx && yi+n1>=0 && yi+n2<ny) {
adr = yi*nx+xi;
for (dy=n1;dy<=n2;dy++)
for (dx=n1;dx<=n2;dx++)
/* res += cy[n2-dy]*cx[n2-dx]*ref->gray[adr+nx*dy+dx];*/
res += cy[n2-dy]*cx[n2-dx]*ref[adr+nx*dy+dx];
} else
for (dy=n1;dy<=n2;dy++)
for (dx=n1;dx<=n2;dx++)
/* res += cy[n2-dy]*cx[n2-dx]*v(ref,xi+dx,yi+dy,*bg); */
res += cy[n2-dy]*cx[n2-dx]*v(ref,xi+dx,yi+dy,*bg,nx,ny);
}
}
/* out->gray[y*(*sx)+x] = res; */
out[y*(*sx)+x] = res;
}
//if (coeffs)
/* mw_delete_fimage(coeffs); */
// delete[] coeffs;
}

View file

@ -0,0 +1,9 @@
// Copyright (c) 2007 Lionel Moisan <Lionel.Moisan@parisdescartes.fr>
#include "library.h"
#include <vector>
using namespace std;
//void fproj(float *in, float *out, int nx, int ny, int *sx, int *sy, float *bg, int *o, float *p, char *i, float X1, float Y1, float X2, float Y2, float X3, float Y3, float *x4, float *y4);
void fproj(vector<float>& in, vector<float>& out, int nx, int ny, int *sx, int *sy, float *bg, int *o, float *p, char *i, float X1, float Y1, float X2, float Y2, float X3, float Y3, float *x4, float *y4);

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more