我有一个 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);
}
传递基本数据类型,但我不知道如何使用 GPU 内存上的指针来实现这一点(在我的例子中gpuarray.gpudata
)。我的理解是gpuarray.gpudata
根据产生一个指针dtype
of the gpuarray
但在GPU上。
所以在 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)
在 C++ 方面我必须使用cv:cuda::GpuMat
,那么我如何从gpuarray.gpudata
to cv:cuda::GpuMat
反之亦然?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)