我试图用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 /工具栏)的另一个建议吗?坦率地说,只要不是处理器密集型,我就会对任何事情感到满意。
答案 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 ++实现也能正常工作。