我有一個OpenCV項目混合Python和C.在更改爲OpenCV 2.1後,我對C代碼的調用不再工作,可能是因爲OpenCV不再使用SWIG綁定。SWIG Python綁定到與OpenCV 2.1不兼容的本地代碼
從Python的,我是用來調用具有以下原型C函數:
int fast_support_transform(CvMat * I, CvMat * N,...);
現在,我得到以下錯誤:
TypeError: in method 'fast_support_transform', argument 1 of type 'CvMat *'
C代碼是從庫中創建由我使用SWIG來生成Python界面。我不確定,但我認爲OpenCV現在正在使用ctypes,並且此代碼無法將CvMat指針發送到我的本機代碼。
你知道這個問題的快速解決嗎?任何提示都歡迎。
UPDATE:訪客,請注意這個問題是過期。 OpenCV中的Python支持現在非常成熟。現在,默認情況下,CvMat
被表示爲Numpy數組。
嘗試將'cvMat's轉換爲'cvArr's,然後使用cvArr *作爲參數? cvMat來自cvArr。所以,一旦你得到了cvArr指針,你可以將它轉換回cvMat並使用它。或者另一種選擇是回到最後一個工作版本的OpenCV。 – askmish 2012-10-18 18:12:06