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 и получил функции графического интерфейса.
Также в видео есть ответ здесь