我正在使用OpenCv 2.4.6 Library和VS 2010.我在mypenCv这个带有笔记本电脑的库上编译了O Cuda 4.2.9并且它工作正常。现在我想用cv :: GpuMat乘以1.5。那么我如何在VS 2010中使用OpenCv 2.4.6呢? cv :: Mat很容易。 像例子
cv :: Mat mat = cv :: imread(“readImg.tiff”,CV_LOAD_IMAGE_GRAYSCALE);
cv :: GpuMat gpuMat(mat);
cv :: Mat newMat = mat *(1 + 0.5);
现在我如何在OpenCv中使用cv :: gpu :: GpuMat gpuMat进行这种mathamatical操作?
答案 0 :(得分:3)
您可以使用convertTo
方法:
cv::GpuMat gpuMat(mat);
gpuMat.convertTo(gpuMat, gpuMat.type(), 1.5); // gpuMat = 1.5 * gpuMat
答案 1 :(得分:0)
您可以使用NVIDIA Performance Primitives (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);