| OpenCV 3.4.1 Open Source Computer Vision

Modules | Classes | Functions
Interface
Core functionality » Hardware Acceleration Layer

## Modules
| 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

## Classes
struct | cvhalDFT
| Dummy structure storing DFT/DCT context. More...

## Functions
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. More...

## Return codes
#define | CV_HAL_ERROR_OK 0
#define | CV_HAL_ERROR_NOT_IMPLEMENTED 1
#define | CV_HAL_ERROR_UNKNOWN -1

## Data types
primitive 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_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_USRTYPE1 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))

## Comparison operation
See also 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
See also 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

## Detailed Description

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

## Macro Definition Documentation

## § CV_16S

#define CV_16S 3

Examples:
  edge.cpp, laplace.cpp, and Sobel_Demo.cpp.

## § 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

#define CV_32F 5

Examples:
  demhist.cpp, fitellipse.cpp, image_alignment.cpp, kalman.cpp, pca.cpp, and train_HOG.cpp.

## § CV_32FC

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

## § CV_32FC1

#define CV_32FC1 CV_MAKETYPE(CV_32F,1)

Examples:
  image_alignment.cpp, MatchTemplate_Demo.cpp, and train_HOG.cpp.

## § CV_32FC2

#define CV_32FC2 CV_MAKETYPE(CV_32F,2)

Examples:
  kmeans.cpp.

## § CV_32FC3

#define CV_32FC3 CV_MAKETYPE(CV_32F,3)

## § CV_32FC4

#define CV_32FC4 CV_MAKETYPE(CV_32F,4)

## § CV_32S

#define CV_32S 4

Examples:
  distrans.cpp, and watershed.cpp.

## § 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)

Examples:
  houghlines.cpp.

## § CV_64F

#define CV_64F 6

Examples:
  cout_mat.cpp, decompose_homography.cpp, homography_from_camera_displacement.cpp, pose_from_homography.cpp, and train_HOG.cpp.

## § 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

#define CV_8U 0

Examples:
  demhist.cpp, and distrans.cpp.

## § CV_8UC

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

## § CV_8UC1

#define CV_8UC1 CV_MAKETYPE(CV_8U,1)

Examples:
  contours2.cpp, falsecolor.cpp, ffilldemo.cpp, grabcut.cpp, and pca.cpp.

## § CV_8UC2

#define CV_8UC2 CV_MAKETYPE(CV_8U,2)

## § CV_8UC3

#define CV_8UC3 CV_MAKETYPE(CV_8U,3)

Examples:
  camshiftdemo.cpp, contours2.cpp, convexhull.cpp, cout_mat.cpp, distrans.cpp, Drawing_1.cpp, Drawing_2.cpp, falsecolor.cpp, fitellipse.cpp, kalman.cpp, kmeans.cpp, minarea.cpp, segment_objects.cpp, videowriter_basic.cpp, and watershed.cpp.

## § 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 7

## Typedef Documentation

## § int64

typedef int64_t int64

## § schar

typedef signed char schar

## § uchar

typedef unsigned char uchar

Examples:
  distrans.cpp.

## § uint

typedef uint32_t uint

## § uint64

typedef uint64_t uint64

## § ushort

typedef unsigned short ushort

## Function Documentation

## § 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

Parameters

  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

Parameters

  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

Parameters

  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

Parameters

  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

Parameters

  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

Parameters

  context | pointer to context storing all necessary data

## § hal_ni_dftFree2D()

int hal_ni_dftFree2D | ( | cvhalDFT * | context | ) |
| inline

Parameters

  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

Parameters

  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

Parameters

  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

Finds the global minimum and maximum in an array.

Parameters

  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.