Skip to content

dyollb/sitk-cli

Repository files navigation

Wrap SimpleITK functions as command lines

Build Actions Status License PyPI version

Overview

Create Typer command line interface from functions that use SimpleITK images (and transforms) as arguments or return type.

import SimpleITK as sitk
import typer

from sitk_cli import register_command

app = typer.Typer()


@register_command(app)
def fill_holes_slice_by_slice(mask: sitk.Image) -> sitk.Image:
    mask = mask != 0
    output = sitk.Image(mask.GetSize(), mask.GetPixelID())
    output.CopyInformation(mask)
    for k in range(mask.GetSize()[2]):
        output[:, :, k] = sitk.BinaryFillhole(mask[:, :, k], fullyConnected=False)
    return output


if __name__ == "__main__":
    app()

To work, sitk-cli inspects the type annotations of the function and creates a wrapper function that loads images from file and passes these to the original function. Returned images (transforms) are written to a file by the wrapper function..

Installation

pip install sitk-cli

Demo

Command lind demo