Source code for torchio.transforms.preprocessing.label.remove_labels

from typing import Sequence

from ...transform import TypeMaskingMethod
from .remap_labels import RemapLabels


[docs] class RemoveLabels(RemapLabels): r"""Remove labels from a label map. The removed labels are remapped to the background label. This transformation is not `invertible <invertibility>`_. Args: labels: A sequence of label integers that will be removed. background_label: integer that specifies which label is considered to be background (typically, ``0``). masking_method: See :class:`~torchio.transforms.RemapLabels`. **kwargs: See :class:`~torchio.transforms.Transform` for additional keyword arguments. .. plot:: import torchio as tio colin = tio.datasets.Colin27(2008) label_map = colin.cls colin.remove_image('t2') colin.remove_image('pd') names_to_remove = ( 'Fat', 'Muscles', 'Skin and Muscles', 'Skull', 'Fat 2', 'Dura', 'Marrow' ) labels = [colin.NAME_TO_LABEL[name] for name in names_to_remove] skull_stripping = tio.RemoveLabels(labels) only_brain = skull_stripping(label_map) colin.add_image(only_brain, 'brain') colors = { 0: (0, 0, 0), 1: (127, 255, 212), 2: (96, 204, 96), 3: (240, 230, 140), 4: (176, 48, 96), 5: (48, 176, 96), 6: (220, 247, 164), 7: (103, 255, 255), 9: (205, 62, 78), 10: (238, 186, 243), 11: (119, 159, 176), 12: (220, 216, 20), } colin.plot(cmap_dict={'cls': colors, 'brain': colors}) """ def __init__( self, labels: Sequence[int], background_label: int = 0, masking_method: TypeMaskingMethod = None, **kwargs, ): remapping = {label: background_label for label in labels} super().__init__(remapping, masking_method, **kwargs) self.labels = labels self.background_label = background_label self.masking_method = masking_method self.args_names = ['labels', 'background_label', 'masking_method'] def is_invertible(self): return False