OpenCV 3.0 с Qt 5.5: значки панели инструментов и панель управления не показаны

Я создал OpenCV 3.0.0 с поддержкой Qt (Qt 5.5), чтобы попробовать некоторые из расширенных возможностей HighGUI:

cv::namedWindow("Main", CV_WINDOW_NORMAL | CV_WINDOW_KEEPRATIO | CV_GUI_EXPANDED);
cv::createButton("test", buttonCb);
while (1)
    cv::waitKey(1);

Я ожидал увидеть окно под названием "Main" с красивой панелью инструментов, а также панель управления с кнопкой "test" (см. Здесь).

То, что я получаю, это окно под названием "Главное" с панелью инструментов, где отсутствуют значки (см. Скриншот), а панель управления вообще не отображается.

Скриншот

Что здесь не так?

3 ответа

Если вы собираете opencv как STATIC lib, попробуйте собрать его как DLL, не только значки появляются, но и стиль GUI намного красивее. Если вы не обязаны использовать opencv в качестве статической библиотеки lib, это может быть решением. Панель управления не отображается по умолчанию, вы можете отобразить ее, щелкнув правой кнопкой мыши в главном окне и выбрав последнюю запись в меню, или просто используйте сочетание клавиш CTRL+P.

Вы пытались включить библиотеки GTK или VTK в свой файл CMake?

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

или же

find_package(GTK REQUIRED)
include(${GTK_USE_FILE})

Я только что встретил эту проблему и исправил. Даже вопрос старый, я хотел ответить.

Во-первых, эта проблема связана с QT. Поскольку функции OpenCV imshow, поддерживаемые Qt. Поэтому OpenCV необходимо установить с флагом cmake.-D WITH_QT=ONДаже если я продолжил в том же духе, cmake не смог найти Qt:

      --   GUI:                           GTK3
--     QT:                          NO
--     GTK+:                        YES (ver 3.24.33)
--       GThread :                  YES (ver 2.72.4)
--       GtkGlExt:                  NO
--     OpenGL support:              NO
--     VTK support:                 NO

Для решения этой проблемы также необходима установка Qt. Даже я установил Qt, эта проблема все еще сохраняется. Причина в том, что OpenCV не может найти местоположение Qt. Обычно Qt устанавливается в Qt, но в моем случае он находился в другом месте. я просто уточнилQt6_DIRкак-D Qt6_DIR=/home/cvlab/Qt/6.4.3/gcc_64/lib/cmake/Qt6(если вы используете Qt5, вам нужно указатьQt5_DIRсоответственно):

      --   GUI:                           QT6
--     QT:                          YES (ver 6.4.3 )
--       QT OpenGL support:         YES (Qt6::OpenGL )
--     GTK+:                        YES (ver 3.24.33)
--       GThread :                  YES (ver 2.72.4)
--       GtkGlExt:                  NO
--     OpenGL support:              YES (/usr/lib/x86_64-linux-gnu/libOpenGL.so /usr/lib/x86_64-linux-gnu/libGLX.so /usr/lib/x86_64-linux-gnu/libGLU.so)
--     VTK support:                 NO

Итак, теперь он может найти Qt. Я только что переустановил OpenCV и получил функции графического интерфейса.

Также в видео есть ответ здесь

Другие вопросы по тегам