From 6af10a29375a0d032950ff98e17bb564b136dfb2 Mon Sep 17 00:00:00 2001 From: kdrobnyh Date: Tue, 30 Jul 2013 00:54:27 +0400 Subject: [PATCH] Some changes in sum and mean functions --- modules/core/src/stat.cpp | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/modules/core/src/stat.cpp b/modules/core/src/stat.cpp index 832e95eb68..d8f28e204f 100644 --- a/modules/core/src/stat.cpp +++ b/modules/core/src/stat.cpp @@ -464,21 +464,16 @@ cv::Scalar cv::sum( InputArray _src ) 0; if( ippFunc ) { - Ipp64f *res = new Ipp64f[cn]; - if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) == ippStsNoErr ) + Ipp64f res[4]; + if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) >= 0 ) { Scalar sc; for( int i = 0; i < cn; i++ ) { sc[i] = res[i]; } - delete []res; return sc; } - else - { - delete []res; - } } } #endif @@ -575,7 +570,7 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) if( ippFuncC1 ) { 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); } @@ -589,9 +584,9 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) if( ippFuncC3 ) { Ipp64f res1, res2, res3; - if( ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 1, &res1) == ippStsNoErr && - 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, 3, &res3) == 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) >= 0 && + ippFuncC3(src.data, src.step[0], mask.data, mask.step[0], sz, 3, &res3) >= 0 ) { return Scalar(res1, res2, res3); } @@ -616,21 +611,16 @@ cv::Scalar cv::mean( InputArray _src, InputArray _mask ) 0; if( ippFunc ) { - Ipp64f *res = new Ipp64f[cn]; - if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) == ippStsNoErr ) + Ipp64f res[4]; + if( ippFunc(src.data, src.step[0], sz, res, ippAlgHintAccurate) >= 0 ) { Scalar sc; for( int i = 0; i < cn; i++ ) { sc[i] = res[i]; } - delete []res; return sc; } - else - { - delete []res; - } } } }