OpenCV 3.0 with Qt 5.5:未显示图标和控制面板

hlswsv35  于 2023-10-24  发布在  其他
关注(0)|答案(3)|浏览(110)

我构建了支持Qt的OpenCV 3.0.0(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”按钮的控制面板(参见here)。
我得到的是一个名为“主”的窗口,它有一个工具栏,上面的图标不见了(见截图),控制面板也根本没有出现。

怎么了?

5vf7fwbs

5vf7fwbs1#

你试过在CMake文件中包含GTK或VTK库吗?

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

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

gg0vcinb2#

如果你把opencv编译成静态库,试着把它编译成DLL,不仅图标会出现,而且GUI的风格也会漂亮得多。如果你不是绝对必须把opencv编译成静态库,这可能是一个解决方案。控制面板默认不显示,你可以通过右键单击主窗口并选择菜单的最后一个条目来显示它,或者只使用快捷键CTRL+ P。

xkftehaa

xkftehaa3#

我刚遇到这个问题并解决了。即使这个问题是旧的,我想回答。
首先,这个问题与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并获得GUI功能。
此外,视频包括答案是here

相关问题