自动检测图像和视频文件以进行进一步处理

时间:2018-07-20 09:29:35

标签: python opencv path

因此,我想编写一个脚本,该脚本只提供文件夹或文件的路径,然后它将检测所有视频和图像文件,并将它们放在视频列表和图像列表中。对于每个视频,我将编辑帧并生成输出视频。然后,我将对所有图像执行相同的操作。但是,确定文件是有效图像还是视频的最佳方法是什么?还是我必须做这样的事情:

# if os.path.isdir(path_to_folder)
video_list = []
image_list = []
for file in os.listdir(path_to_folder):
  try:
    cv2.VideoCapture(file)
    video_list.append(file)
    continue
  except:
    pass

  try:
    cv2.imread(file)
    image_list.append(file)
    continue
  except:
    pass

我真的希望有更好的方法可以做到这一点。我什至没有测试这段代码,它是如此草率,我不想不必诉诸这种方法。

1 个答案:

答案 0 :(得分:1)

有一个专门用于此目的的库。它肯定会简化任务。

安装HERE中的库文件类型,可以使用pip轻松安装。还提到了支持的文件类型列表。

import filetype
file = filetype.guess(r'C:\Users\Jackson\Desktop\car.png')
if file is None:
    print('Cannot guess file type!')

elif:
    print('File extension: %s' % file.extension)
    print('File MIME type: %s' % file.mime)

我传入了一个.png文件,结果是:

File extension: png
File MIME type: image/png

使用mime属性可以确定文件的类型。