【发布时间】:2016-02-03 02:13:48
【问题描述】:
我正在研究 OpenCV GPU。
我想知道,我们可以直接在 C++ 代码中访问GpuMat 元素吗?
对这件事知之甚少是不可能的。
我正在将数据从 GPU 内存下载到 CPU 内存,然后使用“at”运算符访问元素。
但我需要这样的东西: 对于 2x3 矩阵: 元素应填写如下:
Mat abc(0 , 0) = 1;
Mat abc(0, 1) = 2;
Mat abc (0 , 2) = 3;
Mat abc(1 , 0) = 1;
Mat abc(1, 1) = 2;
Mat abc (1 , 2) = 3;
即, 用不同的值填充每一列。 在 for 循环中使用“at”运算符非常耗时。 是否有任何 API 或其他方式可以在更短的时间内完成。
【问题讨论】:
-
Using gpu::Mat in Opencv C++ 的可能重复项
-
@Aurelius 你能解释一下你的评论吗...
-
链接的问题还询问如何操作
cv::GpuMat中的数据。那里的答案建议setTo(),这正是您想要的。 -
对。你应该能够创建一个投资回报率并填充它。
-
at<>()很慢。在docs.opencv.org/doc/tutorials/core/how_to_scan_images/… 使用高效的图像扫描技术。它发现它比at()快 5 倍以上。我认为@Aurelius 有正确的方法。