|
|
|
@@ -7,11 +7,12 @@
|
|
|
|
|
// copy or use the software.
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// License Agreement
|
|
|
|
|
// License Agreement
|
|
|
|
|
// For Open Source Computer Vision Library
|
|
|
|
|
//
|
|
|
|
|
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
|
|
|
|
|
// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
|
|
|
|
|
// Copyright (C) 2013, OpenCV Foundation, all rights reserved.
|
|
|
|
|
// Third party copyrights are property of their respective owners.
|
|
|
|
|
//
|
|
|
|
|
// Redistribution and use in source and binary forms, with or without modification,
|
|
|
|
@@ -40,30 +41,22 @@
|
|
|
|
|
//
|
|
|
|
|
//M*/
|
|
|
|
|
|
|
|
|
|
/* The header is for internal use and it is likely to change.
|
|
|
|
|
It contains some macro definitions that are used in cxcore, cv, cvaux
|
|
|
|
|
and, probably, other libraries. If you need some of this functionality,
|
|
|
|
|
the safe way is to copy it into your code and rename the macros.
|
|
|
|
|
*/
|
|
|
|
|
#ifndef __OPENCV_CORE_INTERNAL_HPP__
|
|
|
|
|
#define __OPENCV_CORE_INTERNAL_HPP__
|
|
|
|
|
#ifndef __OPENCV_CORE_PRIVATE_HPP__
|
|
|
|
|
#define __OPENCV_CORE_PRIVATE_HPP__
|
|
|
|
|
|
|
|
|
|
#define __BEGIN__ __CV_BEGIN__
|
|
|
|
|
#define __END__ __CV_END__
|
|
|
|
|
#define EXIT __CV_EXIT__
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_IPP
|
|
|
|
|
# include "ipp.h"
|
|
|
|
|
|
|
|
|
|
CV_INLINE IppiSize ippiSize(int width, int height)
|
|
|
|
|
{
|
|
|
|
|
IppiSize size = { width, height };
|
|
|
|
|
return size;
|
|
|
|
|
}
|
|
|
|
|
#ifndef __OPENCV_BUILD
|
|
|
|
|
# error this is a private header which should not be used from outside of the OpenCV library
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef IPPI_CALL
|
|
|
|
|
# define IPPI_CALL(func) CV_Assert((func) >= 0)
|
|
|
|
|
#include "opencv2/core.hpp"
|
|
|
|
|
#include "cvconfig.h"
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_EIGEN
|
|
|
|
|
# if defined __GNUC__ && defined __APPLE__
|
|
|
|
|
# pragma GCC diagnostic ignored "-Wshadow"
|
|
|
|
|
# endif
|
|
|
|
|
# include <Eigen/Core>
|
|
|
|
|
# include "opencv2/core/eigen.hpp"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_TBB
|
|
|
|
@@ -78,16 +71,6 @@ CV_INLINE IppiSize ippiSize(int width, int height)
|
|
|
|
|
# endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_EIGEN
|
|
|
|
|
# if defined __GNUC__ && defined __APPLE__
|
|
|
|
|
# pragma GCC diagnostic ignored "-Wshadow"
|
|
|
|
|
# endif
|
|
|
|
|
# include <Eigen/Core>
|
|
|
|
|
# include "opencv2/core/eigen.hpp"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
|
|
|
|
namespace cv
|
|
|
|
|
{
|
|
|
|
|
#ifdef HAVE_TBB
|
|
|
|
@@ -167,33 +150,14 @@ namespace cv
|
|
|
|
|
return &classname##_info(); \
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif //__cplusplus
|
|
|
|
|
|
|
|
|
|
/* default image row align (in bytes) */
|
|
|
|
|
#define CV_DEFAULT_IMAGE_ROW_ALIGN 4
|
|
|
|
|
|
|
|
|
|
/* the alignment of all the allocated buffers */
|
|
|
|
|
#define CV_MALLOC_ALIGN 16
|
|
|
|
|
|
|
|
|
|
/* default alignment for dynamic data strucutures, resided in storages. */
|
|
|
|
|
#define CV_STRUCT_ALIGN ((int)sizeof(double))
|
|
|
|
|
|
|
|
|
|
/* default storage block size */
|
|
|
|
|
#define CV_STORAGE_BLOCK_SIZE ((1<<16) - 128)
|
|
|
|
|
|
|
|
|
|
/* default memory block for sparse array elements */
|
|
|
|
|
#define CV_SPARSE_MAT_BLOCK (1<<12)
|
|
|
|
|
|
|
|
|
|
/* initial hash table size */
|
|
|
|
|
#define CV_SPARSE_HASH_SIZE0 (1<<10)
|
|
|
|
|
|
|
|
|
|
/* maximal average node_count/hash_size ratio beyond which hash table is resized */
|
|
|
|
|
#define CV_SPARSE_HASH_RATIO 3
|
|
|
|
|
|
|
|
|
|
/****************************************************************************************\
|
|
|
|
|
* Common declarations *
|
|
|
|
|
\****************************************************************************************/
|
|
|
|
|
|
|
|
|
|
/* the alignment of all the allocated buffers */
|
|
|
|
|
#define CV_MALLOC_ALIGN 16
|
|
|
|
|
|
|
|
|
|
#ifdef __GNUC__
|
|
|
|
|
# define CV_DECL_ALIGNED(x) __attribute__ ((aligned (x)))
|
|
|
|
|
#elif defined _MSC_VER
|
|
|
|
@@ -202,48 +166,45 @@ namespace cv
|
|
|
|
|
# define CV_DECL_ALIGNED(x)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef CV_IMPL
|
|
|
|
|
# define CV_IMPL CV_EXTERN_C
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define CV_ORIGIN_TL 0
|
|
|
|
|
#define CV_ORIGIN_BL 1
|
|
|
|
|
|
|
|
|
|
/* IEEE754 constants and macros */
|
|
|
|
|
#define CV_TOGGLE_FLT(x) ((x)^((int)(x) < 0 ? 0x7fffffff : 0))
|
|
|
|
|
#define CV_TOGGLE_DBL(x) \
|
|
|
|
|
((x)^((int64)(x) < 0 ? CV_BIG_INT(0x7fffffffffffffff) : 0))
|
|
|
|
|
#define CV_TOGGLE_DBL(x) ((x)^((int64)(x) < 0 ? CV_BIG_INT(0x7fffffffffffffff) : 0))
|
|
|
|
|
|
|
|
|
|
//TODO: remove after dropping sorts
|
|
|
|
|
#define CV_LT(a, b) ((a) < (b))
|
|
|
|
|
|
|
|
|
|
CV_INLINE void* cvAlignPtr( const void* ptr, int align CV_DEFAULT(32) )
|
|
|
|
|
static inline void* cvAlignPtr( const void* ptr, int align CV_DEFAULT(32) )
|
|
|
|
|
{
|
|
|
|
|
assert( (align & (align-1)) == 0 );
|
|
|
|
|
CV_DbgAssert ( (align & (align-1)) == 0 );
|
|
|
|
|
return (void*)( ((size_t)ptr + align - 1) & ~(size_t)(align-1) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CV_INLINE int cvAlign( int size, int align )
|
|
|
|
|
static inline int cvAlign( int size, int align )
|
|
|
|
|
{
|
|
|
|
|
assert( (align & (align-1)) == 0 && size < INT_MAX );
|
|
|
|
|
CV_DbgAssert( (align & (align-1)) == 0 && size < INT_MAX );
|
|
|
|
|
return (size + align - 1) & -align;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CV_INLINE CvSize cvGetMatSize( const CvMat* mat )
|
|
|
|
|
static inline cv::Size cvGetMatSize( const CvMat* mat )
|
|
|
|
|
{
|
|
|
|
|
CvSize size;
|
|
|
|
|
size.width = mat->cols;
|
|
|
|
|
size.height = mat->rows;
|
|
|
|
|
return size;
|
|
|
|
|
return cv::Size(mat->cols, mat->rows);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define CV_DESCALE(x,n) (((x) + (1 << ((n)-1))) >> (n))
|
|
|
|
|
#define CV_FLT_TO_FIX(x,n) cvRound((x)*(1<<(n)))
|
|
|
|
|
|
|
|
|
|
/****************************************************************************************\
|
|
|
|
|
* Structures and macros for integration with IPP *
|
|
|
|
|
\****************************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_IPP
|
|
|
|
|
# include "ipp.h"
|
|
|
|
|
|
|
|
|
|
static inline IppiSize ippiSize(int width, int height)
|
|
|
|
|
{
|
|
|
|
|
IppiSize size = { width, height };
|
|
|
|
|
return size;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef IPPI_CALL
|
|
|
|
|
# define IPPI_CALL(func) CV_Assert((func) >= 0)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/* IPP-compatible return codes */
|
|
|
|
|
typedef enum CvStatus
|
|
|
|
|
{
|
|
|
|
@@ -284,4 +245,4 @@ typedef enum CvStatus
|
|
|
|
|
}
|
|
|
|
|
CvStatus;
|
|
|
|
|
|
|
|
|
|
#endif // __OPENCV_CORE_INTERNAL_HPP__
|
|
|
|
|
#endif // __OPENCV_CORE_PRIVATE_HPP__
|
|
|
|
|