将numpy数组的python元组转换为cv :: Mat cpp的向量

时间:2017-03-21 05:40:05

标签: python c++ opencv

我正在尝试在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的一些问题显然是我无法弄清楚的。

1 个答案:

答案 0 :(得分:1)

根据您的代码here来判断,fromTupleToVector的参数应该是以小写字母开头的inputImage,它是getStitchingParams的参数,并且类型为PyObject *。