C ++指向OpenCV GpuMat的指针

时间:2015-10-04 04:57:41

标签: c++ opencv gpu

我在Win 8.1 64位计算机上使用带有VS2012 C ++ / CLI的OpenCV 3.0。

我想知道创建一个指向Gpumat的C ++指针的正确方法是什么。

目前,我定义了一些指针,例如:

cuda::GpuMat *d_gpuLoadFrame;
cuda::GpuMat *d_gpuLoadFrameClone;
cuda::GpuMat *d_gpuAnalysisFrame;
cuda::GpuMat *d_gpuGrayFrame;
cuda::GpuMat *d_gpuMaskFrame;
cuda::GpuMat *d_gpuFalseMaskFrame;

然后我自己分配指针,如:

d_gpuLoadFrame = new cuda::GpuMat();
d_gpuLoadFrameClone = new cuda::GpuMat();
d_gpuAnalysisFrame = new cuda::GpuMat();
d_gpuGrayFrame = new cuda::GpuMat();
d_gpuMaskFrame = new cuda::GpuMat();
d_gpuFalseMaskFrame = new cuda::GpuMat();
d_gputFrame = new cuda::GpuMat();

我看到一些奇怪的行为让我觉得这可能是错的。例如,我将标准Mat上传到其中一些并以各种方式克隆它们,看起来C ++指针正在丢失。

我是否需要做一些不同的事情来跟踪Gpumats,以便在我从一个函数移动到另一个函数时它们不被破坏?

1 个答案:

答案 0 :(得分:1)

无需以您显示的方式提供指针。只需在调用函数的实际参数中写入名称,就可以将GpuMat文件传递给函数。在功能方面,可以使用如下所示的参考访问它:
   GpuMat abc; foo(abc); //at the function definition void foo(GpuMat& abc) { ... }

相关问题