Re: [ctypes-users] Returning propper pyobjects.
Brought to you by:
theller
From: Thomas H. <th...@ct...> - 2007-05-10 20:24:52
|
tarjei schrieb: > Hi, I've written a short c-function to convert an image in OpenCV (a > nice image analysis library) to a PyArray_Object * , and now I seek > suggestions on how to import this through ctypes (the other option being > to wrestle with SWIG). > > The library in question is allready imported through cTypes (not by me) > and now I'm trying find out how to map my function. > > The function signature looks like this: > PyArrayObject * cvImageToPyArray(IplImage * image, int channel); > > If someone could point me in the correct direction wrt to how to define > the returntype I would be greatfull. Short answer: For calling funtions that use the Python calling convention (do NOT release the GIL during the function call, check PyErr_Occurred() after the function has returned) you must use the PyDLL object to load the library. Then, you have to set the .restype attribute of the funtion object to py_object; this will handle the refcount correctly (assuming that the funtion returns a new reference). > Even better would be some sample code doing the PyArrayObject mapping. Sorry, no time for that. Thomas |