diff --git a/modules/ximgproc/src/estimated_covariance.cpp b/modules/ximgproc/src/estimated_covariance.cpp index 5ff280734..5d73fcd86 100644 --- a/modules/ximgproc/src/estimated_covariance.cpp +++ b/modules/ximgproc/src/estimated_covariance.cpp @@ -87,7 +87,7 @@ private: void iterateCombinations(Mat inputData,Mat outputData); void computeOneCombination(int comb_id, Mat inputData , Mat outputData, - Mat outputVector,int* finalMatPosR, int* finalMatPosC); + Mat outputVector,std::vector finalMatPosR, std::vector finalMatPosC); inline void complexSubtract(std::complex& src, std::complex& dst){dst-=src;} inline void complexAdd(std::complex& src, std::complex& dst){dst+=src;} @@ -103,7 +103,8 @@ private: int pc; int threads; - Combination* combinationsTable; +// Combination* combinationsTable; + std::vector combinationsTable; }; @@ -120,12 +121,12 @@ EstimateCovariance::EstimateCovariance(int pr_, int pc_){ } EstimateCovariance::~EstimateCovariance(){ - delete[] combinationsTable; + } void EstimateCovariance::initInternalDataStructures(){ int combCount = combinationCount(); - combinationsTable = new Combination[combCount]; + combinationsTable.resize(combCount); buildCombinationsTable(); } @@ -203,26 +204,27 @@ void EstimateCovariance::iterateCombinations(Mat inputData,Mat outputData) combs=combsPerCPU-1; startComb=remainder*combsPerCPU+(thread_id-remainder)*(combsPerCPU-1); } -// stopComb=startComb+combs; + Mat outputVector(pr*pc,1, DataType >::type); - int* finalMatPosR = new int[pr*pc]; - int* finalMatPosC = new int[pr*pc]; + std::vector finalMatPosR(pr*pc,0); + std::vector finalMatPosC(pr*pc,0); for (idx=0; idx finalMatPosR, std::vector finalMatPosC) { Combination* comb = &combinationsTable[comb_id]; int type2 = comb->type2;