OpenCV的GUI部分做的太简单了 复杂的功能难以实现 整合其他库时接口兼容性等问题多多 真费事 写个手记以备用
转载请注明http://blog.csdn.net/boksic 如有疑问欢迎留言
安装和配置工程
安装wxwidgets(http://wiki.wxwidgets.org/Installing_and_configuring_under_Ubuntu)
sudo apt-get install libwxgtk2.8-dev libwxgtk2.8-dbg
安装opengl
sudo apt-get install freeglut3-dev libglew1.5-dev
为链接器添加链接库选项
-lGLU -lglut
整合wxWidgets
编译时出现错误
/usr/include/wx/platform.h:196:22: fatal error: wx/setup.h: そのようなファイルやディレクトリはありません
编译选项的问题
给 compiler加上 `wx-config --cxxflags`
给 linker加上`wx-config --libs --gl-libs`
代码整合
首先 在运行wxWidgets的主循环函数时如何同时运行opencv或opengl的实时性函数(如摄像头捕获)
参考http://wiki.wxwidgets.org/Making_a_render_loop的文章
当中最好的方法是采用idle events
首先要定义好显示opencv或opengl的面板派生类,本例中用的是BasicDrawPane和BasicGLPane(会在后面讲到)
BasicDrawPane* drawPane;
BasicGLPane *glPane;
其中drawPane是用来绘制OpenCV数据,glPane是用来绘制OpenGL数据。
在主frame的初始化函数中添加面板的显示函数
在主程序函数的onIdle中添加绘图函数
如果还要添加其他的实时显示 按照这个模式修改如下地方即可
class MyApp: public w