【问题标题】:Search value in OpenCV vector在 OpenCV 向量中搜索值
【发布时间】:2016-06-13 00:03:26
【问题描述】:

我在文档中找不到任何实现,这将显示我如何检索向量(1d 矩阵)中具有匹配值的值的索引。 最接近的例子是:

Mat b;
Mat a = b == 5;

所以这应该给我一个布尔矩阵。然后我可以用它来提取等于 5 的值的索引。有没有更高效的方法?它应该将向量中的所有值并行发送到 GPU,然后返回唯一(或第一个)等于 5 的值的索引。 它不应该是“算法”框架中的任何东西,例如:

std::find(...);

只对并行 GPU 解决方案感兴趣。

【问题讨论】:

    标签: c++ opencv parallel-processing gpgpu stl-algorithm


    【解决方案1】:

    可以通过变换归约轻松完成。

    首先将匹配的向量元素转换为其索引,将不匹配的元素转换为一个大数字,比如向量大小。

    然后在归约阶段找到最小值,即数组中第一个匹配元素的索引。

    这是一个 O(log(n)) 算法,可以由 GPU 高效地完成。

    您可以通过推力或编写自己的内核来实现它。

    https://thrust.github.io/doc/group__transformed__reductions.html

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 1970-01-01
      • 2020-12-20
      • 2016-04-01
      • 1970-01-01
      • 2016-08-28
      • 2017-07-22
      • 2020-02-27
      相关资源
      最近更新 更多