我试图使用Cython将一些C++类和函数包装到Python中.到目前为止,我已经包装了2个类,现在我想要包装一个函数.
函数的签名是
std::map<std::string, std::vector<PyObject*>> analyze(PyObject* img, LandmarkDetector::CLNF& clnf_model, LandmarkDetector::FaceModelParameters& params);
我已成功包装CLNF和FaceModelParameters类,我在包装此analyze函数时遇到问题.
该函数处理PyObject*s因为它处理opencv,我希望能够在语言之间轻松传递它们.我正在使用这些函数来执行cv::Pointpython对象之间和python Mat之间的转换cv::Mat.
这是我的pyx文件:
from libcpp.vector cimport vector
from libcpp.map cimport map
from libcpp.string cimport string
from cpython.ref cimport PyObject
from cython.operator cimport dereference as deref
cdef extern from "LandmarkDetectorModel.h" namespace "LandmarkDetector":
cdef cppclass CLNF:
CLNF(string) except +
cdef extern from "LandmarkDetectorParameters.h" namespace "LandmarkDetector":
cdef cppclass FaceModelParameters:
FaceModelParameters(vector[string] &) except +
cdef class PyCLNF:
cdef CLNF …Run Code Online (Sandbox Code Playgroud)