当我尝试运行两次相同的函数(这是一个从文件夹中播放随机视频的函数(时,我遇到了一个问题。当我试图制作一个"for循环",将函数重播一定次数时,我发现了这个问题。它看起来并不是一个特定的错误,它只是通过"if语句"来解决它,我将向您展示下一个
if (vid.isOpened()== False):
print("El archivo de mierda no se pudo abrir")
因此,在我的屏幕上弹出消息"El archivo de mierda no se pudo abrir"。如果我试图评论掉"If语句",第二次函数被忽略,第二个视频也没有播放。如何避免或解决此问题?整个代码是下一个:
import cv2
import numpy as np
import os, random
nombr = random.choice(os.listdir(r"C:\Users\JLHI6\Desktop\CODE\Catu\videos"))
videa = r"C:\Users\JLHI6\Desktop\CODE\Catu\videos\" + nombr
vid = cv2.VideoCapture(videa)
def correr_video():
if (vid.isOpened()== False):
print("El archivo de mierda no se pudo abrir")
while (vid.isOpened()):
ret, frame = vid.read()
if ret == True:
cv2.imshow("Frame", frame)
if cv2.waitKey(25) & 0xFF == ord("q"):
break
else:
break
vid.release()
cv2.destroyAllWindows()
correr_video()
correr_video()
在函数vid.release()
结束时关闭视频(文档(,因此要再次播放视频,必须使用vid = cv2.VideoCapture(videa)
重新打开它
为了更容易播放不同的视频,你可以重新构建你的代码:
def correr_video(vid_file):
vid = cv2.VideoCapture(vid_file)
[rest of code in function]
correr_video(videa)