我是 Python 新手,我想在 Python 模块中调用 C++ 函数。在阅读了关于 ctype、cython、swig 等的信息后,我决定使用 boost: python 来调用两个简单的 c++ 函数。
我写了这个 c++ 函数:
const char* hi()
{
return "hello world!";
}
Mat read_image()
{
Mat s = imread("logo.png");
/*
* Some preprocessing on image
*
*/
return (s.data);
}
BOOST_PYTHON_MODULE(hello)
{
def("hi", hi);
def("read_image", read_image);
}
这是我的python代码:
import hello
import cv2
import numpy as np
print(hello.hi())
new_image = hello.read_image()
第一个函数 (hi) 可以正常工作,但是对于想要对图像进行一些预处理的第二个函数,它不起作用并显示此错误:
new_image = hello.read_image() TypeError: No to_python (by-value) converter found for C++ type: cv::Mat
谁能帮我解决这个问题?