首先,我不是 python 程序员,所以请原谅我的愚蠢错误。
在 C++ 中,我有一个来自 MyClass 的公共方法,它动态创建图像并返回其大小。
int MyClass::getImg(uchar *uimg[])
{
int size = variable_size;
*_uimg = new uchar[size];
memcpy(*_uimg, imageOrigin->data(), size);
uimg = _uimg;
return size;
}
和升压:蟒蛇:
BOOST_PYTHON_MODULE(mymodule)
{
class_<MyClass>("MyClass")
.def("getImg", &MyClass::getImg)
;
}
当我尝试在 python 中使用它时:
def getImg():
img = c_char_p()
size = mymodule.MyClass.getImg(byref(img))
我收到此错误:
Boost.Python.ArgumentError: Python argument types in
MyClass.getImg(MyClass, CArgObject, CArgObject)
did not match C++ signature:
getImg(class MyClass {lvalue}, unsigned char * *)
在python中我也尝试过声明
img = POINTER(c_ubyte)()
但这也没有帮助。
我用谷歌搜索了几个小时,但没有想出任何好的解决方案。
我只需要在 python 中访问该图像,我该如何完成?