mau*_*ius 12 python video opencv
我正在使用Python中的OpenCV显示来自摄像头的实时视频.这是代码:
capture = cv.CaptureFromCAM(0)
if capture:
cv.NamedWindow("Live Video", cv.CV_WINDOW_AUTOSIZE)
frame = cv.QueryFrame(capture)
if frame:
cv.ShowImage("Live Video", frame)
cv.WaitKey(0)
cv.DestroyWindow("Live Video")
Run Code Online (Sandbox Code Playgroud)
现在,我只能通过按"esc"关闭我的视频窗口,但是当我点击我的窗口的关闭"X"按钮时没有任何反应.有没有办法让这项工作?
我遇到了同样的问题,我找到了一种简单的方法来做到这一点:
您可以使用 cv2.getWindowProperty(windowName, cv2.WND_PROP_VISIBLE)来检查当前窗口是否可见,如果不可见,您可以销毁该窗口。1如果可见,0如果不可见,该方法将返回 a 。下面是一个实现:
while True:
_, frame = cap.read()
cv2.imshow(windowName, frame)
keyCode = cv2.waitKey(1)
if cv2.getWindowProperty(windowName, cv2.WND_PROP_VISIBLE) <1:
break
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
已接受的答案链接到一个永远不会工作的解决方案,因为 0 包含在 >=0 中,并且在 中使用了错误的第二个参数cv2.getWindowProperty(),而问题只会在线程的后面间接解决。我将此添加为答案,因为当我第一次访问此线程时找不到正确的解决方案,而这正是我需要和使用的。
OpenCV没有此功能,默认情况下仅处理按键。
如果要执行此操作,则必须使用创建窗口的窗口管理器的句柄(GTK,QT等)。
这篇文章描述了类似的问题,以防您使用Windows。 让我知道是否;)
| 归档时间: |
|
| 查看次数: |
14374 次 |
| 最近记录: |