如何使用opencv GpuMat在cuda上执行逐元素矩阵乘法?
How to perform element-wise matrix multiplication on cuda using opencv GpuMat?
>正如标题所说,我需要使用 GpuMat 在 cuda 上执行逐元素矩阵乘法。我想要的结果是cv::Mat mul()
函数为非 GPU 垫提供。我可以使用内置函数,也可以为该操作编写 kernell,但我几乎不需要帮助,因为我是 cuda 的新手。
我都准备好了编写内核来执行它,但到目前为止还没有成功。我也尝试使用可用于 GpuMats 的 mulSpectrums,但该函数要求矩阵是类型 CV_32FC2但我需要我的矩阵是CV_32F的。 如果实际上没有办法在不CV_32FC2的矩阵上执行该操作,那么您可以向我展示将矩阵类型从 CV_32F 更改为 CV_32FC2 并返回CV_32F的有效方法。
如果有人有时间和意愿,我希望得到额外的解释,了解如何在 CUDA 内核中对 GpuMat 矩阵执行操作。
我需要它将我的 SSIM 算法加速到尽可能低的值,因为 0.01 秒对我来说是很多 atm 的方式。
但是,在 cuda 内部的 GpuMat CV_32F 上执行该 mul 操作的任何类型的帮助都将很棒。
元素乘法可以使用 cv::cuda::multiply 执行。 https://docs.opencv.org/master/d8/d34/group__cudaarithm__elem.html
您还可以研究NPP库: https://docs.nvidia.com/cuda/npp/group__image__mul.html
相关文章:
- 对字符数组中的元素执行逐位操作
- C++如何乘以包含 std::variant 元素的向量的迭代器?正在执行迭代器类型的转换?
- 无法在构造函数中执行设置元素插入
- 如何使用opencv GpuMat在cuda上执行逐元素矩阵乘法?
- 插入到映射中的元素在函数执行后清除
- 如何在C 对向量的第二个元素上执行较低的操作
- 如何在多维数组中搜索单个行,然后对某些行中的每个单个元素执行计算
- 在remove_if删除元素之前,我可以滥用谓词对元素执行操作吗
- 将未使用的元素添加到C/C 结构加快并减慢代码执行
- 如何使用 CUDA 正确实现每个元素上的执行函数
- 在每种情况下都执行“std::set”对元素进行排序
- 如何在执行/编译(c++)时将元素添加到数组/向量中
- 如何在每个块的元素多于线程的数组上执行并行扫描
- 如何在Armadillo中的矩阵中执行元素布尔运算
- 如何为STL容器的元素强制执行类似主键约束的行为
- 每次在std::list容器中插入元素时,都会执行动态分配
- 如何在两个容器的元素之间执行成对二进制操作?
- 在执行操作时将元素处理到内存块的速度
- 如何为数组元素执行所需的搜索过程
- 使用数组元素执行计算