Skip to content

Commit 0966b2d

Browse files
committed
Removed openmp from code
1 parent 7579ef5 commit 0966b2d

File tree

1 file changed

+13
-54
lines changed

1 file changed

+13
-54
lines changed

modules/ximgproc/src/estimated_covariance.cpp

Lines changed: 13 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,6 @@ A previous and less efficient version of the algorithm can be found:
5050
*/
5151

5252
#include "precomp.hpp"
53-
//#include <opencv2/opencv.hpp>
54-
55-
#ifdef HAVE_OPENMP
56-
#include <omp.h>
57-
#endif
5853

5954
using namespace cv;
6055
using namespace std;
@@ -101,7 +96,6 @@ class EstimateCovariance{
10196
int nc;
10297
int pr;
10398
int pc;
104-
int threads;
10599

106100
std::vector<Combination> combinationsTable;
107101
};
@@ -110,13 +104,6 @@ class EstimateCovariance{
110104

111105
EstimateCovariance::EstimateCovariance(int pr_, int pc_){
112106
pr=pr_; pc=pc_;
113-
114-
#ifdef HAVE_OPENMP
115-
threads=omp_get_num_procs();
116-
omp_set_num_threads(threads);
117-
#else
118-
threads=1;
119-
#endif
120107
}
121108

122109
EstimateCovariance::~EstimateCovariance(){
@@ -178,47 +165,19 @@ void EstimateCovariance::computeEstimateCovariance(Mat inputData,Mat outputData)
178165

179166
void EstimateCovariance::iterateCombinations(Mat inputData,Mat outputData)
180167
{
181-
int combsPerCPU = combinationCount()/threads;
182-
int remainder = combinationCount()%threads;
183-
if(remainder>0)
184-
combsPerCPU++;
185-
186-
#ifdef HAVE_OPENMP
187-
#pragma omp parallel
188-
#endif
189-
{
190-
int idx;
191-
int combs;
192-
#ifdef HAVE_OPENMP
193-
int thread_id= omp_get_thread_num();
194-
#else
195-
int thread_id=0;
196-
#endif
197-
int startComb;
198-
if (remainder > thread_id){
199-
combs=combsPerCPU;
200-
startComb=(thread_id)*combsPerCPU;
201-
}
202-
else{
203-
combs=combsPerCPU-1;
204-
startComb=remainder*combsPerCPU+(thread_id-remainder)*(combsPerCPU-1);
205-
}
206-
207-
Mat outputVector(pr*pc,1, DataType<std::complex<float> >::type);
208-
209-
std::vector<int> finalMatPosR(pr*pc,0);
210-
std::vector<int> finalMatPosC(pr*pc,0);
211-
212-
for (idx=0; idx<combs; idx++){
213-
outputVector.setTo(Scalar(0,0));
214-
for (unsigned x=0; x<finalMatPosR.size(); x++)
215-
finalMatPosR[x]=0;
216-
for (unsigned x=0; x<finalMatPosC.size(); x++)
217-
finalMatPosC[x]=0;
218-
computeOneCombination(startComb++, inputData, outputData,
219-
outputVector,finalMatPosR, finalMatPosC);
220-
}
221-
168+
Mat outputVector(pr*pc,1, DataType<std::complex<float> >::type);
169+
170+
std::vector<int> finalMatPosR(pr*pc,0);
171+
std::vector<int> finalMatPosC(pr*pc,0);
172+
int combs=combinationCount();
173+
for (int idx=0; idx<combs; idx++){
174+
outputVector.setTo(Scalar(0,0));
175+
for (unsigned x=0; x<finalMatPosR.size(); x++)
176+
finalMatPosR[x]=0;
177+
for (unsigned x=0; x<finalMatPosC.size(); x++)
178+
finalMatPosC[x]=0;
179+
computeOneCombination(idx++, inputData, outputData,
180+
outputVector,finalMatPosR, finalMatPosC);
222181
}
223182
}
224183

0 commit comments

Comments
 (0)