设置cv2窗口的全屏属性时出错

时间:2014-08-24 06:56:14

标签: python opencv

我试图用opencv2全屏创建一个窗口。我已经通过此处和其他地方发布的其他解决方案,并且总是最终出错。

首先,我使用以下命令创建了namedWindow:

cv2.namedWindow("Target", cv2.cv.CV_WINDOW_NORMAL)

然后:

cv2.setWindowProperty("Target", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)

给我错误:

AttributeError: 'module' object has no attribute 'WND_PROP_FULLSCREEN'

我尝试过使用:

cv2.CV_WND_PROP_FULLSCREEN

相反,根据文档,具有相同的错误。

AttributeError: 'module' object has no attribute 'CV_WND_PROP_FULLSCREEN'

有谁知道我做错了什么!? 如果它是不可能的 - 有人可以提供关于如何将cv2图像绘制到全屏窗口(没有显示GUI /工具栏)的另一个建议吗?坦率地说,只要不是处理器密集型,我就会对任何事情感到满意。

2 个答案:

答案 0 :(得分:1)

我最终使用了pygame的窗口和全屏模式并完全跳过了openCV。

答案 1 :(得分:0)

cv2模块常量有时落后于C ++版本,至少可以说,特别是如果您从旧包安装了OpenCV Python绑定(比如旧的Ubuntu LTS版本;)。

但是常量不会导出到Python的事实并不意味着它们不能像它们那样工作。

我随手可得:

>> cv2.__version__
'2.4.8'

这里没有cv2.CV_WND_PROP_FULLSCREEN,但是:

>> cv2.WND_PROP_FULLSCREEN
0

(较新的cv2实现不会使用CV_

为许多标记添加前缀

我不知道属性的值需要从较旧的cv2.cv模块中获取(它是带有旧Python绑定的模块):

>> cv2.cv.CV_WINDOW_FULLSCREEN
1

是的,它只是1

所以这很简单 - 使用全屏:

  • 使用cv2.WINDOW_NORMAL标志
  • 创建窗口
  • 全屏:

    cv2.setWindowProperty('Target', cv2.WND_PROP_FULLSCREEN, 1)

  • 或者如果您错过了cv2.WND_PROP_FULLSCREEN:

    cv2.setWindowProperty('Target', 0, 1)

  • 退出全屏:

    cv2.setWindowProperty('Target', cv2.WND_PROP_FULLSCREEN, 0)

  • 或:

    cv2.setWindowProperty('Target', 0, 0)

即使绑定缺少这些标志,底层的C ++实现也能正常工作。