12345678910111213141516171819202122232425262728293031323334353637383940 |
- from os import path
- import cv2
- def file_info(data_folder: str, file_name: str, file_ext: str):
- """
- Receive file type, frame count and frames per second.
- The last two are always None for images.
- :param data_folder: path to data folder
- :param file_name: file name
- :param file_ext: file extension
- :return: file type, frame count, frames per second
- """
- # determine file type
- if file_ext.lower() in ['.jpg', '.png']:
- ftype = 'image'
- elif file_ext.lower() in ['.mp4']:
- ftype = 'video'
- else:
- raise ValueError(f"Unsupported file extension: {file_ext}!")
- # determine frames and fps for video files
- if ftype == 'image':
- frames = None
- fps = None
- else:
- file_path = path.join(data_folder, file_name + file_ext)
- video = cv2.VideoCapture(file_path)
- frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
- fps = video.get(cv2.CAP_PROP_FPS)
- video.release()
- # return values
- return ftype, frames, fps
|