Я новичок в 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
Может кто-нибудь помочь мне, как я могу решить эту проблему?