1 2 1 kaspermarstal/ 2 SimpleElastix SimpleElas*x: A user ......transformix. Figure 2. Example of...

Preview:

Citation preview

SimpleElas*x:Auser-friendly,mul*-linguallibraryformedicalimageregistra*on

https://github.com/kaspermarstal/SimpleElastix

Protyping in Python import SimpleITK as sitk fixedImage = sitk.ReadImage('fixed.nii') movingImage = sitk.ReadImage('moving.nii') resultImage = sitk.Elastix(fixedImage, movingImage)

Prototyping in R library(SimpleITK) fixedImage <- ReadImage('fixed.nii', 'sitkFloat32') movingImage <- ReadImage('moving.nii', 'sitkFloat32') resultImage <- Elastix(fixedImage, movingImage)

K.Marstal1,F.F.Berendsen2,M.Staring2,S.Klein11BiomedicalImagingGroupRoFerdam,ErasmusMedicalCenter2DivisionofImageProcessing,LeidenUniversityMedicalCenter

DutchTechnologyFounda1onSTW

Introduc*onIn the past decade a significant amount of research hasfocused on developing new registra1on algorithms.However, less research has focused on accessibility,interoperability and extensibility of such algorithms andtheir implementa1ons. This is a problem since imageregistra1on is a prerequisite for awide range ofmedicalimageanalysistasksandakeyalgorithmiccomponentforimage-basedstudies.Open source, user-friendly implementa1ons of scien1ficsoGware make state-of-the-art methods accessible to awider audience, promote opportuni1es for scien1ficadvancement, and support the fundamental scien1ficprincipleofreproducibility.Tothisend,wehavedevelopedtheSimpleElas1xsoGwarepackage.

Take-homemessages•  Incorporate elastix and transformix in

your image processing pipeline with few lines of code.

•  Download athttps://github.com/kaspermarstal/SimpleElastix.

•  Documentation available at https://simpleelastix.readthedocs.io.

•  Project website at https://simpleelastix.github.io

Examples:Imageregistra*oninPython,RandJavaParallel processing with Java 8 parallel streams import org.itk.simple.* Image fixedImage = ReadImage(“fixed.nii”) List<Image> movingImageFileNames = Arrays.asList(“moving0.nii”, “moving1.nii”) movingImages.parallelStream.forEach( movingImageFileName -> Elastix(fixedImage, ReadImage(movingImageFileName)) )

WhatisSimpleElas*x?SimpleElas1x extends the SimpleITK imageprocessing library by including the elas1x imageregistra1ontoolbox.Elas1x isamodularcollec1onof high-performance medical image registra1onalgorithms. With SimpleElas1x, all of elas1x’funcitonalitybecomesavailablemanyprogramminglanguages,makingelas1xeasytouseinanyofthefollowingenvrionments:

Figure 1. Schema1c depic1on of soGwarearchitecture.AnITKFilter-stylewrapperanda SimpleITK-style facade interface connectse l a s1x w i th t he S imp l e I TK bu i l d -infrastructure, allowing SimpleITK to becompiled with support for elas1x andtransformix.

Figure 2. Example of two registered imagesfromtheHammersmith83datasetusing thePythoncodebelow.CheckerboardpaSernoffixedand result images (leG)andoverlayofassociatedsegmenta1ons(right).

SimpleElas*x supports C++,C#, Python, R, Java, TCL,Ruby, Octave and Lua onLinux,MacandWindows.

Recommended