将 PyObject* 转换为C++对象

Converting PyObject* to C++ Object

本文关键字:C++ 对象 转换 PyObject      更新时间:2023-10-16

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

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

我使用以下方法从我的 python 脚本中调用该方法:

蟒:

testMat = util.toCvMat(orig_frame_gray_img)

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

蟒:

test_library.process(testMat)

C++

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

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

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

NDArrayConverter cvt;
cv::Mat m;
m = cvt.toMat(pTestImg);

所需的NDArrayConverter可以从 https://github.com/yati-sagade/opencv-ndarray-conversion 中找到