读取文件夹中所有mp4文件

问题描述 投票:0回答:1

我想读取文件夹中的所有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),请指导我。

opencv
1个回答
0
投票

在阅读文件列表之前,您应该过滤掉要打开的文件。在本例中,它是扩展名为 .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()
© www.soinside.com 2019 - 2024. All rights reserved.