opencv如何隐藏窗口

    今天处理视频的时候想将opencv中的窗口隐藏起来,以便进行多线程的处理。

    在opencv中可以通过cvGetWindowHandle获取窗口句柄。cvGetWindowHandle的返回值解释为:函数cvGetWindowHandle返回原始的窗口句柄(在Win32情况下返回HWND,GTK+情况下返回GtkWidget)。一开始的处理时,通过以下方法:

	cvNamedWindow("raw");
	HWND hWnd = (HWND)cvGetWindowHandle("raw"); 	
	ShowWindow(hWnd, 0);  //0的时候表示隐藏窗口

结果显示为:

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: cvGetWindowHandle未定义是由于OpenCV库中没有定义该函数所导致的错误。可能是因为您使用的是旧版本的OpenCV库,或者您没有正确地包含OpenCV库的头文件。建议您检查您的代码中是否正确包含了OpenCV库的头文件,并尝试更新到最新版本的OpenCV库。 ### 回答2: cvGetWindowHandle是OpenCV中的一个函数,用于获取指定窗口窗口句柄(也就是窗口的唯一标识符)。但是,如果程序在调用该函数时出现“未定义”的错误,可能有以下几个原因: 1.未包含必要的头文件 cvGetWindowHandle函数需要使用一些头文件中定义的变量和类型,如果程序中未包含这些头文件,编译器就无法识别这些未定义的符号,导致函数无法被调用。因此,需要查看程序中是否包含了头文件“#include<opencv2/highgui/highgui_c.h>”,如果没有,请添加上。 2.未链接相关库文件 OpenCV是一个跨平台的开源计算机视觉库,它提供了丰富的图像处理和计算机视觉算法,但是使用时还需要将库文件链接到程序中去才能正常使用。如果程序中未链接相关的库文件,编译器也会提示“未定义”的错误。因此,需要在编译时加上链接选项“-lopencv_highgui”,或者将库文件添加到工程中去。 3.函数名称错误 如果程序中调用了不存在的函数名称,也会报错“未定义”的错误。因此,需要检查程序中调用函数的名称是否与要使用的函数名称一致。在OpenCV中,cvGetWindowHandle函数已经被更新为cvGetWindowProperty,可以改用这个函数来获取窗口句柄。 总之,出现“cvGetWindowHandle未定义”的错误,需要根据实际情况进行排查,将可能出现错误的原因逐一排除,最终找到错误的根源来解决问题。 ### 回答3: cvGetWindowHandle是OpenCV1.x版本的函数,在OpenCV2.x以后的版本中,该函数被废弃了,所以导致无法使用。新版OpenCV中提供了更好的窗口管理API,如namedWindow和imshow等函数,它们能更好地管理窗口的创建、关闭、显示等操作,而且也更加方便使用和移植。如果需要获取窗口的句柄,可以使用新版OpenCV中提供的getWindowHandle函数来代替cvGetWindowHandle函数。 在OpenCV2.x以后的版本中,如果仍要使用cvGetWindowHandle函数,可以通过添加opencv_legacy模块来实现。要使用opencv_legacy模块,需要在编译OpenCV时加入--with-legacy参数,此时编译后生成的库中将包含该模块的相关函数。但是,不推荐在新的OpenCV程序中使用过时的函数,因为它们可能会在将来的版本中被移除或不被支持,从而导致程序无法正常工作。 因此,建议在编写新的OpenCV程序时,尽量使用新版API,以保证程序的可移植性和可靠性。如果需要使用cvGetWindowHandle函数,可以使用opencv_legacy模块,但要注意该函数可能会被移除或不被支持的风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值