【问题标题】:C++ Pointer to OpenCV GpuMat指向 OpenCV GpuMat 的 C++ 指针
【发布时间】: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,以便在我从一个函数转移到另一个函数时它们不会被破坏?

【问题讨论】:

    标签: c++ opencv gpu


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2011-04-24
      • 2021-08-14
      • 1970-01-01
      相关资源
      最近更新 更多