gpt4 book ai didi

c++ - 我怎样才能访问 gpuMat 中的数据?

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:24 25 4
gpt4 key购买 nike

opencv document about gpu::orb

我想用 gpu::orb 获取图像的关键点,关键点的类型是 gpuMat。然后我尝试访问 gpuMat 的数据作为文档。

我尝试了下面的代码:(keypoints 是一个 gpumat)

cout<<keypoints.ptr<float>(3)[4]<<endl;

但是我得到了一个“Segmentation fault(core dumped)”。我知道我们不能修改 gpuMat 中的数据。那么我怎样才能得到 gpuMat 中的数据呢?

最佳答案

根据 OpenCV documentation cv::cuda::GpuMat是:

Base storage class for GPU memory with reference counting. Its interface matches the Mat interface with the following limitations:

  • no arbitrary dimensions support (only 2D)
  • no functions that return references to their data (because references on GPU are not valid for CPU)
  • no expression templates technique support

ptr将返回指向设备内存的指针。您不能直接从主机读取设备内存。为了在主机函数中使用数据,如 operator << ,需要使用 GpuMat::download(cv::Mat& m) 将数据复制到主机内存.

关于c++ - 我怎样才能访问 gpuMat 中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com