Skip to main content

Label fusion strategies for multi-class labels.

Project description

LabelFusion

DOI

This repo contains implementation of various label fusion approaches that can be used to fuse multiple labels.

Installation

For Usage

conda create -n venv_labelFusion python=3.12 -y
conda activate venv_labelFusion
pip install LabelFusion

For Development

# fork to your own repo
git clone ${yourFork_labelFusion_repo_link}
cd LabelFusion
conda create -p ./venv python=3.12 -y
conda activate ./venv
pip install -e .
# develop, push
# initiate pull request

Available LabelFusion:

Usage

Command-Line interface

# continue from previous shell
python fusion_run -h
  -h, --help        show this help message and exit
  -inputs INPUTS    The absolute, comma-separated paths of labels that need to be fused
  -classes CLASSES  The expected labels; for example, for BraTS, this should be '0,1,2,4' - not used for STAPLE or ITKVoting
  -method METHOD    The method to apply; currently available: STAPLE | ITKVoting | MajorityVoting | SIMPLE
  -output OUTPUT    The output file to write the results

Example:

# continue from previous shell
python fusion_run \
-inputs /path/to/seg_algo_1.nii.gz,/path/to/seg_algo_2.nii.gz,/path/to/seg_algo_3.nii.gz \
-classes 0,1,2,4 \
-method STAPLE \
-output /path/to/seg_fusion.nii.gz

Python interface

# assuming virtual environment containing LabelFusion is activated
import SimpleITK as sitk
from LabelFusion.wrapper import fuse_images

label_to_fuse_0 = '/path/to/image_0.nii.gz'
label_to_fuse_1 = '/path/to/image_1.nii.gz'

images_to_fuse = []
images_to_fuse.append(sitk.ReadImage(label_to_fuse_0, sitk.sitkUInt8))
images_to_fuse.append(sitk.ReadImage(label_to_fuse_1, sitk.sitkUInt8))
fused_staple = fuse_images(images_to_fuse, 'staple') # class_list is not needed for staple/itkvoting
sitk.WriteImage(fused_staple, '/path/to/output_staple.nii.gz')
fused_simple = fuse_images(images_to_fuse, 'simple', class_list=[0,1,2,4])
sitk.WriteImage(fused_simple, '/path/to/output_simple.nii.gz')

Testing

This repo has continuous integration enbabled via Azure DevOps for the following operating systems:

  • Windows
  • Ubuntu
  • macOS

And for the following python versions:

  • 3.9
  • 3.10
  • 3.11
  • 3.12

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

labelfusion-1.0.15.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

labelfusion-1.0.15-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file labelfusion-1.0.15.tar.gz.

File metadata

  • Download URL: labelfusion-1.0.15.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for labelfusion-1.0.15.tar.gz
Algorithm Hash digest
SHA256 88021d97ffabe111825cd8d1f68a8c4595a0ad001ffb1bff3a6017fe9df45691
MD5 2a29ba7b8dcf5231470a9009ba5b904c
BLAKE2b-256 78e0a398bfd985d03a0ea5a6eec40472f620d3c7a644869d022730d117f685d8

See more details on using hashes here.

File details

Details for the file labelfusion-1.0.15-py3-none-any.whl.

File metadata

  • Download URL: labelfusion-1.0.15-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for labelfusion-1.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 974e272e70a0ec7dc22dfc1fbc221ae550991f73e0236921101aba5ab811d5bb
MD5 0fa0e85738b81d4f5591ca2f64720645
BLAKE2b-256 ed73cbca0a36bacf79e00871a47797597aaf213c45f282905fe70ca4048d5692

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page