45
#ifndef OPENCV_HAL_HPP
46
#define OPENCV_HAL_HPP
48
#include "opencv2/core/cvdef.h"
49
#include "opencv2/core/cvstd.hpp"
50
#include "opencv2/core/hal/interface.h"
52
namespace
cv
{
namespace
hal {
57CV_EXPORTS
int
normHamming(
const
uchar* a,
int
n);
58CV_EXPORTS
int
normHamming(
const
uchar* a,
const
uchar* b,
int
n);
60CV_EXPORTS
int
normHamming(
const
uchar* a,
int
n,
int
cellSize);
61CV_EXPORTS
int
normHamming(
const
uchar* a,
const
uchar* b,
int
n,
int
cellSize);
63CV_EXPORTS
int
LU32f(
float* A,
size_t
astep,
int
m,
float* b,
size_t
bstep,
int
n);
64CV_EXPORTS
int
LU64f(
double* A,
size_t
astep,
int
m,
double* b,
size_t
bstep,
int
n);
65CV_EXPORTS
bool
Cholesky32f(
float* A,
size_t
astep,
int
m,
float* b,
size_t
bstep,
int
n);
66CV_EXPORTS
bool
Cholesky64f(
double* A,
size_t
astep,
int
m,
double* b,
size_t
bstep,
int
n);
67CV_EXPORTS
void
SVD32f(
float* At,
size_t
astep,
float* W,
float* U,
size_t
ustep,
float* Vt,
size_t
vstep,
int
m,
int
n,
int
flags);
68CV_EXPORTS
void
SVD64f(
double* At,
size_t
astep,
double* W,
double* U,
size_t
ustep,
double* Vt,
size_t
vstep,
int
m,
int
n,
int
flags);
69CV_EXPORTS
int
QR32f(
float* A,
size_t
astep,
int
m,
int
n,
int
k,
float* b,
size_t
bstep,
float* hFactors);
70CV_EXPORTS
int
QR64f(
double* A,
size_t
astep,
int
m,
int
n,
int
k,
double* b,
size_t
bstep,
double* hFactors);
72CV_EXPORTS
void
gemm32f(
const
float* src1,
size_t
src1_step,
const
float* src2,
size_t
src2_step,
73
float
alpha,
const
float* src3,
size_t
src3_step,
float
beta,
float* dst,
size_t
dst_step,
74
int
m_a,
int
n_a,
int
n_d,
int
flags);
75CV_EXPORTS
void
gemm64f(
const
double* src1,
size_t
src1_step,
const
double* src2,
size_t
src2_step,
76
double
alpha,
const
double* src3,
size_t
src3_step,
double
beta,
double* dst,
size_t
dst_step,
77
int
m_a,
int
n_a,
int
n_d,
int
flags);
78CV_EXPORTS
void
gemm32fc(
const
float* src1,
size_t
src1_step,
const
float* src2,
size_t
src2_step,
79
float
alpha,
const
float* src3,
size_t
src3_step,
float
beta,
float* dst,
size_t
dst_step,
80
int
m_a,
int
n_a,
int
n_d,
int
flags);
81CV_EXPORTS
void
gemm64fc(
const
double* src1,
size_t
src1_step,
const
double* src2,
size_t
src2_step,
82
double
alpha,
const
double* src3,
size_t
src3_step,
double
beta,
double* dst,
size_t
dst_step,
83
int
m_a,
int
n_a,
int
n_d,
int
flags);
85CV_EXPORTS
int
normL1_(
const
uchar* a,
const
uchar* b,
int
n);
86CV_EXPORTS
float
normL1_(
const
float* a,
const
float* b,
int
n);
87CV_EXPORTS
float
normL2Sqr_(
const
float* a,
const
float* b,
int
n);
89CV_EXPORTS
void
exp32f(
const
float* src,
float* dst,
int
n);
90CV_EXPORTS
void
exp64f(
const
double* src,
double* dst,
int
n);
91CV_EXPORTS
void
log32f(
const
float* src,
float* dst,
int
n);
92CV_EXPORTS
void
log64f(
const
double* src,
double* dst,
int
n);
94CV_EXPORTS
void
fastAtan32f(
const
float* y,
const
float* x,
float* dst,
int
n,
bool
angleInDegrees);
95CV_EXPORTS
void
fastAtan64f(
const
double* y,
const
double* x,
double* dst,
int
n,
bool
angleInDegrees);
96CV_EXPORTS
void
magnitude32f(
const
float* x,
const
float* y,
float* dst,
int
n);
97CV_EXPORTS
void
magnitude64f(
const
double* x,
const
double* y,
double* dst,
int
n);
98CV_EXPORTS
void
sqrt32f(
const
float* src,
float* dst,
int
len);
99CV_EXPORTS
void
sqrt64f(
const
double* src,
double* dst,
int
len);
100CV_EXPORTS
void
invSqrt32f(
const
float* src,
float* dst,
int
len);
101CV_EXPORTS
void
invSqrt64f(
const
double* src,
double* dst,
int
len);
103CV_EXPORTS
void
split8u(
const
uchar* src, uchar** dst,
int
len,
int
cn );
104CV_EXPORTS
void
split16u(
const
ushort* src, ushort** dst,
int
len,
int
cn );
105CV_EXPORTS
void
split32s(
const
int* src,
int** dst,
int
len,
int
cn );
106CV_EXPORTS
void
split64s(
const
int64* src, int64** dst,
int
len,
int
cn );
108CV_EXPORTS
void
merge8u(
const
uchar** src, uchar* dst,
int
len,
int
cn );
109CV_EXPORTS
void
merge16u(
const
ushort** src, ushort* dst,
int
len,
int
cn );
110CV_EXPORTS
void
merge32s(
const
int** src,
int* dst,
int
len,
int
cn );
111CV_EXPORTS
void
merge64s(
const
int64** src, int64* dst,
int
len,
int
cn );
113CV_EXPORTS
void
add8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
114CV_EXPORTS
void
add8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* );
115CV_EXPORTS
void
add16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* );
116CV_EXPORTS
void
add16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* );
117CV_EXPORTS
void
add32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* );
118CV_EXPORTS
void
add32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* );
119CV_EXPORTS
void
add64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* );
121CV_EXPORTS
void
sub8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
122CV_EXPORTS
void
sub8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* );
123CV_EXPORTS
void
sub16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* );
124CV_EXPORTS
void
sub16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* );
125CV_EXPORTS
void
sub32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* );
126CV_EXPORTS
void
sub32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* );
127CV_EXPORTS
void
sub64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* );
129CV_EXPORTS
void
max8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
130CV_EXPORTS
void
max8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* );
131CV_EXPORTS
void
max16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* );
132CV_EXPORTS
void
max16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* );
133CV_EXPORTS
void
max32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* );
134CV_EXPORTS
void
max32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* );
135CV_EXPORTS
void
max64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* );
137CV_EXPORTS
void
min8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
138CV_EXPORTS
void
min8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* );
139CV_EXPORTS
void
min16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* );
140CV_EXPORTS
void
min16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* );
141CV_EXPORTS
void
min32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* );
142CV_EXPORTS
void
min32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* );
143CV_EXPORTS
void
min64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* );
145CV_EXPORTS
void
absdiff8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
146CV_EXPORTS
void
absdiff8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* );
147CV_EXPORTS
void
absdiff16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* );
148CV_EXPORTS
void
absdiff16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* );
149CV_EXPORTS
void
absdiff32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* );
150CV_EXPORTS
void
absdiff32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* );
151CV_EXPORTS
void
absdiff64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* );
153CV_EXPORTS
void
and8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
154CV_EXPORTS
void
or8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
155CV_EXPORTS
void
xor8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
156CV_EXPORTS
void
not8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* );
158CV_EXPORTS
void
cmp8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
159CV_EXPORTS
void
cmp8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
160CV_EXPORTS
void
cmp16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
161CV_EXPORTS
void
cmp16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
162CV_EXPORTS
void
cmp32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
163CV_EXPORTS
void
cmp32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
164CV_EXPORTS
void
cmp64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _cmpop);
166CV_EXPORTS
void
mul8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* scale);
167CV_EXPORTS
void
mul8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* scale);
168CV_EXPORTS
void
mul16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* scale);
169CV_EXPORTS
void
mul16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* scale);
170CV_EXPORTS
void
mul32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* scale);
171CV_EXPORTS
void
mul32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* scale);
172CV_EXPORTS
void
mul64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* scale);
174CV_EXPORTS
void
div8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* scale);
175CV_EXPORTS
void
div8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* scale);
176CV_EXPORTS
void
div16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* scale);
177CV_EXPORTS
void
div16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* scale);
178CV_EXPORTS
void
div32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* scale);
179CV_EXPORTS
void
div32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* scale);
180CV_EXPORTS
void
div64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* scale);
182CV_EXPORTS
void
recip8u(
const
uchar *,
size_t,
const
uchar * src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* scale);
183CV_EXPORTS
void
recip8s(
const
schar *,
size_t,
const
schar * src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* scale);
184CV_EXPORTS
void
recip16u(
const
ushort *,
size_t,
const
ushort * src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* scale);
185CV_EXPORTS
void
recip16s(
const
short
*,
size_t,
const
short
* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* scale);
186CV_EXPORTS
void
recip32s(
const
int
*,
size_t,
const
int
* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* scale);
187CV_EXPORTS
void
recip32f(
const
float
*,
size_t,
const
float
* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* scale);
188CV_EXPORTS
void
recip64f(
const
double
*,
size_t,
const
double
* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* scale);
190CV_EXPORTS
void
addWeighted8u(
const
uchar* src1,
size_t
step1,
const
uchar* src2,
size_t
step2, uchar* dst,
size_t
step,
int
width,
int
height,
void* _scalars );
191CV_EXPORTS
void
addWeighted8s(
const
schar* src1,
size_t
step1,
const
schar* src2,
size_t
step2, schar* dst,
size_t
step,
int
width,
int
height,
void* scalars );
192CV_EXPORTS
void
addWeighted16u(
const
ushort* src1,
size_t
step1,
const
ushort* src2,
size_t
step2, ushort* dst,
size_t
step,
int
width,
int
height,
void* scalars );
193CV_EXPORTS
void
addWeighted16s(
const
short* src1,
size_t
step1,
const
short* src2,
size_t
step2,
short* dst,
size_t
step,
int
width,
int
height,
void* scalars );
194CV_EXPORTS
void
addWeighted32s(
const
int* src1,
size_t
step1,
const
int* src2,
size_t
step2,
int* dst,
size_t
step,
int
width,
int
height,
void* scalars );
195CV_EXPORTS
void
addWeighted32f(
const
float* src1,
size_t
step1,
const
float* src2,
size_t
step2,
float* dst,
size_t
step,
int
width,
int
height,
void* scalars );
196CV_EXPORTS
void
addWeighted64f(
const
double* src1,
size_t
step1,
const
double* src2,
size_t
step2,
double* dst,
size_t
step,
int
width,
int
height,
void* scalars );
198CV_EXPORTS
void
cvt16f32f(
const
float16_t* src,
float* dst,
int
len );
199CV_EXPORTS
void
cvt32f16f(
const
float* src, float16_t* dst,
int
len );
201CV_EXPORTS
void
addRNGBias32f(
float* arr,
const
float* scaleBiasPairs,
int
len );
202CV_EXPORTS
void
addRNGBias64f(
double* arr,
const
double* scaleBiasPairs,
int
len );
206
static
Ptr<DFT1D>
create(
int
len,
int
count,
int
depth,
int
flags,
bool
* useBuffer = 0);
207
virtual
void
apply(
const
uchar *src, uchar *dst) = 0;
213
static
Ptr<DFT2D>
create(
int
width,
int
height,
int
depth,
214
int
src_channels,
int
dst_channels,
215
int
flags,
int
nonzero_rows = 0);
216
virtual
void
apply(
const
uchar *src_data,
size_t
src_step, uchar *dst_data,
size_t
dst_step) = 0;
222
static
Ptr<DCT2D>
create(
int
width,
int
height,
int
depth,
int
flags);
223
virtual
void
apply(
const
uchar *src_data,
size_t
src_step, uchar *dst_data,
size_t
dst_step) = 0;
234CV_EXPORTS
int
LU(
float* A,
size_t
astep,
int
m,
float* b,
size_t
bstep,
int
n);
235CV_EXPORTS
int
LU(
double* A,
size_t
astep,
int
m,
double* b,
size_t
bstep,
int
n);
236CV_EXPORTS
bool
Cholesky(
float* A,
size_t
astep,
int
m,
float* b,
size_t
bstep,
int
n);
237CV_EXPORTS
bool
Cholesky(
double* A,
size_t
astep,
int
m,
double* b,
size_t
bstep,
int
n);
239CV_EXPORTS
void
exp(
const
float* src,
float* dst,
int
n);
240CV_EXPORTS
void
exp(
const
double* src,
double* dst,
int
n);
241CV_EXPORTS
void
log(
const
float* src,
float* dst,
int
n);
242CV_EXPORTS
void
log(
const
double* src,
double* dst,
int
n);
244CV_EXPORTS
void
fastAtan2(
const
float* y,
const
float* x,
float* dst,
int
n,
bool
angleInDegrees);
245CV_EXPORTS
void
magnitude(
const
float* x,
const
float* y,
float* dst,
int
n);
246CV_EXPORTS
void
magnitude(
const
double* x,
const
double* y,
double* dst,
int
n);
247CV_EXPORTS
void
sqrt(
const
float* src,
float* dst,
int
len);
248CV_EXPORTS
void
sqrt(
const
double* src,
double* dst,
int
len);
249CV_EXPORTS
void
invSqrt(
const
float* src,
float* dst,
int
len);
250CV_EXPORTS
void
invSqrt(
const
double* src,
double* dst,
int
len);
CV_EXPORTS_W void sqrt(InputArray src, OutputArray dst)
Calculates a square root of array elements.
CV_EXPORTS_W void exp(InputArray src, OutputArray dst)
Calculates the exponent of every array element.
CV_EXPORTS_W void magnitude(InputArray x, InputArray y, OutputArray magnitude)
Calculates the magnitude of 2D vectors.
CV_EXPORTS_W void log(InputArray src, OutputArray dst)
Calculates the natural logarithm of every array element.
CV_EXPORTS int LU(float *A, size_t astep, int m, float *b, size_t bstep, int n)
CV_EXPORTS_W float fastAtan2(float y, float x)
Calculates the angle of a 2D vector in degrees.
CV_EXPORTS bool Cholesky(float *A, size_t astep, int m, float *b, size_t bstep, int n)
"black box" representation of the file storage associated with a file on disk.
Definition:
aruco.hpp:75
Definition:
cvstd_wrapper.hpp:74
Definition:
core/hal/hal.hpp:221
Definition:
core/hal/hal.hpp:205
Definition:
core/hal/hal.hpp:212