1

我正在使用带有 VS 2010 的 OpenCv 2.4.6 库。我在 mypenCv 上用笔记本电脑编译了 O Cuda 4.2.9,它工作正常。现在我想将 1.5 与 cv::GpuMat 相乘。那么我如何在 VS 2010 中使用 OpenCv 2.4.6 来做到这一点?cv::Mat 很容易。像例子

cv::Mat mat =cv::imread("readImg.tiff",CV_LOAD_IMAGE_GRAYSCALE);
简历::GpuMat gpuMat(垫); cv::Mat newMat=mat*(1+0.5);

现在我如何在 OpenCv 中使用 cv::gpu::GpuMat gpuMat 进行这个数学运算?

4

2 回答 2

4

您可以使用convertTo方法:

cv::GpuMat gpuMat(mat);
gpuMat.convertTo(gpuMat, gpuMat.type(), 1.5); // gpuMat = 1.5 * gpuMat
于 2013-09-18T12:50:28.167 回答
0

您可以使用NVIDIA 性能基元 (NPP)

//You need to include npp.h
float c[] = {0.25, 0.5, 0.75};
NppiSize ns;
ns.height = src.rows;
ns.width = src.cols;
//for CV_32FC3
nppiMulC_32f_C3R(src.ptr<Npp32f>(), static_cast<int>(src.step), c, dst.ptr<Npp32f>(), static_cast<int>(dst.step), ns);
于 2019-05-03T22:26:03.893 回答