使用opencv3 cuda绑定执行像素操作

时间:2016-02-04 16:11:27

标签: opencv

我想知道cv :: cuda命名空间中是否有任何方法可以使用GpuMat执行像素操作。通常我会做

float foo = bar.at<float>(x,y);

然而,使用GpuMat,我找不到它的等价物。我收到的编译错误只是说

&#34; class cv :: cuda :: GpuMat没有以&#34;

命名的成员

1 个答案:

答案 0 :(得分:1)

GpuMat保存GPU内存中的数据。因此无法从主机访问它。这就是为什么你没有找到任何像素访问操作。

  • 对于每像素访问,您应首先下载GpuMat对象,执行每像素CPU操作并将其上传回GPU内存。
  • 无论如何,如果您访问极少数像素,则可以使用某些cudaMemCopy *功能下载/上传数据。在这种情况下,您需要从GpuMat::dataGpuMat::step
  • 手动计算地址