C++ 调用 Python 脚本,并把 cv::Mat 类型传参到 Python 端
前言
查看了很多参考,最后找到一个完整的示例并且跑通,在开始这个任务之前,首先应该确保你的环境是没有问题的,比如:
- C++ 和 Python 之间可以传递简单类型的参数
- C++ 端独立通过 opencv 加载图像是没有问题的
- Python 端 import cv2 独立加载图像是没有问题的
具备上面这些条件后,可以参考下面的代码,将 cv::Mat 类型的参数传递到 Python 端。
代码
这部分主要参考 sending Mat。
C++ 端需要借助 numpy,所以也需要配置好 numpy 的头文件位置。
C++ code
#include "Python.h"
#include "numpy/arrayobject.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
// for the references to all the functions
PyObject *m_PyDict, *m_PyFooBar;
// for the reference to the Pyhton module
PyObject* m_PyModule;
int main() {