使用OpenCV窗口进行全屏显示

时间:2011-04-07 06:32:59

标签: c++ opencv fullscreen

我目前正在C ++中创建一个OpenCV项目,在那里我用kinect寻找运动并用它来提示幻灯片(没有识别)。目前,我正在使用OpenCV显示幻灯片(因为我只有大约一周的时间来推动它)。它看起来很好而且很快。唯一的问题是,这将是一个大型制作的展示,我真的不能让窗口显示(我正在谈论像标题栏这样的窗口装饰)。

我需要摆脱标题栏。我已经做了很多研究,我发现你可以通过调用cvGetWindowHandle(“SlideShow”)神奇地抓住窗口句柄,但这是一个void函数,所以我真的不知道我应该如何得到一个处理来操纵。

我正在为windows和ubuntu开发这个,因为它最终会在Windows机器上运行,但我只能在运行ubuntu的笔记本电脑上进行演示。

如果有人可以告诉我如何使用窗口并使用调整大小的图像全屏显示窗口以填充大多数(如果不是Windows或Ubuntu中的整个屏幕),我将永远感激。

3 个答案:

答案 0 :(得分:20)

我在Ubuntu 11.04上使用OpenCV 2.1。在我的系统上,CV_WINDOW_FULLSCREEN和CV_WINDOW_AUTOSIZE标志都映射到1 两个标志的行为完全相同。它们为您提供了一个固定大小的窗口,对于AUTOSIZE标志而不是FULLSCREEN。我认为这两个标志是用于不同的功能,虽然它们的simillar外观非常混乱。标志CV_WINDOW_NORMAL映射到值0,这是您使用的。它为您提供了一个可以最大化的可调整大小的窗口,但它不是一个全屏窗口。

编辑:我刚刚在another stachoverflow post找到了解决方案。以下是该帖子的解决方案,该系统在我的系统上运行良好:

    cvNamedWindow("Name", CV_WINDOW_NORMAL);
    cvSetWindowProperty("Name", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);
    cvShowImage("Name", your_image);

我得到一个真正的全屏,没有标题栏等。

答案 1 :(得分:3)

您可以使用cv :: setWindowProperty函数,只需将其设置为CV_WINDOW_FULLSCREEN。

openCV-WIKI

中的完整文档

答案 2 :(得分:0)

在 opencv/4.5.1 中,这是这样做的:

    namedWindow("Name", WINDOW_NORMAL);
    setWindowProperty ("Name", WND_PROP_FULLSCREEN, WINDOW_FULLSCREEN);

假设您添加了 using namespace cv;