У меня есть общая библиотека (util.so), которая возвращает в Python следующее:
cv::Mat toCvMat(PyObject *ndArrayObj) {
// return cv::Mat
}
Я вызываю метод из моего скрипта Python, используя:
Python:
testMat = util.toCvMat(orig_frame_gray_img)
Когда я передаю это моей другой тестовой библиотеке (test_library.so), она передается как PyObject *, как мне получить доступ к cv :: Mat в моем test_library.so ?:
Python:
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
Других решений пока нет …