gpt4 book ai didi

c++ - 如何在 OpenCV C++ 中用不同的值填充每个 cv::Mat 列?

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

我正在研究 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 或其他方法可以在更短的时间内完成。

最佳答案

GpuMat 提供了大部分 same functionality作为 cv::Mat。您可以使用 col() 创建子矩阵并使用 setTo() 来填充数据:

cv::gpu::GpuMat gm(3,3,CV_8UC1);
for (int i = 0; i < gm.cols; ++i)
{
auto column = gm.col(i);
auto val = cv::Scalar(i + 1); // This value is just to reflect your example.
column.setTo(val);
}

关于c++ - 如何在 OpenCV C++ 中用不同的值填充每个 cv::Mat 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17732170/

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