使用cv2.setWindowProperty设置全屏时OpenCV显示白屏的求助
解决OpenCV全屏窗口白屏问题
你的问题出在cv2.namedWindow的参数使用错误——cv2.WND_PROP_FULLSCREEN是用来读取或修改窗口属性的键值,不是创建窗口时的初始化标志,用它创建窗口会导致窗口渲染异常,出现白屏。
下面给你两种场景的修正代码:
场景1:显示本地图片
import cv2 # 先创建支持属性修改的窗口(用WINDOW_NORMAL标志) cv2.namedWindow("Image", cv2.WINDOW_NORMAL) # 设置窗口为全屏状态 cv2.setWindowProperty("Image", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) # 读取并显示图片(替换成你的图片路径) img = cv2.imread("test.jpg") cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows()
场景2:显示摄像头画面
import cv2 # 创建支持属性修改的窗口 cv2.namedWindow("Image", cv2.WINDOW_NORMAL) # 设置窗口为全屏状态 cv2.setWindowProperty("Image", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) cap = cv2.VideoCapture(0) # 0代表默认摄像头 while True: ret, frame = cap.read() if not ret: break cv2.imshow("Image", frame) # 按ESC键退出循环 if cv2.waitKey(1) & 0xFF == 27: break cap.release() cv2.destroyAllWindows()
补充说明:
- 创建窗口时用
cv2.WINDOW_NORMAL是为了让窗口支持后续的属性修改(包括全屏),部分环境下直接用cv2.WINDOW_FULLSCREEN创建窗口也能生效,但兼容性不如前者稳定。 - 确保你的图片路径正确、摄像头能正常读取,排除这些基础问题后,按上面的代码就能正常显示全屏画面。
内容的提问来源于stack exchange,提问作者tayron.vikranth
相关产品推荐
相关产品推荐

