まず、私は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:
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でその画像にアクセスする必要がありますが、どうすればこれを実行できますか?