使用cython包装C++项目
问题描述:
我想使用cython在python代码中使用包装一个C++项目。主类具有其他本地类的实例。我必须为每个已经使用过的类编写pyx文件,或者只包装主类就足够了吗?使用cython包装C++项目
预先感谢您!
编辑:
这里是我想包装代码: https://github.com/vojirt/asms/tree/master/src 我想换colortracker功能,其他类使用的这个类,我需要包装它们作为好?
答
感谢DavidW,问题解决了。我用这个代码包装CV ::垫:
cdef extern from "opencv2/core/core.hpp" namespace "cv":
cdef cppclass Mat:
Mat() except +
void create(int, int, int)
void* data
它是只需要包装在colortracker类的公共功能直接使用类和函数。
我认为这个问题需要更多的细节来回答,但是:您只需要打包您想要从Python中使用的内容,而无需包装实现细节。 – DavidW
如果代码中使用了主类包含的类,该怎么办?例如,如果主函数返回或获取其中一个类的输入。 –
看看你的例子,如果你想使用需要它们的函数,你可能必须包装'ColorTracker','BBox'和'cv :: Mat'。你可能可以将一个numpy数组转换成Cython中的'cv :: Mat',而不是使用包装类。 – DavidW