如何在 while 循环中显示图像而不会使用 openCV 崩溃?



我正在播放一个视频,其中我试图检测某些内容,每当我检测到我感兴趣的区域时,我都想显示它几秒钟:

import cv2
capture = cv2.VideoCapture(path)
while True:
ret,frame = capture.read(0)
region_of_interest = detect(frame)
if region_of_interest != 0:
cv2.imshow('Image',region_of_interest)
cv2.waitKey(2000)
cv2.destroyWindow('Image')
cv2.imshow('Normal Video',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
capture.release()
cv2.destroyAllWindows()

问题是,当它找到一些东西时,它会弹出很多窗口,然后崩溃。

您正在为每个循环创建和删除窗口,请尝试此操作

import cv2
capture = cv2.VideoCapture(path)
while True:
ret,frame = capture.read(0)
region_of_interest = detect(frame)
if region_of_interest != 0:
# if you want to show somenthing better put a text
cv2.putText(frame, data, (cord1, cord2), cv2.FONT_HERSHEY_SIMPLEX,0.5, (0, 255, 0), 2)

cv2.imshow('Normal Video',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
capture.release()
cv2.destroyAllWindows()

最新更新