void * C array to a Numpy array using Swig
Travis E. Oliphant
oliphant.travis at ieee.org
Thu Jan 12 18:26:28 EST 2006
> Hello People
> I hope I am On Topic. Anyways, here is my problem. Any insights would
> be really appreciated.
Posting to the numpy-discussion at lists.sourceforge.net list would help
generate more responses, I think.
> I have wrapped a C IO module using SWIG -> Python Module. Suppose the
> name of the module is "imageio" and the reader function from the file
> is image_read() which returns an object ( "filled" C structure) with a
> lot of members.
> a = imageio.image_read("testfile.image")
> Now a is the object which contains pointer to data of the image. ( void
> * pdata). ( a also contains the datatype which I need to typecast to
> get the data pointed by pdata). My question is how to access the data
> pointed by pdata in *Python*.
Yes, you are right that you need to use typemaps. It's been awhile
since I did this kind of thing, but here are some pointers.
1) Look at Michael Sanner's typemaps at
Except for the CHAR version, these should work for NumPy by replacing
Numeric/arrayobject.h with numpy/arrayobject.h
2) In full scipy there are typemaps for numpy arrays in
This should help you get started with some examples. Typemaps can be a
little confusing at first, but they do make your interface a bit nicer.
More information about the Python-list