C++ 如何使用opencv GpuMat在cuda上执行元素矩阵乘法?
正如标题所说,我需要使用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
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库: