【问题标题】:Automatically detecting Image and Video Files for further processing自动检测图像和视频文件以进行进一步处理
【发布时间】:2018-07-20 09:29:35
【问题描述】:

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

# 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

我真的希望有更好的方法来做到这一点。我什至没有测试这段代码,太草率了,我宁愿不用这种方法。

【问题讨论】:

  • 你可以查看文件的扩展名再决定
  • @Jeru Luke:但是扩展可以是任何东西,甚至不必是真的,对吧?此外,我真的不想列出所有可能的图像和视频扩展名,只是为了检查我是在处理图像还是视频。我的想法真的是唯一的方法吗?

标签: python opencv path


【解决方案1】:

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

HERE 安装库filetype,可以使用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 属性,您可以确定您的文件是什么类型。

【讨论】:

  • 非常感谢!该软件包甚至提供图像和视频匹配。我要做的就是导入它并执行filetype.image(pathtofile)。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
相关资源
最近更新 更多