Ошибка при вызове функции c ++ из python - PullRequest
0 голосов
/ 24 сентября 2019

Я новичок в Python и хочу вызвать функцию c ++ внутри модуля python.после прочтения о 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 () Ошибка типа: не найден конвертер to_python (по значению) для типа C ++: cv :: Mat

Может кто-нибудь помочь мне, как я могу решить эту проблему?

...