6
0

FileParser.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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.lower() in ['.jpg', '.png']:
  14. ftype = 'image'
  15. elif file_ext.lower() in ['.mp4']:
  16. ftype = 'video'
  17. else:
  18. raise ValueError(f"Unsupported file extension: {file_ext}!")
  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