У меня есть структура C с полем float*
.Он считается массивом поплавков, которые изображают изображение.Структура 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 с именем _swig_setattr_nondynamic
Я полагаю, что мне придется что-то сделать с указателем, чтобы сделатьПонятно, что это массив с плавающей точкой произвольного размера.
Что мне нужно сделать, предположительно в файле модуля .i
, чтобы код, приведенный выше, работал?
/ edit:в соответствии с просьбой, файл .i
не более того:
%module Foo
%{
#include <Foo.h>
%}
%include Foo.h
Довольно простой.Я совершенно новичок в SWIG.