FileParser.py 972 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. from os import path
  2. import cv2
  3. def file_info(data_folder: str, file_name: str, file_ext: str):
  4. """
  5. Receive file type, frame count and frames per second.
  6. The last two are always None for images.
  7. :param data_folder: path to data folder
  8. :param file_name: file name
  9. :param file_ext: file extension
  10. :return: file type, frame count, frames per second
  11. """
  12. # determine file type
  13. if file_ext in ['.jpg', '.png']:
  14. ftype = 'image'
  15. elif file_ext in ['.mp4']:
  16. ftype = 'video'
  17. else:
  18. raise ValueError
  19. # determine frames and fps for video files
  20. if ftype == 'image':
  21. frames = None
  22. fps = None
  23. else:
  24. file_path = path.join(data_folder, file_name + file_ext)
  25. video = cv2.VideoCapture(file_path)
  26. frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
  27. fps = video.get(cv2.CAP_PROP_FPS)
  28. video.release()
  29. # return values
  30. return ftype, frames, fps