小编J. *_*Doe的帖子

从c ++函数Cython返回包含PyObject的复杂对象

我试图使用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)

c++ python cython cythonize

6
推荐指数
1
解决办法
728
查看次数

标签 统计

c++ ×1

cython ×1

cythonize ×1

python ×1