| OpenCV 4.3.0 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_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
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_16F

#define CV_16F 7

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16FC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16FC1

#define CV_16FC1 CV_MAKETYPE(CV_16F,1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16FC2

#define CV_16FC2 CV_MAKETYPE(CV_16F,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16FC3

#define CV_16FC3 CV_MAKETYPE(CV_16F,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16FC4

#define CV_16FC4 CV_MAKETYPE(CV_16F,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16S

#define CV_16S 3

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/edge.cpp, samples/cpp/laplace.cpp, samples/cpp/stitching_detailed.cpp, and samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp.

## ◆ CV_16SC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16SC1

#define CV_16SC1 CV_MAKETYPE(CV_16S,1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16SC2

#define CV_16SC2 CV_MAKETYPE(CV_16S,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16SC3

#define CV_16SC3 CV_MAKETYPE(CV_16S,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16SC4

#define CV_16SC4 CV_MAKETYPE(CV_16S,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16U

#define CV_16U 2

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16UC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16UC1

#define CV_16UC1 CV_MAKETYPE(CV_16U,1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16UC2

#define CV_16UC2 CV_MAKETYPE(CV_16U,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16UC3

#define CV_16UC3 CV_MAKETYPE(CV_16U,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_16UC4

#define CV_16UC4 CV_MAKETYPE(CV_16U,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32F

#define CV_32F 5

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/demhist.cpp, samples/cpp/fitellipse.cpp, samples/cpp/image_alignment.cpp, samples/cpp/kalman.cpp, samples/cpp/pca.cpp, samples/cpp/stitching_detailed.cpp, samples/cpp/train_HOG.cpp, samples/dnn/colorization.cpp, and samples/dnn/openpose.cpp.

## ◆ CV_32FC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32FC1

#define CV_32FC1 CV_MAKETYPE(CV_32F,1)

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/image_alignment.cpp, samples/cpp/train_HOG.cpp, samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp, and samples/dnn/segmentation.cpp.

## ◆ CV_32FC2

#define CV_32FC2 CV_MAKETYPE(CV_32F,2)

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/kmeans.cpp.

## ◆ CV_32FC3

#define CV_32FC3 CV_MAKETYPE(CV_32F,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32FC4

#define CV_32FC4 CV_MAKETYPE(CV_32F,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32S

#define CV_32S 4

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/connected_components.cpp, samples/cpp/distrans.cpp, and samples/cpp/watershed.cpp.

## ◆ CV_32SC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32SC1

#define CV_32SC1 CV_MAKETYPE(CV_32S,1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32SC2

#define CV_32SC2 CV_MAKETYPE(CV_32S,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32SC3

#define CV_32SC3 CV_MAKETYPE(CV_32S,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_32SC4

#define CV_32SC4 CV_MAKETYPE(CV_32S,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_64F

#define CV_64F 6

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/cout_mat.cpp, samples/cpp/train_HOG.cpp, samples/cpp/tutorial_code/features2D/Homography/decompose_homography.cpp, samples/cpp/tutorial_code/features2D/Homography/homography_from_camera_displacement.cpp, samples/cpp/tutorial_code/features2D/Homography/pose_from_homography.cpp, and samples/cpp/tutorial_code/ml/introduction_to_pca/introduction_to_pca.cpp.

## ◆ CV_64FC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_64FC1

#define CV_64FC1 CV_MAKETYPE(CV_64F,1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_64FC2

#define CV_64FC2 CV_MAKETYPE(CV_64F,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_64FC3

#define CV_64FC3 CV_MAKETYPE(CV_64F,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_64FC4

#define CV_64FC4 CV_MAKETYPE(CV_64F,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8S

#define CV_8S 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8SC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8SC1

#define CV_8SC1 CV_MAKETYPE(CV_8S,1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8SC2

#define CV_8SC2 CV_MAKETYPE(CV_8S,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8SC3

#define CV_8SC3 CV_MAKETYPE(CV_8S,3)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8SC4

#define CV_8SC4 CV_MAKETYPE(CV_8S,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8U

#define CV_8U 0

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/demhist.cpp, samples/cpp/distrans.cpp, samples/cpp/squares.cpp, samples/cpp/stitching_detailed.cpp, samples/dnn/object_detection.cpp, and samples/tapi/squares.cpp.

## ◆ CV_8UC

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8UC1

#define CV_8UC1 CV_MAKETYPE(CV_8U,1)

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/contours2.cpp, samples/cpp/create_mask.cpp, samples/cpp/falsecolor.cpp, samples/cpp/ffilldemo.cpp, samples/cpp/grabcut.cpp, samples/cpp/pca.cpp, samples/cpp/stitching_detailed.cpp, and samples/dnn/segmentation.cpp.

## ◆ CV_8UC2

#define CV_8UC2 CV_MAKETYPE(CV_8U,2)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_8UC3

#define CV_8UC3 CV_MAKETYPE(CV_8U,3)

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/camshiftdemo.cpp, samples/cpp/connected_components.cpp, samples/cpp/contours2.cpp, samples/cpp/convexhull.cpp, samples/cpp/cout_mat.cpp, samples/cpp/create_mask.cpp, samples/cpp/distrans.cpp, samples/cpp/falsecolor.cpp, samples/cpp/fitellipse.cpp, samples/cpp/intersectExample.cpp, samples/cpp/kalman.cpp, samples/cpp/kmeans.cpp, samples/cpp/minarea.cpp, samples/cpp/segment_objects.cpp, samples/cpp/tutorial_code/ImgProc/basic_drawing/Drawing_1.cpp, samples/cpp/tutorial_code/ImgProc/basic_drawing/Drawing_2.cpp, samples/cpp/videowriter_basic.cpp, samples/cpp/watershed.cpp, and samples/dnn/segmentation.cpp.

## ◆ CV_8UC4

#define CV_8UC4 CV_MAKETYPE(CV_8U,4)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_BIG_INT

#define CV_BIG_INT | ( |  | n | ) | n##LL

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_BIG_UINT

#define CV_BIG_UINT | ( |  | n | ) | n##ULL

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_CN_MAX

#define CV_CN_MAX 512

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_CN_SHIFT

#define CV_CN_SHIFT 3

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_DEPTH_MAX

#define CV_DEPTH_MAX (1 << CV_CN_SHIFT)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_CONSTANT

#define CV_HAL_BORDER_CONSTANT 0

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_ISOLATED

#define CV_HAL_BORDER_ISOLATED 16

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_REFLECT

#define CV_HAL_BORDER_REFLECT 2

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_REFLECT_101

#define CV_HAL_BORDER_REFLECT_101 4

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_REPLICATE

#define CV_HAL_BORDER_REPLICATE 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_TRANSPARENT

#define CV_HAL_BORDER_TRANSPARENT 5

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_BORDER_WRAP

#define CV_HAL_BORDER_WRAP 3

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_CMP_EQ

#define CV_HAL_CMP_EQ 0

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_CMP_GE

#define CV_HAL_CMP_GE 2

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_CMP_GT

#define CV_HAL_CMP_GT 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_CMP_LE

#define CV_HAL_CMP_LE 4

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_CMP_LT

#define CV_HAL_CMP_LT 3

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_CMP_NE

#define CV_HAL_CMP_NE 5

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_COMPLEX_OUTPUT

#define CV_HAL_DFT_COMPLEX_OUTPUT 16

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_INVERSE

#define CV_HAL_DFT_INVERSE 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_IS_CONTINUOUS

#define CV_HAL_DFT_IS_CONTINUOUS 512

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_IS_INPLACE

#define CV_HAL_DFT_IS_INPLACE 1024

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_REAL_OUTPUT

#define CV_HAL_DFT_REAL_OUTPUT 32

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_ROWS

#define CV_HAL_DFT_ROWS 4

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_SCALE

#define CV_HAL_DFT_SCALE 2

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_STAGE_COLS

#define CV_HAL_DFT_STAGE_COLS 128

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_DFT_TWO_STAGE

#define CV_HAL_DFT_TWO_STAGE 64

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_ERROR_NOT_IMPLEMENTED

#define CV_HAL_ERROR_NOT_IMPLEMENTED 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_ERROR_OK

#define CV_HAL_ERROR_OK 0

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_ERROR_UNKNOWN

#define CV_HAL_ERROR_UNKNOWN -1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_GEMM_1_T

#define CV_HAL_GEMM_1_T 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_GEMM_2_T

#define CV_HAL_GEMM_2_T 2

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_GEMM_3_T

#define CV_HAL_GEMM_3_T 4

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_SVD_FULL_UV

#define CV_HAL_SVD_FULL_UV 8

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_SVD_MODIFY_A

#define CV_HAL_SVD_MODIFY_A 4

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_SVD_NO_UV

#define CV_HAL_SVD_NO_UV 1

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_HAL_SVD_SHORT_UV

#define CV_HAL_SVD_SHORT_UV 2

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_MAKE_TYPE

#define CV_MAKE_TYPE CV_MAKETYPE

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_MAKETYPE

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_MAT_DEPTH

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

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_MAT_DEPTH_MASK

#define CV_MAT_DEPTH_MASK (CV_DEPTH_MAX - 1)

`#include <opencv2/core/hal/interface.h>`

## ◆ CV_USRTYPE1

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

`#include <opencv2/core/hal/interface.h>`

## Typedef Documentation

## ◆ int64

typedef int64_t int64

`#include <opencv2/core/hal/interface.h>`

## ◆ schar

typedef signed char schar

`#include <opencv2/core/hal/interface.h>`

## ◆ uchar

typedef unsigned char uchar

`#include <opencv2/core/hal/interface.h>`

Examples:
  samples/cpp/distrans.cpp, and samples/dnn/segmentation.cpp.

## ◆ uint

typedef uint32_t uint

`#include <opencv2/core/hal/interface.h>`

## ◆ uint64

typedef uint64_t uint64

`#include <opencv2/core/hal/interface.h>`

## ◆ ushort

typedef unsigned short ushort

`#include <opencv2/core/hal/interface.h>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

Parameters

  context | pointer to context storing all necessary data

## ◆ hal_ni_dftFree2D()

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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

`#include <core/src/hal_replacement.hpp>`

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.