Wiz*_*ard 5 python opencv pycuda
我有一个 pycuda gpuarray,我想将其提供给 opencv cuda 函数。据我了解,目前 opencv 3 cv::cuda 模块没有 python 绑定。所以我尝试编写自己的 python 包装器来访问 cv::cuda 函数(在我的例子中是 cv::cuda::HOG 类)。
不幸的是,当涉及到数据交换的核心部分时,我遇到了障碍。我知道你可以使用类似的结构
static PyObject* my_function(PyObject* self, PyObject* args)
{
int test;
PyArg_ParseTuple(args, "t", &test);
}
Run Code Online (Sandbox Code Playgroud)
传递基本数据类型,但我不知道如何使用 GPU 内存上的指针来实现这一点(在我的例子中gpuarray.gpudata)。我的理解是gpuarray.gpudata根据gpu 上的但dtype产生一个指针。gpuarray
所以在 python 方面,事情看起来像这样:
input_gpu = gpuarray.zeros(shape=(3,3), dtype=numpy.float32)
output_gpu = gpuarray.zeros(shape=(3,3), dtype=numpy.float32)
my_function(input.gpudata, output.gpudata)
Run Code Online (Sandbox Code Playgroud)
在 C++ 方面,我必须使用cv:cuda::GpuMat,那么如何从gpuarray.gpudata到cv:cuda::GpuMat,反之亦然?
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |