opencv如何隐藏窗口
2013-12-18 00:26
1521 查看
今天处理视频的时候想将opencv中的窗口隐藏起来,以便进行多线程的处理。
在opencv中可以通过cvGetWindowHandle获取窗口句柄。cvGetWindowHandle的返回值解释为:函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)。一开始的处理时,通过以下方法:
结果显示为:
从上面看,窗口显然没有隐藏起来。经过一番验证,原来hWnd指向的不是“raw”窗口的句柄。通过查看cvNameWindow代码,原来cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。
代码如下:
通过查看源代码,恍然大悟,于是将代码改成如下,即可。
这样,opencv的窗口就不在显示了。看来以后要多跟跟源代码,这样可以减少一些不必要的功夫。
在opencv中可以通过cvGetWindowHandle获取窗口句柄。cvGetWindowHandle的返回值解释为:函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)。一开始的处理时,通过以下方法:
cvNamedWindow("raw"); HWND hWnd = (HWND)cvGetWindowHandle("raw"); ShowWindow(hWnd, 0); //0的时候表示隐藏窗口
结果显示为:
从上面看,窗口显然没有隐藏起来。经过一番验证,原来hWnd指向的不是“raw”窗口的句柄。通过查看cvNameWindow代码,原来cvNameWindow创建窗口的时候会创建两个窗口,一个主窗口,一个子窗口。
代码如下:
CV_IMPL int cvNamedWindow( const char* name, int flags ) { ...... ...... HWND hWnd, mainhWnd; CvWindow* window; DWORD defStyle = WS_VISIBLE | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU; ...... ...... mainhWnd = CreateWindow( "Main HighGUI class", name, defStyle | WS_OVERLAPPED, rect.x, rect.y, rect.width, rect.height, 0, 0, hg_hinstance, 0 ); if( !mainhWnd ) CV_ERROR( CV_StsError, "Frame window can not be created" ); ShowWindow(mainhWnd, SW_SHOW); //YV- remove one border by changing the style hWnd = CreateWindow("HighGUI class", "", (defStyle & ~WS_SIZEBOX) | WS_CHILD, CW_USEDEFAULT, 0, rect.width, rect.height, mainhWnd, 0, hg_hinstance, 0); if( !hWnd ) CV_ERROR( CV_StsError, "Frame window can not be created" ); ShowWindow(hWnd, SW_SHOW); ...... ...... }
通过查看源代码,恍然大悟,于是将代码改成如下,即可。
cvNamedWindow("raw"); HWND hWnd = (HWND)cvGetWindowHandle("raw"); HWND hRawWnd = ::GetParent(hWnd); //获得父窗口句柄 ShowWindow(hWnd, 0); //0:的时候表示隐藏子窗口 ShowWindow(hRawWnd, 0); //0:的时候表示隐藏父窗口
这样,opencv的窗口就不在显示了。看来以后要多跟跟源代码,这样可以减少一些不必要的功夫。
相关文章推荐
- Linux查看程序端口占用情况
- Linux驱动开发----块设备驱动(内存模拟)Tiny6410
- mahout学习之TasteOptionParser(2)
- Slope One 协同过滤算法
- tomcat-users.xml 配置
- 关于linux下粘贴位(sticky位).
- 查看Linux 下某个程序的内存情况
- OpenCart之热卖商品(BestSellers)模块教程
- OpenCart之商品分类(Category)模块教程
- CentOS 程序开机自启动方法总结
- SSH架构中DAO泛型 出现的问题
- hadoop介绍
- servlet(二)
- Programming and Using Linux Sound - in depth - MIDI ALSA
- linux下最简单安装LAMP
- OpenGL中glVertex2f函数与gluOrtho2D的参数的对应关系,以及常见函数的对应坐标系
- Linux:一个可爱的首都人民
- OpenGL投影变换函数gluOrtho2D()和视口变换函数glViewport()
- kernel oops 分析
- Programming and Using Linux Sound - in depth - Chapter 5 ALSA