added Eigen2 support; fixed compile errors on Ubuntu 10.04
This commit is contained in:
parent
7ec4b59fac
commit
60acd91ce1
@ -280,6 +280,7 @@ if(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(WITH_TBB OFF CACHE BOOL "Include TBB support")
|
set(WITH_TBB OFF CACHE BOOL "Include TBB support")
|
||||||
|
set(WITH_EIGEN2 OFF CACHE BOOL "Include Eigen2 support")
|
||||||
|
|
||||||
# ===================================================
|
# ===================================================
|
||||||
# Macros that checks if module have been installed.
|
# Macros that checks if module have been installed.
|
||||||
@ -347,7 +348,7 @@ if(UNIX)
|
|||||||
|
|
||||||
if(WITH_PVAPI)
|
if(WITH_PVAPI)
|
||||||
find_path(PVAPI_INCLUDE_PATH "PvApi.h"
|
find_path(PVAPI_INCLUDE_PATH "PvApi.h"
|
||||||
PATHS "/usr/include" "/usr/local/include"
|
PATHS "/usr/local/include" "/usr/include"
|
||||||
DOC "The path to PvAPI header")
|
DOC "The path to PvAPI header")
|
||||||
if(PVAPI_INCLUDE_PATH)
|
if(PVAPI_INCLUDE_PATH)
|
||||||
set(HAVE_PVAPI 1)
|
set(HAVE_PVAPI 1)
|
||||||
@ -557,8 +558,8 @@ if (WITH_TBB)
|
|||||||
endif()
|
endif()
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(TBB_DEFAULT_INCLUDE_DIRS
|
set(TBB_DEFAULT_INCLUDE_DIRS
|
||||||
"/usr/include"
|
"/usr/local/include"
|
||||||
"/usr/local/include")
|
"/usr/include")
|
||||||
endif()
|
endif()
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(TBB_DEFAULT_INCLUDE_DIRS
|
set(TBB_DEFAULT_INCLUDE_DIRS
|
||||||
@ -624,6 +625,19 @@ if (WITH_TBB)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
############################## Eigen2 ##############################
|
||||||
|
|
||||||
|
if(WITH_EIGEN2)
|
||||||
|
find_path(EIGEN2_INCLUDE_PATH "Eigen/Core"
|
||||||
|
PATHS "/usr/local/include/eigen2" "/opt/include/eigen2" "/usr/include/eigen2"
|
||||||
|
DOC "The path to Eigen2 headers")
|
||||||
|
if(EIGEN2_INCLUDE_PATH)
|
||||||
|
include_directories(${EIGEN2_INCLUDE_PATH})
|
||||||
|
set(HAVE_EIGEN2 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
############################### IPP ################################
|
############################### IPP ################################
|
||||||
set(IPP_FOUND)
|
set(IPP_FOUND)
|
||||||
set(OPENCV_LOADER_PATH)
|
set(OPENCV_LOADER_PATH)
|
||||||
@ -1251,6 +1265,12 @@ else()
|
|||||||
message(STATUS " Use TBB: NO")
|
message(STATUS " Use TBB: NO")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(HAVE_EIGEN2)
|
||||||
|
message(STATUS " Use Eigen2: YES")
|
||||||
|
else()
|
||||||
|
message(STATUS " Use Eigen2: NO")
|
||||||
|
endif()
|
||||||
|
|
||||||
message(STATUS "")
|
message(STATUS "")
|
||||||
message(STATUS " Documentation: ")
|
message(STATUS " Documentation: ")
|
||||||
|
|
||||||
|
@ -155,4 +155,7 @@
|
|||||||
#cmakedefine WORDS_BIGENDIAN
|
#cmakedefine WORDS_BIGENDIAN
|
||||||
|
|
||||||
/* Intel Threading Building Blocks */
|
/* Intel Threading Building Blocks */
|
||||||
#cmakedefine HAVE_TBB
|
#cmakedefine HAVE_TBB
|
||||||
|
|
||||||
|
/* Eigen2 Matrix & Linear Algebra Library */
|
||||||
|
#cmakedefine HAVE_EIGEN2
|
||||||
|
@ -566,7 +566,7 @@ public:
|
|||||||
static Matx eye();
|
static Matx eye();
|
||||||
static Matx diag(const Vec<_Tp, MIN(m,n)>& d);
|
static Matx diag(const Vec<_Tp, MIN(m,n)>& d);
|
||||||
static Matx randu(_Tp a, _Tp b);
|
static Matx randu(_Tp a, _Tp b);
|
||||||
static Matx randn(_Tp m, _Tp sigma);
|
static Matx randn(_Tp a, _Tp b);
|
||||||
|
|
||||||
//! convertion to another data type
|
//! convertion to another data type
|
||||||
template<typename T2> operator Matx<T2, m, n>() const;
|
template<typename T2> operator Matx<T2, m, n>() const;
|
||||||
@ -575,7 +575,7 @@ public:
|
|||||||
template<int m1, int n1> Matx<_Tp, m1, n1> reshape() const;
|
template<int m1, int n1> Matx<_Tp, m1, n1> reshape() const;
|
||||||
|
|
||||||
//! extract part of the matrix
|
//! extract part of the matrix
|
||||||
template<int m1, int n1> Matx<_Tp, m1, n1> minor(int i, int j) const;
|
template<int m1, int n1> Matx<_Tp, m1, n1> get_minor(int i, int j) const;
|
||||||
|
|
||||||
//! extract the matrix row
|
//! extract the matrix row
|
||||||
Matx<_Tp, 1, n> row(int i) const;
|
Matx<_Tp, 1, n> row(int i) const;
|
||||||
|
@ -134,6 +134,10 @@ CV_INLINE IppiSize ippiSize(int width, int height)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_EIGEN2
|
||||||
|
#include "opencv2/core/eigen.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
#ifdef HAVE_TBB
|
#ifdef HAVE_TBB
|
||||||
|
@ -734,7 +734,7 @@ Matx<_Tp, m1, n1> Matx<_Tp, m, n>::reshape() const
|
|||||||
|
|
||||||
template<typename _Tp, int m, int n>
|
template<typename _Tp, int m, int n>
|
||||||
template<int m1, int n1> inline
|
template<int m1, int n1> inline
|
||||||
Matx<_Tp, m1, n1> Matx<_Tp, m, n>::minor(int i, int j) const
|
Matx<_Tp, m1, n1> Matx<_Tp, m, n>::get_minor(int i, int j) const
|
||||||
{
|
{
|
||||||
CV_DbgAssert(0 <= i && i+m1 <= m && 0 <= j && j+n1 <= n);
|
CV_DbgAssert(0 <= i && i+m1 <= m && 0 <= j && j+n1 <= n);
|
||||||
Matx<_Tp, m1, n1> s;
|
Matx<_Tp, m1, n1> s;
|
||||||
|
Loading…
Reference in New Issue
Block a user