Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用opencv GpuMat在cuda上执行元素矩阵乘法?_C++_Opencv_Matrix - Fatal编程技术网

C++ 如何使用opencv GpuMat在cuda上执行元素矩阵乘法?

C++ 如何使用opencv GpuMat在cuda上执行元素矩阵乘法?,c++,opencv,matrix,C++,Opencv,Matrix,正如标题所说,我需要使用GpuMat在cuda上执行元素矩阵乘法。我期望的结果是 cv::Mat mul()函数为非gpu垫子提供。我可以使用内置函数,也可以为该操作编写kernell,但我不需要什么帮助,因为我是cuda新手 我曾尝试编写kernells来实现这一点,但迄今为止没有成功。我还尝试使用GPUMAT可用的多光谱,但该函数要求矩阵类型为CV_32FC2,但我需要矩阵类型为CV_32F。如果实际上无法对非CV_32FC2的矩阵执行该操作,则可以向我展示将矩阵类型从CV_32F更改为CV

正如标题所说,我需要使用GpuMat在cuda上执行元素矩阵乘法。我期望的结果是
cv::Mat mul()
函数为非gpu垫子提供。我可以使用内置函数,也可以为该操作编写kernell,但我不需要什么帮助,因为我是cuda新手

我曾尝试编写kernells来实现这一点,但迄今为止没有成功。我还尝试使用GPUMAT可用的多光谱,但该函数要求矩阵类型为CV_32FC2,但我需要矩阵类型为CV_32F。如果实际上无法对非CV_32FC2的矩阵执行该操作,则可以向我展示将矩阵类型从CV_32F更改为CV_32FC2并返回CV_32F的有效方法

如果有人有时间和意愿的话,我想再解释一下如何在CUDA的kernell中对GpuMat矩阵执行操作

我需要它来加速我的SSIM算法到尽可能低的值,因为0.01秒对我来说太多了


但是,在cuda内部的GpuMat CV_32F上执行该mul操作的任何类型的帮助都将非常有用。

可以使用CV::cuda::multiply执行元素级乘法。

您还可以研究NPP库:

可以使用cv::cuda::multiply执行元素级乘法。

您还可以研究NPP库: