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

就可以解决。

05-11 16:56