Source code for wormpose.dataset.loaders.images_folder

"""
Simple FramesDataset implementation reading image files from a folder

Only one video is supported (one folder of images)
"""

import glob
import os
import cv2

from wormpose.dataset.base_dataset import BaseFramesDataset


[docs]class ImagesFolder(BaseFramesDataset): """ Simple loading images in memory from one folder (one video_name) """ class FramesReader(object): def __init__(self, filenames): self.data = [cv2.imread(f, cv2.IMREAD_GRAYSCALE) for f in filenames] def __enter__(self): return self.data def __exit__(self, exc_type, exc_value, traceback): pass def __init__(self, dataset_path: str, extension: str = "*.png"): self.filenames = sorted(glob.glob(os.path.join(dataset_path, extension))) if len(self.filenames) == 0: raise FileNotFoundError(f"Can't find {extension} images in folder {dataset_path}") self.video_name = os.path.basename(os.path.normpath(dataset_path))
[docs] def video_names(self): return [self.video_name]
[docs] def open(self, _): return self.FramesReader(self.filenames)