LabelFusion
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:
- Voting (ITK): DOI:10.1016/j.patrec.2005.03.017
- STAPLE (ITK): DOI:10.1109/TMI.2004.830803
- Majority Voting: DOI:10.1007/978-3-319-20801-5_11
- SIMPLE: DOI:10.1109/tmi.2010.2057442
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
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88021d97ffabe111825cd8d1f68a8c4595a0ad001ffb1bff3a6017fe9df45691
|
|
| MD5 |
2a29ba7b8dcf5231470a9009ba5b904c
|
|
| BLAKE2b-256 |
78e0a398bfd985d03a0ea5a6eec40472f620d3c7a644869d022730d117f685d8
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
974e272e70a0ec7dc22dfc1fbc221ae550991f73e0236921101aba5ab811d5bb
|
|
| MD5 |
0fa0e85738b81d4f5591ca2f64720645
|
|
| BLAKE2b-256 |
ed73cbca0a36bacf79e00871a47797597aaf213c45f282905fe70ca4048d5692
|