2011-10-18 53 views
0

我每天使用OpenCV及其Python包装来生成计算机视觉算法。使用OpenCV将C函数与Swig Python结合使用

对于一些复杂的功能,我们需要保留C版本,这样可以减少计算时间并且更容易重用。

这样,我想绑定使用像iplimage这样的opencv结构的C函数来在Python中使用它们。你能给我一些提示吗?我实际上并不知道从哪里开始。

这里是我包含iplimages的结构。

typedef struct{ 
    int nbBlobs; 
    IplImage *labels; 
    IplImage *contours; 
}ccl_conf_t; 

这里是我的功能propotypes:

int ccl_init(ccl_conf_t *conf, IplImage *frame); 
void ccl_unInit(ccl_conf_t *conf); 
int ccl_label(ccl_conf_t *conf, IplImage *frame, int option); 

我将是你可以给我任何暗示感激!

回答

0

在C中制作Python可加载模块非常简单。从这里开始:http://docs.python.org/c-api/

很容易从Python源代码本身取一个小例子,扩展到自己的使用范围。查看Python源代码的'Modules'目录。

+0

Hummm。 。 。感谢您的答案,但似乎你正在谈论嵌入Python到C代码?我的目标恰恰相反!我有一个C函数,它应该用作Python函数!我错了吗? – jlengrand

+0

糟糕。我想我有错误的联系。我正在寻找“用C/C++扩展Python”。查看http://docs.python.org/extending/extending.html#a-simple-example以获取创建可从Python调用的C模块的简单示例。 –

+0

感谢您的信息。我会尽力而为,让你知道:)。什么让我有点害怕是我想要做的事情已经在Opencv的python绑定中执行了。我根本看不到我能如何使用它。 – jlengrand