mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 22:00:25 +08:00
cv::min/cv::max CV_64F
This commit is contained in:
parent
3e173b701e
commit
d453a598f8
@ -705,6 +705,23 @@ static void max64f( const double* src1, size_t step1,
|
|||||||
const double* src2, size_t step2,
|
const double* src2, size_t step2,
|
||||||
double* dst, size_t step, Size sz, void* )
|
double* dst, size_t step, Size sz, void* )
|
||||||
{
|
{
|
||||||
|
#if ARITHM_USE_IPP == 1
|
||||||
|
double* s1 = (double*)src1;
|
||||||
|
double* s2 = (double*)src2;
|
||||||
|
double* d = dst;
|
||||||
|
fixSteps(sz, sizeof(dst[0]), step1, step2, step);
|
||||||
|
int i = 0;
|
||||||
|
for(; i < sz.height; i++)
|
||||||
|
{
|
||||||
|
if (0 > ippsMaxEvery_64f(s1, s2, d, sz.width))
|
||||||
|
break;
|
||||||
|
s1 = (double*)((uchar*)s1 + step1);
|
||||||
|
s2 = (double*)((uchar*)s2 + step2);
|
||||||
|
d = (double*)((uchar*)d + step);
|
||||||
|
}
|
||||||
|
if (i == sz.height)
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
vBinOp64<double, OpMax<double>, IF_SIMD(VMax<double>)>(src1, step1, src2, step2, dst, step, sz);
|
vBinOp64<double, OpMax<double>, IF_SIMD(VMax<double>)>(src1, step1, src2, step2, dst, step, sz);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -808,6 +825,23 @@ static void min64f( const double* src1, size_t step1,
|
|||||||
const double* src2, size_t step2,
|
const double* src2, size_t step2,
|
||||||
double* dst, size_t step, Size sz, void* )
|
double* dst, size_t step, Size sz, void* )
|
||||||
{
|
{
|
||||||
|
#if ARITHM_USE_IPP == 1
|
||||||
|
double* s1 = (double*)src1;
|
||||||
|
double* s2 = (double*)src2;
|
||||||
|
double* d = dst;
|
||||||
|
fixSteps(sz, sizeof(dst[0]), step1, step2, step);
|
||||||
|
int i = 0;
|
||||||
|
for(; i < sz.height; i++)
|
||||||
|
{
|
||||||
|
if (0 > ippsMinEvery_64f(s1, s2, d, sz.width))
|
||||||
|
break;
|
||||||
|
s1 = (double*)((uchar*)s1 + step1);
|
||||||
|
s2 = (double*)((uchar*)s2 + step2);
|
||||||
|
d = (double*)((uchar*)d + step);
|
||||||
|
}
|
||||||
|
if (i == sz.height)
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
vBinOp64<double, OpMin<double>, IF_SIMD(VMin<double>)>(src1, step1, src2, step2, dst, step, sz);
|
vBinOp64<double, OpMin<double>, IF_SIMD(VMin<double>)>(src1, step1, src2, step2, dst, step, sz);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user