将PyObject *转换为C ++对象

时间:2016-01-18 08:37:20

标签: python c++ type-conversion boost-python pyobject

我有一个共享库(util.so),它将以下内容返回给python:

cv::Mat toCvMat(PyObject *ndArrayObj) {
    // return cv::Mat
}

我使用以下命令从我的python脚本调用方法:

的Python:

testMat = util.toCvMat(orig_frame_gray_img)

当我将它传递给我的其他测试库(test_library.so)时,它将作为PyObject *传递,如何在test_library.so中访问cv :: Mat?:

的Python:

test_library.process(testMat)

C ++

bool TestLibrary::Process( PyObject* pTestImg)
{
// How to get cv::Mat from pTestImg?
}

目前,我的test_library没有与util链接,它们是单独的.so文件。

1 个答案:

答案 0 :(得分:0)

基于http://yati-sagade.github.io/2013/05/11/numpy-boost-python/

NDArrayConverter

可以从https://github.com/yati-sagade/opencv-ndarray-conversion

找到所需的 private DoubleCollection _Dashes = new DoubleCollection { 1, 2 }; public DoubleCollection Dashes { get { return this._Dashes;} set { this._Dashes = value; RaisePropertyChanged(); } }