2011-10-18 58 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