1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-31 00:03:03 +04:00

Merge branch 4.x

This commit is contained in:
Alexander Smorkalov
2024-07-01 15:15:08 +03:00
62 changed files with 2178 additions and 243 deletions
+6 -1
View File
@@ -55,6 +55,11 @@ static void LUT8u_32s( const uchar* src, const int* lut, int* dst, int len, int
LUT8u_( src, lut, dst, len, cn, lutcn );
}
static void LUT8u_16f( const uchar* src, const hfloat* lut, hfloat* dst, int len, int cn, int lutcn )
{
LUT8u_( src, lut, dst, len, cn, lutcn );
}
static void LUT8u_32f( const uchar* src, const float* lut, float* dst, int len, int cn, int lutcn )
{
LUT8u_( src, lut, dst, len, cn, lutcn );
@@ -70,7 +75,7 @@ typedef void (*LUTFunc)( const uchar* src, const uchar* lut, uchar* dst, int len
static LUTFunc lutTab[CV_DEPTH_MAX] =
{
(LUTFunc)LUT8u_8u, (LUTFunc)LUT8u_8s, (LUTFunc)LUT8u_16u, (LUTFunc)LUT8u_16s,
(LUTFunc)LUT8u_32s, (LUTFunc)LUT8u_32f, (LUTFunc)LUT8u_64f, 0
(LUTFunc)LUT8u_32s, (LUTFunc)LUT8u_32f, (LUTFunc)LUT8u_64f, (LUTFunc)LUT8u_16f
};
#ifdef HAVE_OPENCL
+9 -6
View File
@@ -484,6 +484,10 @@ void meanStdDev(InputArray _src, OutputArray _mean, OutputArray _sdv, InputArray
int dcn = (int)mean_mat.total();
CV_Assert( mean_mat.type() == CV_64F && mean_mat.isContinuous() &&
(mean_mat.cols == 1 || mean_mat.rows == 1) && dcn >= cn );
double* dptr = mean_mat.ptr<double>();
for(k = cn ; k < dcn; k++ )
dptr[k] = 0;
}
if (_sdv.needed())
@@ -495,6 +499,11 @@ void meanStdDev(InputArray _src, OutputArray _mean, OutputArray _sdv, InputArray
int dcn = (int)stddev_mat.total();
CV_Assert( stddev_mat.type() == CV_64F && stddev_mat.isContinuous() &&
(stddev_mat.cols == 1 || stddev_mat.rows == 1) && dcn >= cn );
double* dptr = stddev_mat.ptr<double>();
for(k = cn ; k < dcn; k++ )
dptr[k] = 0;
}
if (src.isContinuous() && mask.isContinuous())
@@ -596,23 +605,17 @@ void meanStdDev(InputArray _src, OutputArray _mean, OutputArray _sdv, InputArray
if (_mean.needed())
{
const double* sptr = s;
int dcn = (int)mean_mat.total();
double* dptr = mean_mat.ptr<double>();
for( k = 0; k < cn; k++ )
dptr[k] = sptr[k];
for( ; k < dcn; k++ )
dptr[k] = 0;
}
if (_sdv.needed())
{
const double* sptr = sq;
int dcn = (int)stddev_mat.total();
double* dptr = stddev_mat.ptr<double>();
for( k = 0; k < cn; k++ )
dptr[k] = sptr[k];
for( ; k < dcn; k++ )
dptr[k] = 0;
}
}