【发布时间】:2017-06-06 03:19:43
【问题描述】:
我在 Win 8.1 64 位机器上使用 OpenCV 3.0 和 VS2012 C++/CLI。
我想知道创建指向 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++ 指针正在丢失。
我是否需要做一些不同的事情来跟踪 Gpumat,以便在我从一个函数转移到另一个函数时它们不会被破坏?
【问题讨论】: