我有一个带有float*
字段的C结构。它被认为是描绘图像的浮点数组。 C结构是我通过SWIG包装的库的一部分。差不多可以了。我可以导入模块并创建该结构(和其他结构)的实例。
结构看起来像这样:
struct MyStruct {
int width;
int height;
float* data;
};
我想用我的Python代码填充此数组
import Foo
d = Foo.MyStruct()
d.data = numpy.zeros(640*480)
开箱即用。我收到TypeError
的说明:
in method 'MyStruct_data_set', argument 2 of type 'float *'
在称为_swig_setattr_nondynamic
的SWIG内部方法中
我想我必须对指针做一些事情,以明确它是任意大小的浮点数组。
要使上面的代码正常工作,我应该做什么,应该在模块.i
文件中进行?
/ edit:根据要求,.i
文件不超过此内容:
%module Foo
%{
#include <Foo.h>
%}
%include Foo.h
相当基本。我对SWIG完全陌生。