接口 核心功能 » 硬件加速层


模块

  Element-wise add and subtract
 
  Element-wise minimum or maximum
 
  Element-wise absolute difference
 
  Bitwise logical operations
 
  Element-wise compare
 
  Element-wise multiply
 
  Element-wise divide
 
  Element-wise reciprocial
 
  Element-wise weighted sum
 
  Channel split
 
  Channel merge
 
  Atan calculation
 
  Magnitude calculation
 
  Inverse square root calculation
 
  Square root calculation
 
  Natural logarithm calculation
 
  Exponent calculation
 
  LU matrix decomposition
 
  Cholesky matrix decomposition
 
  Singular value matrix decomposition
 
  QR matrix decomposition
 
  Matrix multiplication
 

struct   cvhalDFT
  Dummy structure storing DFT/DCT context. 更多...
 

函数

int  hal_ni_dct2D ( cvhalDFT *context, const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step)
 
int  hal_ni_dctFree2D ( cvhalDFT *context)
 
int  hal_ni_dctInit2D ( cvhalDFT **context, int width, int height, int depth, int flags)
 
int  hal_ni_dft1D ( cvhalDFT *context, const uchar *src, uchar *dst)
 
int  hal_ni_dft2D ( cvhalDFT *context, const uchar *src_data, size_t src_step, uchar *dst_data, size_t dst_step)
 
int  hal_ni_dftFree1D ( cvhalDFT *context)
 
int  hal_ni_dftFree2D ( cvhalDFT *context)
 
int  hal_ni_dftInit1D ( cvhalDFT **context, int len, int count, int depth, int flags, bool *needBuffer)
 
int  hal_ni_dftInit2D ( cvhalDFT **context, int width, int height, int depth, int src_channels, int dst_channels, int flags, int nonzero_rows)
 
int  hal_ni_minMaxIdx (const uchar *src_data, size_t src_step, int width, int height, int depth, double *minVal, double *maxVal, int *minIdx, int *maxIdx, uchar *mask)
  Finds the global minimum and maximum in an array. 更多...
 

Return codes

#define  CV_HAL_ERROR_OK    0
 
#define  CV_HAL_ERROR_NOT_IMPLEMENTED    1
 
#define  CV_HAL_ERROR_UNKNOWN    -1
 

Data types

原语类型

  • schar - signed 1 byte integer
  • uchar - unsigned 1 byte integer
  • short - signed 2 byte integer
  • ushort - unsigned 2 byte integer
  • int - signed 4 byte integer
  • uint - unsigned 4 byte integer
  • int64 - signed 8 byte integer
  • uint64 - unsigned 8 byte integer
typedef uint32_t  uint
 
typedef signed char  schar
 
typedef unsigned char  uchar
 
typedef unsigned short  ushort
 
typedef int64_t  int64
 
typedef uint64_t  uint64
 
#define  CV_BIG_INT (n)   n##LL
 
#define  CV_BIG_UINT (n)   n##ULL
 
#define  CV_USRTYPE1    (void)"CV_USRTYPE1 support has been dropped in OpenCV 4.0"
 
#define  CV_CN_MAX    512
 
#define  CV_CN_SHIFT    3
 
#define  CV_DEPTH_MAX    (1 << CV_CN_SHIFT )
 
#define  CV_8U    0
 
#define  CV_8S    1
 
#define  CV_16U    2
 
#define  CV_16S    3
 
#define  CV_32S    4
 
#define  CV_32F    5
 
#define  CV_64F    6
 
#define  CV_16F    7
 
#define  CV_MAT_DEPTH_MASK    ( CV_DEPTH_MAX - 1)
 
#define  CV_MAT_DEPTH (flags)   ((flags) & CV_MAT_DEPTH_MASK )
 
#define  CV_MAKETYPE (depth, cn)   ( CV_MAT_DEPTH (depth) + (((cn)-1) << CV_CN_SHIFT ))
 
#define  CV_MAKE_TYPE     CV_MAKETYPE
 
#define  CV_8UC1     CV_MAKETYPE ( CV_8U ,1)
 
#define  CV_8UC2     CV_MAKETYPE ( CV_8U ,2)
 
#define  CV_8UC3     CV_MAKETYPE ( CV_8U ,3)
 
#define  CV_8UC4     CV_MAKETYPE ( CV_8U ,4)
 
#define  CV_8UC (n)    CV_MAKETYPE ( CV_8U ,(n))
 
#define  CV_8SC1     CV_MAKETYPE ( CV_8S ,1)
 
#define  CV_8SC2     CV_MAKETYPE ( CV_8S ,2)
 
#define  CV_8SC3     CV_MAKETYPE ( CV_8S ,3)
 
#define  CV_8SC4     CV_MAKETYPE ( CV_8S ,4)
 
#define  CV_8SC (n)    CV_MAKETYPE ( CV_8S ,(n))
 
#define  CV_16UC1     CV_MAKETYPE ( CV_16U ,1)
 
#define  CV_16UC2     CV_MAKETYPE ( CV_16U ,2)
 
#define  CV_16UC3     CV_MAKETYPE ( CV_16U ,3)
 
#define  CV_16UC4     CV_MAKETYPE ( CV_16U ,4)
 
#define  CV_16UC (n)    CV_MAKETYPE ( CV_16U ,(n))
 
#define  CV_16SC1     CV_MAKETYPE ( CV_16S ,1)
 
#define  CV_16SC2     CV_MAKETYPE ( CV_16S ,2)
 
#define  CV_16SC3     CV_MAKETYPE ( CV_16S ,3)
 
#define  CV_16SC4     CV_MAKETYPE ( CV_16S ,4)
 
#define  CV_16SC (n)    CV_MAKETYPE ( CV_16S ,(n))
 
#define  CV_32SC1     CV_MAKETYPE ( CV_32S ,1)
 
#define  CV_32SC2     CV_MAKETYPE ( CV_32S ,2)
 
#define  CV_32SC3     CV_MAKETYPE ( CV_32S ,3)
 
#define  CV_32SC4     CV_MAKETYPE ( CV_32S ,4)
 
#define  CV_32SC (n)    CV_MAKETYPE ( CV_32S ,(n))
 
#define  CV_32FC1     CV_MAKETYPE ( CV_32F ,1)
 
#define  CV_32FC2     CV_MAKETYPE ( CV_32F ,2)
 
#define  CV_32FC3     CV_MAKETYPE ( CV_32F ,3)
 
#define  CV_32FC4     CV_MAKETYPE ( CV_32F ,4)
 
#define  CV_32FC (n)    CV_MAKETYPE ( CV_32F ,(n))
 
#define  CV_64FC1     CV_MAKETYPE ( CV_64F ,1)
 
#define  CV_64FC2     CV_MAKETYPE ( CV_64F ,2)
 
#define  CV_64FC3     CV_MAKETYPE ( CV_64F ,3)
 
#define  CV_64FC4     CV_MAKETYPE ( CV_64F ,4)
 
#define  CV_64FC (n)    CV_MAKETYPE ( CV_64F ,(n))
 
#define  CV_16FC1     CV_MAKETYPE ( CV_16F ,1)
 
#define  CV_16FC2     CV_MAKETYPE ( CV_16F ,2)
 
#define  CV_16FC3     CV_MAKETYPE ( CV_16F ,3)
 
#define  CV_16FC4     CV_MAKETYPE ( CV_16F ,4)
 
#define  CV_16FC (n)    CV_MAKETYPE ( CV_16F ,(n))
 

Comparison operation

另请参阅
cv::CmpTypes
#define  CV_HAL_CMP_EQ    0
 
#define  CV_HAL_CMP_GT    1
 
#define  CV_HAL_CMP_GE    2
 
#define  CV_HAL_CMP_LT    3
 
#define  CV_HAL_CMP_LE    4
 
#define  CV_HAL_CMP_NE    5
 

Border processing modes

另请参阅
cv::BorderTypes
#define  CV_HAL_BORDER_CONSTANT    0
 
#define  CV_HAL_BORDER_REPLICATE    1
 
#define  CV_HAL_BORDER_REFLECT    2
 
#define  CV_HAL_BORDER_WRAP    3
 
#define  CV_HAL_BORDER_REFLECT_101    4
 
#define  CV_HAL_BORDER_TRANSPARENT    5
 
#define  CV_HAL_BORDER_ISOLATED    16
 

DFT flags

#define  CV_HAL_DFT_INVERSE    1
 
#define  CV_HAL_DFT_SCALE    2
 
#define  CV_HAL_DFT_ROWS    4
 
#define  CV_HAL_DFT_COMPLEX_OUTPUT    16
 
#define  CV_HAL_DFT_REAL_OUTPUT    32
 
#define  CV_HAL_DFT_TWO_STAGE    64
 
#define  CV_HAL_DFT_STAGE_COLS    128
 
#define  CV_HAL_DFT_IS_CONTINUOUS    512
 
#define  CV_HAL_DFT_IS_INPLACE    1024
 

SVD flags

#define  CV_HAL_SVD_NO_UV    1
 
#define  CV_HAL_SVD_SHORT_UV    2
 
#define  CV_HAL_SVD_MODIFY_A    4
 
#define  CV_HAL_SVD_FULL_UV    8
 

Gemm flags

#define  CV_HAL_GEMM_1_T    1
 
#define  CV_HAL_GEMM_2_T    2
 
#define  CV_HAL_GEMM_3_T    4
 

详细描述

注意
Define your functions to override default implementations:
#undef hal_add8u
#define hal_add8u my_add8u

宏定义文档编制

◆  CV_16F

#define CV_16F   7

◆  CV_16FC

#define CV_16FC (   n )     CV_MAKETYPE ( CV_16F ,(n))

◆  CV_16FC1

#define CV_16FC1    CV_MAKETYPE ( CV_16F ,1)

◆  CV_16FC2

#define CV_16FC2    CV_MAKETYPE ( CV_16F ,2)

◆  CV_16FC3

#define CV_16FC3    CV_MAKETYPE ( CV_16F ,3)

◆  CV_16FC4

#define CV_16FC4    CV_MAKETYPE ( CV_16F ,4)

◆  CV_16S

◆  CV_16SC

#define CV_16SC (   n )     CV_MAKETYPE ( CV_16S ,(n))

◆  CV_16SC1

#define CV_16SC1    CV_MAKETYPE ( CV_16S ,1)

◆  CV_16SC2

#define CV_16SC2    CV_MAKETYPE ( CV_16S ,2)

◆  CV_16SC3

#define CV_16SC3    CV_MAKETYPE ( CV_16S ,3)

◆  CV_16SC4

#define CV_16SC4    CV_MAKETYPE ( CV_16S ,4)

◆  CV_16U

#define CV_16U   2

◆  CV_16UC

#define CV_16UC (   n )     CV_MAKETYPE ( CV_16U ,(n))

◆  CV_16UC1

#define CV_16UC1    CV_MAKETYPE ( CV_16U ,1)

◆  CV_16UC2

#define CV_16UC2    CV_MAKETYPE ( CV_16U ,2)

◆  CV_16UC3

#define CV_16UC3    CV_MAKETYPE ( CV_16U ,3)

◆  CV_16UC4

#define CV_16UC4    CV_MAKETYPE ( CV_16U ,4)

◆  CV_32F

◆  CV_32FC

#define CV_32FC (   n )     CV_MAKETYPE ( CV_32F ,(n))

◆  CV_32FC1

◆  CV_32FC2

#define CV_32FC2    CV_MAKETYPE ( CV_32F ,2)

◆  CV_32FC3

#define CV_32FC3    CV_MAKETYPE ( CV_32F ,3)

◆  CV_32FC4

#define CV_32FC4    CV_MAKETYPE ( CV_32F ,4)

◆  CV_32S

◆  CV_32SC

#define CV_32SC (   n )     CV_MAKETYPE ( CV_32S ,(n))

◆  CV_32SC1

#define CV_32SC1    CV_MAKETYPE ( CV_32S ,1)

◆  CV_32SC2

#define CV_32SC2    CV_MAKETYPE ( CV_32S ,2)

◆  CV_32SC3

#define CV_32SC3    CV_MAKETYPE ( CV_32S ,3)

◆  CV_32SC4

#define CV_32SC4    CV_MAKETYPE ( CV_32S ,4)

◆  CV_64F

◆  CV_64FC

#define CV_64FC (   n )     CV_MAKETYPE ( CV_64F ,(n))

◆  CV_64FC1

#define CV_64FC1    CV_MAKETYPE ( CV_64F ,1)

◆  CV_64FC2

#define CV_64FC2    CV_MAKETYPE ( CV_64F ,2)

◆  CV_64FC3

#define CV_64FC3    CV_MAKETYPE ( CV_64F ,3)

◆  CV_64FC4

#define CV_64FC4    CV_MAKETYPE ( CV_64F ,4)

◆  CV_8S

#define CV_8S   1

◆  CV_8SC

#define CV_8SC (   n )     CV_MAKETYPE ( CV_8S ,(n))

◆  CV_8SC1

#define CV_8SC1    CV_MAKETYPE ( CV_8S ,1)

◆  CV_8SC2

#define CV_8SC2    CV_MAKETYPE ( CV_8S ,2)

◆  CV_8SC3

#define CV_8SC3    CV_MAKETYPE ( CV_8S ,3)

◆  CV_8SC4

#define CV_8SC4    CV_MAKETYPE ( CV_8S ,4)

◆  CV_8U

◆  CV_8UC

#define CV_8UC (   n )     CV_MAKETYPE ( CV_8U ,(n))

◆  CV_8UC1

◆  CV_8UC2

#define CV_8UC2    CV_MAKETYPE ( CV_8U ,2)

◆  CV_8UC3

◆  CV_8UC4

#define CV_8UC4    CV_MAKETYPE ( CV_8U ,4)

◆  CV_BIG_INT

#define CV_BIG_INT (   n )    n##LL

◆  CV_BIG_UINT

#define CV_BIG_UINT (   n )    n##ULL

◆  CV_CN_MAX

#define CV_CN_MAX   512

◆  CV_CN_SHIFT

#define CV_CN_SHIFT   3

◆  CV_DEPTH_MAX

#define CV_DEPTH_MAX   (1 << CV_CN_SHIFT )

◆  CV_HAL_BORDER_CONSTANT

#define CV_HAL_BORDER_CONSTANT   0

◆  CV_HAL_BORDER_ISOLATED

#define CV_HAL_BORDER_ISOLATED   16

◆  CV_HAL_BORDER_REFLECT

#define CV_HAL_BORDER_REFLECT   2

◆  CV_HAL_BORDER_REFLECT_101

#define CV_HAL_BORDER_REFLECT_101   4

◆  CV_HAL_BORDER_REPLICATE

#define CV_HAL_BORDER_REPLICATE   1

◆  CV_HAL_BORDER_TRANSPARENT

#define CV_HAL_BORDER_TRANSPARENT   5

◆  CV_HAL_BORDER_WRAP

#define CV_HAL_BORDER_WRAP   3

◆  CV_HAL_CMP_EQ

#define CV_HAL_CMP_EQ   0

◆  CV_HAL_CMP_GE

#define CV_HAL_CMP_GE   2

◆  CV_HAL_CMP_GT

#define CV_HAL_CMP_GT   1

◆  CV_HAL_CMP_LE

#define CV_HAL_CMP_LE   4

◆  CV_HAL_CMP_LT

#define CV_HAL_CMP_LT   3

◆  CV_HAL_CMP_NE

#define CV_HAL_CMP_NE   5

◆  CV_HAL_DFT_COMPLEX_OUTPUT

#define CV_HAL_DFT_COMPLEX_OUTPUT   16

◆  CV_HAL_DFT_INVERSE

#define CV_HAL_DFT_INVERSE   1

◆  CV_HAL_DFT_IS_CONTINUOUS

#define CV_HAL_DFT_IS_CONTINUOUS   512

◆  CV_HAL_DFT_IS_INPLACE

#define CV_HAL_DFT_IS_INPLACE   1024

◆  CV_HAL_DFT_REAL_OUTPUT

#define CV_HAL_DFT_REAL_OUTPUT   32

◆  CV_HAL_DFT_ROWS

#define CV_HAL_DFT_ROWS   4

◆  CV_HAL_DFT_SCALE

#define CV_HAL_DFT_SCALE   2

◆  CV_HAL_DFT_STAGE_COLS

#define CV_HAL_DFT_STAGE_COLS   128

◆  CV_HAL_DFT_TWO_STAGE

#define CV_HAL_DFT_TWO_STAGE   64

◆  CV_HAL_ERROR_NOT_IMPLEMENTED

#define CV_HAL_ERROR_NOT_IMPLEMENTED   1

◆  CV_HAL_ERROR_OK

#define CV_HAL_ERROR_OK   0

◆  CV_HAL_ERROR_UNKNOWN

#define CV_HAL_ERROR_UNKNOWN   -1

◆  CV_HAL_GEMM_1_T

#define CV_HAL_GEMM_1_T   1

◆  CV_HAL_GEMM_2_T

#define CV_HAL_GEMM_2_T   2

◆  CV_HAL_GEMM_3_T

#define CV_HAL_GEMM_3_T   4

◆  CV_HAL_SVD_FULL_UV

#define CV_HAL_SVD_FULL_UV   8

◆  CV_HAL_SVD_MODIFY_A

#define CV_HAL_SVD_MODIFY_A   4

◆  CV_HAL_SVD_NO_UV

#define CV_HAL_SVD_NO_UV   1

◆  CV_HAL_SVD_SHORT_UV

#define CV_HAL_SVD_SHORT_UV   2

◆  CV_MAKE_TYPE

#define CV_MAKE_TYPE    CV_MAKETYPE

◆  CV_MAKETYPE

#define CV_MAKETYPE (   depth,
  cn 
)    ( CV_MAT_DEPTH (depth) + (((cn)-1) << CV_CN_SHIFT ))

◆  CV_MAT_DEPTH

#define CV_MAT_DEPTH (   flags )    ((flags) & CV_MAT_DEPTH_MASK )

◆  CV_MAT_DEPTH_MASK

#define CV_MAT_DEPTH_MASK   ( CV_DEPTH_MAX - 1)

◆  CV_USRTYPE1

#define CV_USRTYPE1   (void)"CV_USRTYPE1 support has been dropped in OpenCV 4.0"

Typedef 文档编制

◆  int64

typedef int64_t int64

◆  schar

typedef signed char schar

◆  uchar

◆  uint

typedef uint32_t uint

◆  uint64

typedef uint64_t uint64

◆  ushort

typedef unsigned short ushort

函数文档编制

◆  hal_ni_dct2D()

int hal_ni_dct2D ( cvhalDFT context ,
const uchar src_data ,
size_t  src_step ,
uchar dst_data ,
size_t  dst_step  
)
inline

#include < core/src/hal_replacement.hpp >

参数
context pointer to context storing all necessary data
src_data,src_step source image data and step
dst_data,dst_step destination image data and step

◆  hal_ni_dctFree2D()

int hal_ni_dctFree2D ( cvhalDFT context )
inline

#include < core/src/hal_replacement.hpp >

参数
context pointer to context storing all necessary data

◆  hal_ni_dctInit2D()

int hal_ni_dctInit2D ( cvhalDFT **  context ,
int  width ,
int  height ,
int  depth ,
int  flags  
)
inline

#include < core/src/hal_replacement.hpp >

参数
context double pointer to context storing all necessary data
width,height image dimensions
depth image type (CV_32F or CV64F)
flags algorithm options (combination of CV_HAL_DFT_INVERSE, ...)

◆  hal_ni_dft1D()

int hal_ni_dft1D ( cvhalDFT context ,
const uchar src ,
uchar dst  
)
inline

#include < core/src/hal_replacement.hpp >

参数
context pointer to context storing all necessary data
src source data
dst destination data

◆  hal_ni_dft2D()

int hal_ni_dft2D ( cvhalDFT context ,
const uchar src_data ,
size_t  src_step ,
uchar dst_data ,
size_t  dst_step  
)
inline

#include < core/src/hal_replacement.hpp >

参数
context pointer to context storing all necessary data
src_data,src_step source image data and step
dst_data,dst_step destination image data and step

◆  hal_ni_dftFree1D()

int hal_ni_dftFree1D ( cvhalDFT context )
inline

#include < core/src/hal_replacement.hpp >

参数
context pointer to context storing all necessary data

◆  hal_ni_dftFree2D()

int hal_ni_dftFree2D ( cvhalDFT context )
inline

#include < core/src/hal_replacement.hpp >

参数
context pointer to context storing all necessary data

◆  hal_ni_dftInit1D()

int hal_ni_dftInit1D ( cvhalDFT **  context ,
int  len ,
int  count ,
int  depth ,
int  flags ,
bool *  needBuffer  
)
inline

#include < core/src/hal_replacement.hpp >

参数
context double pointer to context storing all necessary data
len transformed array length
count estimated transformation count
depth array type (CV_32F or CV_64F)
flags algorithm options (combination of CV_HAL_DFT_INVERSE, CV_HAL_DFT_SCALE, ...)
needBuffer pointer to boolean variable, if valid pointer provided, then variable value should be set to true to signal that additional memory buffer is needed for operations

◆  hal_ni_dftInit2D()

int hal_ni_dftInit2D ( cvhalDFT **  context ,
int  width ,
int  height ,
int  depth ,
int  src_channels ,
int  dst_channels ,
int  flags ,
int  nonzero_rows  
)
inline

#include < core/src/hal_replacement.hpp >

参数
context double pointer to context storing all necessary data
width,height image dimensions
depth image type (CV_32F or CV64F)
src_channels number of channels in input image
dst_channels number of channels in output image
flags algorithm options (combination of CV_HAL_DFT_INVERSE, ...)
nonzero_rows number of nonzero rows in image, can be used for optimization

◆  hal_ni_minMaxIdx()

int hal_ni_minMaxIdx ( const uchar src_data ,
size_t  src_step ,
int  width ,
int  height ,
int  depth ,
double *  minVal ,
double *  maxVal ,
int *  minIdx ,
int *  maxIdx ,
uchar mask  
)
inline

#include < core/src/hal_replacement.hpp >

Finds the global minimum and maximum in an array.

参数
src_data,src_step Source image
width,height Source image dimensions
depth Depth of source image
minVal,maxVal Pointer to the returned global minimum and maximum in an array.
minIdx,maxIdx Pointer to the returned minimum and maximum location.
mask Specified array region.