Source code for minerva.data.datasets.context_dataset

from typing import Optional, Tuple

import numpy as np
from torch.utils.data import Dataset

from minerva.data.readers.reader import _Reader
from minerva.transforms.transform import _Transform


[docs] class ContextDataset(Dataset): def __init__( self, readers: Tuple[_Reader, _Reader], transform: Optional[_Transform] = None, ) -> None: """ A PyTorch Dataset class for handling paired image and mask data with optional context transformations. Parameters ---------- readers : Tuple[_Reader, _Reader] A tuple containing two reader objects. The first reader should provide images, and the second reader should provide corresponding masks. Both readers must support indexing and have the same length. transform : Optional[_Transform], default=None An optional transformation function or callable that takes a tuple of (image, mask) and returns a transformed tuple of (image, mask). If None, no transformations are applied. """ self.readers = readers self.transform = transform
[docs] def __len__(self) -> int: return len(self.readers[0])
[docs] def __getitem__(self, idx: int) -> Tuple[np.ndarray, np.ndarray]: img = self.readers[0][idx] mask = self.readers[1][idx] if self.transform: img, mask = self.transform((img, mask)) return (img, mask)