无法关闭OpenCV中的视频窗口



我想使用Python在OpenCV中播放视频,并随时关闭该窗口,但它不起作用。

import numpy as np
import cv2
fileName='test.mp4'  # change the file name if needed
cap = cv2.VideoCapture(fileName)   # load the video
while(cap.isOpened()):
    # play the video by reading frame by frame
    ret, frame = cap.read()
    if ret==True:
        # optional: do some image processing here 
        cv2.imshow('frame',frame)              # show the video
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
cv2.waitKey(1)
cv2.destroyAllWindows()
cv2.waitKey(1)

窗口打开并开始播放视频,但我无法关闭窗口。

您可以使用cv2.getWindowProperty('window-name', index)检测窗口是否关闭。我不确定该索引,但这对我有用:

import cv2
filename = 'test.mp4'
cam = cv2.VideoCapture(filename)
while True:
    ret, frame = cam.read()
    if not ret:
        break
    cv2.imshow('asd', frame)
    cv2.waitKey(1)
    if cv2.getWindowProperty('asd', 4) < 1:
        break

最新更新