Я пишу изображение манипулятора для проекта компьютерного зрения.Весь GUI я решил сделать в Python и реализацию алгоритмов на C ++.Мой класс C ++ Image имеет функцию toQImage, которая должна возвращать результат, который будет представлен в GUI.Проблема в том, что я не могу вернуть объект QImage в python, используя Boost, получаю кучу ошибок и не могу понять, что я делаю неправильно.
Я прочитал, что в таком случае я должен использовать return_value_policy:
BOOST_PYTHON_MODULE(image_manipulator) {
class_<Image, boost::noncopyable>("Image",no_init)
.def("toQImage", &Image::toQImage, return_value_policy<copy_const_reference>())
.def("height", &Image::height)
.def("width", &Image::width)
;
class_<JpegImage, bases<Image>, boost::noncopyable>("JpegImage",
init<char *>())
;
}
Здесь сама функция:
const QImage& Image::toQImage() {
return img; // const QImage& img = QImage();
}
Она компилируется, но при выполнении возвращает:
TypeError: No to_python (by-value) converter found for C++ type: QImage
Я погуглил проблему, но предложения запуталисьмне даже больше.Обходные пути и более простые решения приветствуются!