Between 2013 and 2019, SimpleITK development was primarily carried out as part of the intramural research program of the National Library of Medicine with collaborators at The University of Iowa and Monash University. Since 2019, SimpleITK development is primarily carried out under the Office of Cyber Infrastructure and Computational Biology at the National Institute of Allergy and Infectious Diseases. In April 2020 the toolkit changed its logo to a more modern design.
Short Python scripts illustrating image reading, blurring, and writing. Using the object oriented interface:
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)
Short R script illustrating the use of the library's registration framework for rigid registration
of two 3D images:
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" )
R. Beare, B. C. Lowekamp, Z. Yaniv, “Image Segmentation, Registration and Characterization in R with SimpleITK”, J Stat Softw, 86(8), 2018, doi:10.18637/jss.v086.i08.
B. C. Lowekamp, D. T. Chen, L. Ibáñez, D. Blezek, "The Design of SimpleITK", Front. Neuroinform.,7:45, 2013, doi:10.3389/fninf.2013.00045.
Z. Yaniv, B. C. Lowekamp, H.J. Johnson, R. Beare, "SimpleITK Image-Analysis Notebooks: a Collaborative Environment for Education and Reproducible Research", J Digit Imaging., 31(3):290-303, 2018, doi: 10.1007/s10278-017-0037-8.
M. D. Blackledge, D. J.Collins, D-M Koh, M. O. Leach, "Rapid development of image analysis research tools: Bridging the gap between researcher and clinician with pyOsiriX", Comput Biol Med., 69:203-212, 2016, doi: 10.1016/j.compbiomed.2015.12.002
J. J. M. van Griethuysen, A. Fedorov, C. Parmar, A. Hosny, N. Aucoin, V. Narayan, R. G. H. Beets-Tan, J. C. Fillon-Robin, S. Pieper, H. J. W. L. Aerts, "Computational Radiomics System to Decode the Radiographic Phenotype", Cancer Research, 77(21): e104–e107, 2017, doi: 10.1158/0008-5472.CAN-17-0339
K. Marstal, F. Berendsen, M. Staring, S. Klein, "SimpleElastix: A User-Friendly, Multi-lingual Library for Medical Image Registration", IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 574-582, 2016, doi:10.1109/CVPRW.2016.78
E. Gibson, W. Li, C. Sudre, L. Fidon, D. I. Shakir, G. Wang, Z. Eaton-Rosen, R. Gray, T. Doel, Y. Hu, T. Whyntie, P. Nachev, M. Modat, D. C. Barratt, S. Ourselin, M. J. Cardoso, T. Vercauteren, "NiftyNet: a deep-learning platform for medical imaging", Comput Methods Programs Biomed., 158:113-122, 2018, doi: 10.1016/j.cmpb.2018.01.025