opencv默认安装是不支持opengl的。
也就是如果调用一个支持opengl的窗口会报错,no opengl support
ubuntu下安装opencv,支持opengl要在cmake的时候,加入-D WITH_OPENGL=ON
就行,
但是我在安装opencv-3.1.0的时候加上这个命令仍然报错,
所以参考了博客https://www.jianshu.com/p/11d279f1bf2c
原来是机器里装了gtk3,所以HAVE_GTKGLEXT==FALSE
,机器里恰巧又没有QT,所以没有去检查OpenGL项目。
看来是gtk3与gtkglext不兼容,为了支持opengl,只能使用gtk2了。在cmake的时候,再增加一个选项-D WITH_GTK_2_X=ON
就OK了。下面是cmake的输出结果:
就可以了。
安装会有报错
错误:/home/usrname/opencv-3.1./modules/cudalegacy/src/graphcuts.cpp::: error: ‘NppiGraphcutState‘ has not been declared typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat ^ /home/usrname/opencv-3.1./modules/cudalegacy/src/graphcuts.cpp::: error: ‘NppiGraphcutState‘ does not name a type operator NppiGraphcutState*() ^ /home/usrname/opencv-3.1./modules/cudalegacy/src/graphcuts.cpp::: error: ‘NppiGraphcutState‘ does not name a type NppiGraphcutState* pState; .......
参考:https://blog.csdn.net/tmosk/article/details/72780531
就可以解决。