Commit 6af10a29 authored by kdrobnyh's avatar kdrobnyh

Some changes in sum and mean functions

parent 4dfd40be
...@@ -464,21 +464,16 @@ cv::Scalar cv::sum( InputArray _src ) ...@@ -464,21 +464,16 @@ cv::Scalar cv::sum( InputArray _src )
0; 0;
if( ippFunc ) if( ippFunc )
{ {
Ipp64f *res = new Ipp64f[cn]; Ipp64f res[4];
if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) == ippStsNoErr ) if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) >= 0 )
{ {
Scalar sc; Scalar sc;
for( int i = 0; i < cn; i++ ) for( int i = 0; i < cn; i++ )
{ {
sc[i] = res[i]; sc[i] = res[i];
} }
delete []res;
return sc; return sc;
} }
else
{
delete []res;
}
} }
} }
#endif #endif
...@@ -575,7 +570,7 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) ...@@ -575,7 +570,7 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask )
if( ippFuncC1 ) if( ippFuncC1 )
{ {
Ipp64f res; Ipp64f res;
if( ippFuncC1(src.data, src.step[0], mask.data, mask.step[0], sz, &res) == ippStsNoErr ) if( ippFuncC1(src.data, src.step[0], mask.data, mask.step[0], sz, &res) >= 0 )
{ {
return Scalar(res); return Scalar(res);
} }
...@@ -589,9 +584,9 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) ...@@ -589,9 +584,9 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask )
if( ippFuncC3 ) if( ippFuncC3 )
{ {
Ipp64f res1, res2, res3; Ipp64f res1, res2, res3;
if( ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 1, &res1) == ippStsNoErr && if( ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 1, &res1) >= 0 &&
ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 2, &res2) == ippStsNoErr && ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 2, &res2) >= 0 &&
ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 3, &res3) == ippStsNoErr ) ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 3, &res3) >= 0 )
{ {
return Scalar(res1, res2, res3); return Scalar(res1, res2, res3);
} }
...@@ -616,21 +611,16 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) ...@@ -616,21 +611,16 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask )
0; 0;
if( ippFunc ) if( ippFunc )
{ {
Ipp64f *res = new Ipp64f[cn]; Ipp64f res[4];
if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) == ippStsNoErr ) if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) >= 0 )
{ {
Scalar sc; Scalar sc;
for( int i = 0; i < cn; i++ ) for( int i = 0; i < cn; i++ )
{ {
sc[i] = res[i]; sc[i] = res[i];
} }
delete []res;
return sc; return sc;
} }
else
{
delete []res;
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment