【发布时间】:2013-10-24 01:38:26
【问题描述】:
我有一个格式为 32FC1(一个通道的 32 位浮点)的像素数组
float * image; // my original image on the GPU
float * image_d;
int size = row*col*sizeof(float);
cudaMalloc((void**)&f_d, size);
cudaMemcpy(image_d, image, size, cudaMemcpyHostToDevice);
现在,我想在image_d 上从OpenCV 调用函数gpu::GaussianBlur,但这个函数只接受"GpuMat" 格式的参数。有什么方法可以将 GPU 上的 float 的 array 转换为 GpuMat?
我的意思是,我不希望在 CPU 和 GPU 之间发生任何内存复制。希望OpenCV函数可以直接在GPU上处理数组。
【问题讨论】: