0

我是 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

谁能帮我解决这个问题?

4

0 回答 0