«Перевести» объект C ++ QImage в Python с использованием библиотеки Boost - PullRequest
0 голосов
/ 26 мая 2019

Я пишу изображение манипулятора для проекта компьютерного зрения.Весь 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

Я погуглил проблему, но предложения запуталисьмне даже больше.Обходные пути и более простые решения приветствуются!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...