我正在尝试在python和c ++之间进行通信。以下是我正在使用的主要源代码的链接:https://github.com/rajatsaxena/pyImageListToVectorMatcpp,其中大部分灵感来自此处https://github.com/Algomorph/pyboostcvconverter。我希望能够在python端获取一个numpy数组元组(OpenCV图像),c ++中的进程然后最终返回一个numpy数组元组(OpenCV图像)。
但我开始收到此错误:
In function ‘PyObject* pbcvt::getStitchingParams(PyObject*)’:
/home/**/pyImageListToVectorMatcpp/src/python_module.cpp:96:69: error: cannot convert ‘std::vector<cv::Mat>’ to ‘PyObject* {aka _object*}’ for argument ‘1’ to ‘std::vector<cv::Mat> pbcvt::fromTupleToVector(PyObject*)’
vector<Mat> InputImage = pbcvt::fromTupleToVector(InputImage);
^
/home/**/pyImageListToVectorMatcpp/src/python_module.cpp: In function ‘void pbcvt::init_module_pbcvt()’:
/home/**/pyImageListToVectorMatcpp/src/python_module.cpp:459:34: error: too few arguments to function ‘std::vector<cv::Mat> pbcvt::fromTupleToVector(PyObject*)’
pbcvt::fromTupleToVector();
^
In file included from /home/**/pyImageListToVectorMatcpp/src/python_module.cpp:4:0:
/home/**/pyImageListToVectorMatcpp/include/pyImageListToVectorMatcpp.hpp:73:13: note: declared here
vector<Mat> fromTupleToVector(PyObject* o);
^
make[2]: *** [CMakeFiles/pbcvt.dir/src/python_module.cpp.o] Error 1
make[1]: *** [CMakeFiles/pbcvt.dir/all] Error 2
make: *** [all] Error 2
这是因为我的元组到向量转换器脚本src/pyboost_cv2_converter.cpp
的一些问题显然是我无法弄清楚的。
答案 0 :(得分:1)
根据您的代码here来判断,fromTupleToVector的参数应该是以小写字母开头的inputImage,它是getStitchingParams的参数,并且类型为PyObject *。