我想读取文件夹中的所有mp4文件,但运行时它不起作用,我想读取文件1.mp4,当它完成运行时它会自动运行2.mp4 .... n.mp4。
import os
import cv2
import numpy as np
for root, dirs, files in os.walk('f:\\a'):
for file in files:
tt = (os.path.join(root,file))
print(tt)
cap = cv2.VideoCapture(tt)
while (cap.isOpened()):
ret, frame = cap.read()
if ret == True:
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
我已经放入了一个循环(for),但它只显示文件列表(cv2.imshow('frame',frame),请指导我。
在阅读文件列表之前,您应该过滤掉要打开的文件。在本例中,它是扩展名为 .mp4 的 mp4 文件。下面是稍微修改后的代码。希望可以帮到你!
import os
import cv2
files = [f for f in os.listdir('.') if f.endswith('.mp4')]
for file in files:
cap = cv2.VideoCapture(file)
if not cap.isOpened():
print(f"Error opening video file {file}")
continue
while cap.isOpened():
ret, frame = cap.read()
if ret:
cv2.imshow('Frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()