免责声明,因为您会看到(在我看来)此问题与this或this无关。
我有这段代码:
std::vector<Wrapper> localWrappers;
std::vector<float> pixelDistancesNew;
std::vector<float> curSigmas;
//fill the 3 vectors
#pragma omp parallel for collapse(2) schedule(dynamic, 1)
for(int i=0; i<localWrappers.size(); i++)
for (int r = par.border; r < (localWrappers[i].cur.rows - par.border); r++)
for (int c = par.border; c < (localWrappers[i].cur.cols - par.border); c++) {
const float val = localWrappers[i].cur.at<float>(r,c);
if ( (val > positiveThreshold && (isMax(val, localWrappers[i].cur, r, c) && isMax(val, localWrappers[i].low, r, c) && isMax(val, localWrappers[i].high, r, c))) ||
(val < negativeThreshold && (isMin(val, localWrappers[i].cur, r, c) && isMin(val, localWrappers[i].low, r, c) && isMin(val, localWrappers[i].high, r, c))) )
// either positive -> local max. or negative -> local min.
localizeKeypoint(r, c, curSigmas[i], pixelDistancesNew[i], localWrappers[i]);
}
我收到了这个错误:
error: parallel loops with collapse must be perfectly nested
for(int i=0; i<localWrappers.size(); i++)
^
Error: the OpenMP "single" pragma must not be enclosed by the "for" pragma
阅读this,我认为错误是由于我们正在使用size()
这一事实。但是,我不知道如何为此获得const
或为此问题实施任何类型的解决方案。
有人可以帮我这个吗?