小编Alf*_*ich的帖子

使用 openmp 并行化 for 循环并替换 push_back

我想并行化以下代码段,但我是 openmp 和创建并行代码的新手。

std::vector<DMatch> good_matches;
for (int i = 0; i < descriptors_A.rows; i++) {
   if (matches_RM[i].distance < 3 * min_dist) {
      good_matches.push_back(matches_RM[i]);
   }
}
Run Code Online (Sandbox Code Playgroud)

我试过了

std::vector<DMatch> good_matches;
#pragma omp parallel for
for (int i = 0; i < descriptors_A.rows; i++) {
   if (matches_RM[i].distance < 3 * min_dist) {
      good_matches[i] = matches_RM[i];
   }
}
Run Code Online (Sandbox Code Playgroud)

std::vector<DMatch> good_matches;
cv::DMatch temp;
#pragma omp parallel for
for (int i = 0; i < descriptors_A.rows; i++) {
   if (matches_RM[i].distance < 3 * min_dist) { …
Run Code Online (Sandbox Code Playgroud)

c++ parallel-processing for-loop openmp

5
推荐指数
2
解决办法
5119
查看次数

标签 统计

c++ ×1

for-loop ×1

openmp ×1

parallel-processing ×1