Source code for torchio.transforms.preprocessing.label.contour
import SimpleITK as sitk
from .label_transform import LabelTransform
[docs]
class Contour(LabelTransform):
r"""Keep only the borders of each connected component in a binary image.
Args:
**kwargs: See :class:`~torchio.transforms.Transform` for additional
keyword arguments.
"""
def apply_transform(self, subject):
for image in self.get_images(subject):
if image.num_channels > 1:
message = (
'The number of input channels must be 1,'
f' but it is {image.num_channels}'
)
raise RuntimeError(message)
sitk_image = image.as_sitk()
contour = sitk.BinaryContour(sitk_image)
tensor, _ = self.sitk_to_nib(contour)
image.set_data(tensor)
return subject