我构建了支持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)。
我得到的是一个名为“主”的窗口,它有一个工具栏,上面的图标不见了(见截图),控制面板也根本没有出现。
怎么了?
3条答案
按热度按时间5vf7fwbs1#
你试过在CMake文件中包含GTK或VTK库吗?
或
gg0vcinb2#
如果你把opencv编译成静态库,试着把它编译成DLL,不仅图标会出现,而且GUI的风格也会漂亮得多。如果你不是绝对必须把opencv编译成静态库,这可能是一个解决方案。控制面板默认不显示,你可以通过右键单击主窗口并选择菜单的最后一个条目来显示它,或者只使用快捷键CTRL+ P。
xkftehaa3#
我刚遇到这个问题并解决了。即使这个问题是旧的,我想回答。
首先,这个问题与QT有关。因为OpenCV imshow Qt支持的功能。所以OpenCV需要安装cmake标志
-D WITH_QT=ON
即使我继续这样做,cmake也无法找到Qt:这个问题也需要安装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
):所以现在它能够找到Qt。我只是重新安装OpenCV并获得GUI功能。
此外,视频包括答案是here