SimpleITK - SimpleITK
|
Logo SimpleITK
| |
| Vývojáři | Insight Software Consortium |
|---|---|
| Stabilní uvolnění | 2.1.0 / 30. července 2021
|
| Napsáno | C ++ , Python , R , Java , C# , Lua , Ruby , Tcl |
| Operační systém | Cross-platform |
| Typ | Knihovna pro analýzu obrazu |
| Licence | Apache 2.0 |
| webová stránka | www |
SimpleITK je zjednodušené, open-source rozhraní k Insight Segmentation and Registration Toolkit (ITK). Knihovna pro analýzu obrázků SimpleITK je k dispozici ve více programovacích jazycích včetně C ++ , Python , R , Java , C# , Lua , Ruby a Tcl . Binární distribuce jsou k dispozici pro všechny tři hlavní operační systémy ( Linux , macOS a Microsoft Windows ).
Vyvinuto v National Institutes of Health (NIH) jako otevřený zdroj, jeho primárním cílem je zpřístupnit algoritmy dostupné v knihovně ITK nejširšímu okruhu vědců, jejichž práce zahrnuje analýzu obrazu , bez ohledu na jejich dovednosti v oblasti vývoje softwaru. V důsledku toho rozhraní SimpleITK vystavuje pouze nejčastěji upravované algoritmické nastavení komponent ITK. Knihovna navíc poskytuje objektově orientované i procedurální rozhraní pro většinu filtrů pro zpracování obrazu. Ten umožňuje pracovní toky analýzy obrazu se stručnou syntaxí. Sekundárním cílem knihovny je podpora pracovních toků reprodukovatelné analýzy obrazu pomocí knihovny SimpleITK ve spojení s moderními nástroji pro reprodukovatelné výpočetní pracovní toky dostupné v programovacích jazycích Python ( notebooky Jupyter ) a R ( balíček knitr ).
Vývoj softwaru je zaměřen na GitHub pomocí modelu vidlice a tahu . Projekt je vytvořen pomocí nástroje CMake , přičemž noční sestavení jsou zveřejněna na hlavním panelu kvality projektu .
Více aplikací a knihoven pro analýzu lékařského obrazu obsahuje SimpleITK jako klíčový stavební blok, protože poskytuje širokou škálu filtrování obrazu a komponent IO obrazu s uživatelsky přívětivým rozhraním. Jako příklady lze uvést skriptovacího nástroje pyOsirix pro populární Osirix žádosti, balíček pyradiomics python pro extrakci radiomic funkce z lékařské zobrazování se 3DSlicer analýza obrazu aplikace se SimpleElastix medicínských obrazových registrace knihovna, a NiftyNet hluboká učení knihovny pro lékařské zobrazování.
Dějiny
Počáteční vývoj SimpleITK byl financován Národní lékařskou knihovnou Spojených států v rámci programu American Recovery and Reinvestment Act (ARRA) jako spolupráce mezi The Mayo Clinic, Kitware Inc, The University of Iowa a NLM's intramural program. První hlavní vydání sady nástrojů bylo oznámeno v dubnu až květnu 2017 . Druhé hlavní vydání bylo oznámeno v září 2020.
Mezi lety 2013 a 2019 byl vývoj SimpleITK primárně prováděn jako součást programu intramurálního výzkumu Národní lékařské knihovny se spolupracovníky z University of Iowa a Monash University. Od roku 2019 se vývoj SimpleITK primárně provádí pod Úřadem pro kybernetickou infrastrukturu a výpočetní biologii v Národním ústavu pro alergie a infekční choroby . V dubnu 2020 sada nástrojů změnila své logo na modernější design.
Příklady
Gaussovské vyhlazování
Krátké skripty Pythonu ilustrující čtení obrázků, rozmazání a psaní. Pomocí objektově orientovaného rozhraní:
import SimpleITK as sitk
import sys
if len(sys.argv) < 4:
print("Usage: SimpleGaussian <input> <sigma> <output>")
sys.exit(1)
reader = sitk.ImageFileReader()
reader.SetFileName(sys.argv[1])
image = reader.Execute()
pixelID = image.GetPixelID()
gaussian = sitk.SmoothingRecursiveGaussianImageFilter()
gaussian.SetSigma(float(sys.argv[2]))
image = gaussian.Execute(image)
caster = sitk.CastImageFilter()
caster.SetOutputPixelType(pixelID)
image = caster.Execute(image)
writer = sitk.ImageFileWriter()
writer.SetFileName(sys.argv[3])
writer.Execute(image)
Stručnější verze pomocí procedurálního rozhraní:
import SimpleITK as sitk
import sys
if len(sys.argv) < 4:
print("Usage: SimpleGaussian <input> <sigma> <output>")
sys.exit(1)
image = sitk.ReadImage(sys.argv[1])
pixelID = image.GetPixelID()
image = sitk.Cast(sitk.SmoothingRecursiveGaussian(image, float(sys.argv[2])), pixelID)
sitk.WriteImage(image, sys.argv[3])
Multimodální tuhá registrace
Krátký skript R ilustrující použití registračního rámce knihovny pro rigidní registraci dvou 3D obrazů:
library(SimpleITK)
args = commandArgs( trailingOnly=TRUE )
if( length( args ) < 2 )
{
cat( "Usage: registration <fixed_image> <moving_image> <output_transform>\n" )
quit( save="no", status=1 )
}
fixed_image <- ReadImage( args[1], "sitkFloat32" )
moving_image <- ReadImage( args[2], "sitkFloat32" )
initial_transform <- CenteredTransformInitializer( fixed_image,
moving_image,
Euler3DTransform(),
"GEOMETRY" )
reg <- ImageRegistrationMethod()
reg$SetMetricAsMattesMutualInformation( numberOfHistogramBins=50 )
reg$SetMetricSamplingStrategy( "RANDOM" )
reg$SetMetricSamplingPercentage( 0.01 )
reg$SetInterpolator( "sitkLinear" )
reg$SetOptimizerAsGradientDescent( learningRate=1.0,
numberOfIterations=100 )
reg$SetOptimizerScalesFromPhysicalShift()
reg$SetInitialTransform( initial_transform, inPlace=FALSE )
final_transform <- reg$Execute( fixed_image, moving_image )
WriteTransform( final_transform, "final_transform.tfm" )
Reference
externí odkazy
- Oficiální webové stránky
- Organizace na GitHubu
- K přečtení dokumentů jsou k dispozici krátké příklady ilustrující použití některých komponent knihovny .
- Dokumentace třídy a postupu je k dispozici prostřednictvím Doxygen .
- Notebooky Jupyter na GitHubu s dlouhými a rozsáhle dokumentovanými příklady, užitečné pro učení a výuku práce s SimpleITK.
- Získejte pomoc, posílejte dotazy do diskusního fóra ITK .