Может ли кто-нибудь рекомендовать руководство или дать краткий обзор того, что связано с интеграцией OpenCV с более крупными программами на основе графического интерфейса? Каковы популярные способы сделать это?
В частности, обработка видео с помощью OpenCV при выполнении захвата/предварительного просмотра видео без использования HighGUI кажется особенно загадочной. Надеюсь, кто-то может это сделать.
Моя конкретная конфигурация выполняется либо с помощью Juce, либо с Qt в зависимости от того, что можно сделать. Кросс-платформенная вещь не является критичной - если в Windows есть удивительный способ сделать это, я могу убедиться. Необходима поддержка сообщества.
Я слышал, что HighGUI полностью предназначен для тестирования и непригодности для реальных приложений. Кто-то рекомендовал библиотеку VideoInput, но она экспериментальная.
Ключевые моменты ответов:
- Используйте Qt (потому что Qt отличная и имеет большое сообщество).
- Откройте новый поток для запуска cv:: VideoCapture в цикле и
emit
после захвата кадра. Используйте механизм Qtmsleep
, а не OpenCV. Итак, мы по-прежнему используем OpenGV highgui для захвата. -
Преобразование cv:: Mat в QtImage:
QImage qtFrame(cvFrame.data, cvFrame.size().width, cvFrame.size().height, cvFrame.step, QImage::Format_RGB888);
qtFrame = qtFrame.rgbSwapped();
-
Дополнительно: Render with GLWidget. Преобразование QtImage в GLFormat с помощью встроенного метода Qt:
m_GLFrame = QGLWidget::convertToGLFormat(frame);
this->updateGL();