From 33493f4e19151ed850b2445649d459a95907edb9 Mon Sep 17 00:00:00 2001 From: Maria Dimashova Date: Fri, 27 May 2011 12:15:36 +0000 Subject: [PATCH] renamed WITH(HAVE)_EIGEN2 to WITH(HAVE)_EIGEN, fixed compilation error if eigen3 is used (#805) --- CMakeLists.txt | 20 ++++++++++---------- cvconfig.h.cmake | 4 ++-- modules/core/include/opencv2/core/internal.hpp | 2 +- modules/features2d/src/matchers.cpp | 15 ++++++++++++--- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc9acd2..022a4e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -307,7 +307,7 @@ endif() set(WITH_TBB OFF CACHE BOOL "Include Intel TBB support") set(WITH_IPP OFF CACHE BOOL "Include Intel IPP support") -set(WITH_EIGEN2 ON CACHE BOOL "Include Eigen2/Eigen3 support") +set(WITH_EIGEN ON CACHE BOOL "Include Eigen2/Eigen3 support") set(WITH_CUDA OFF CACHE BOOL "Include NVidia Cuda Runtime support") if(WIN32) @@ -786,16 +786,16 @@ if(WITH_OPENNI) include(OpenCVFindOpenNI.cmake) endif() -############################## Eigen2 ############################## +############################## Eigen ############################## -if(WITH_EIGEN2) - find_path(EIGEN2_INCLUDE_PATH "Eigen/Core" +if(WITH_EIGEN) + find_path(EIGEN_INCLUDE_PATH "Eigen/Core" PATHS "/usr/local/include/eigen2" "/opt/include/eigen2" "/usr/include/eigen2" "/usr/local/include/eigen3" "/opt/include/eigen3" "/usr/include/eigen3" DOC "The path to Eigen2/Eigen3 headers") - if(EIGEN2_INCLUDE_PATH) - include_directories(${EIGEN2_INCLUDE_PATH}) - set(HAVE_EIGEN2 1) + if(EIGEN_INCLUDE_PATH) + include_directories(${EIGEN_INCLUDE_PATH}) + set(HAVE_EIGEN 1) endif() endif() @@ -1481,10 +1481,10 @@ else() message(STATUS " Use Cuda: NO") endif() -if(HAVE_EIGEN2) -message(STATUS " Use Eigen2: YES") +if(HAVE_EIGEN) +message(STATUS " Use Eigen: YES") else() -message(STATUS " Use Eigen2: NO") +message(STATUS " Use Eigen: NO") endif() message(STATUS "") diff --git a/cvconfig.h.cmake b/cvconfig.h.cmake index 138defa..38cbe30 100644 --- a/cvconfig.h.cmake +++ b/cvconfig.h.cmake @@ -163,8 +163,8 @@ /* Threading Framework --- temporary decision for ARM instead of Intel TBB */ #cmakedefine HAVE_THREADING_FRAMEWORK -/* Eigen2 Matrix & Linear Algebra Library */ -#cmakedefine HAVE_EIGEN2 +/* Eigen Matrix & Linear Algebra Library */ +#cmakedefine HAVE_EIGEN /* NVidia Cuda Runtime API*/ #cmakedefine HAVE_CUDA diff --git a/modules/core/include/opencv2/core/internal.hpp b/modules/core/include/opencv2/core/internal.hpp index 5fabd24..9826bf7 100644 --- a/modules/core/include/opencv2/core/internal.hpp +++ b/modules/core/include/opencv2/core/internal.hpp @@ -147,7 +147,7 @@ CV_INLINE IppiSize ippiSize(int width, int height) #endif #endif -#ifdef HAVE_EIGEN2 +#ifdef HAVE_EIGEN #include #include "opencv2/core/eigen.hpp" #endif diff --git a/modules/features2d/src/matchers.cpp b/modules/features2d/src/matchers.cpp index 6a4cafd..c977ebb 100755 --- a/modules/features2d/src/matchers.cpp +++ b/modules/features2d/src/matchers.cpp @@ -41,7 +41,7 @@ #include "precomp.hpp" -#ifdef HAVE_EIGEN2 +#if defined(HAVE_EIGEN) && EIGEN_WORLD_VERSION == 2 #include #endif @@ -351,9 +351,18 @@ template<> void BruteForceMatcher >::knnMatchImpl( const Mat& queryDescriptors, vector >& matches, int knn, const vector& masks, bool compactResult ) { -#ifndef HAVE_EIGEN2 +#ifndef HAVE_EIGEN commonKnnMatchImpl( *this, queryDescriptors, matches, knn, masks, compactResult ); #else + +#if EIGEN_WORLD_VERSION == 2 + printf("EIGEN VERSION = 2 "); +#endif + +#if EIGEN_WORLD_VERSION == 3 + printf("EIGEN VERSION = 3 "); +#endif + CV_Assert( queryDescriptors.type() == CV_32FC1 || queryDescriptors.empty() ); CV_Assert( masks.empty() || masks.size() == trainDescCollection.size() ); @@ -439,7 +448,7 @@ template<> void BruteForceMatcher >::radiusMatchImpl( const Mat& queryDescriptors, vector >& matches, float maxDistance, const vector& masks, bool compactResult ) { -#ifndef HAVE_EIGEN2 +#ifndef HAVE_EIGEN commonRadiusMatchImpl( *this, queryDescriptors, matches, maxDistance, masks, compactResult ); #else CV_Assert( queryDescriptors.type() == CV_32FC1 || queryDescriptors.empty() ); -- 2.7.4