ITK/Release 4/Why Switch to ITKv4: Difference between revisions

From KitwarePublic
< ITK‎ | Release 4
Jump to navigationJump to search
(Created page with " * Ease of Use ** Illustrations of ITK, WrappedITK, and SimpleITK * ...")
 
No edit summary
 
(24 intermediate revisions by 5 users not shown)
Line 1: Line 1:
=== Modularization ===


* Ease of Use
* '''Easier to find what you are looking for.'''
** [[ITK_Release_4/Why_Switch_to_ITKv4/SimplifiedITK | Illustrations of ITK, WrappedITK, and SimpleITK]]
* '''Easier to understand how to use the toolkit.'''
* ...
* Build only the parts of the toolkit that you need.
* Extend bridging of the toolkit to other toolkit and libraries.
* Makes it '''easy to associate''' and build auxiliary '''community projects''' with an [[ITK_Release_4/Modularization/Add an external module (external module)| External module]].
* Find the quality control per module by performing code coverage tests per module.
 
=== New Finite Element Registration Framework ===
 
* Better conformity with the rest of the toolkit
* Improved IO of objects and results
 
=== New Registration Framework ===
 
*New unified and fully multi-threaded optimization and registration framework
*Unified framework supports sparse and dense metric computation
*Unified framework supports low and high dimensional mapping
*Improved multi-threaded metrics for rigid, affine and deformable registration
*New metrics support sparse or dense sampling
*Metrics for landmark or label guided registration
*Automatic parameter scale estimation for registration
*Automatic step-size selection for gradient-based registration optimizers
*Composite transforms and composite transform optimization
*Displacement field and diffeomorphic velocity field-based transforms
*Better support for multi-threading in optimizers and metrics
*Additional evolutionary optimizers
*Improved B-Spline registration approach available and bug fixes to old framework
*Accurately transform and reorient covariant tensors and vectors
 
=== New LevelSets Segmentation Framework ===
 
* Powerful, '''modular architecture'''
** Now you, too, can fully understand how level sets are implemented!
** Easy to extend and customize
* Simultaneously evolve multiple level sets on an image
* '''Faster'''
** Limit evolution to a domain
** Three different sparse representations available, Whitaker, Shi, Malcolm
** Design avoids duplication of calculations in many ways
* Easy conversion from BinaryMask or LabelMap to a level set.
 
=== SimpleITK ===
 
* Easy to use
** Procedural Interface Examples:
*** [http://www.itk.org/SimpleITKDoxygen/html/SimpleGaussianProcedural_8py-example.html Procedual Gaussian in Python ]
*** [http://www.itk.org/SimpleITKDoxygen/html/SimpleGaussianFunctional_8cxx-example.html Procedural Gaussian in C++]
** Object Oriented Interface Examples:
*** [http://www.itk.org/SimpleITKDoxygen/html/SimpleGaussian_8cxx-example.html OOP Gaussian in C++ ]
*** [http://www.itk.org/SimpleITKDoxygen/html/SimpleGaussian_8py-example.html OOP Gaussian in Python ]
*** [http://www.itk.org/SimpleITKDoxygen/html/SimpleGaussian_8java-example.html OOP Gaussian in Java ]
*** [http://www.itk.org/SimpleITKDoxygen/html/SimpleGaussian_8cs-example.html OOP Gaussian in C# ]
** Additional Examples
*** http://www.itk.org/SimpleITKDoxygen/html/examples.html
* Rapid development
* Interactive processing
 
=== Software Process ===
 
* Fast, distributed, powerful version control: '''Git'''
* Better support for making '''contributions'''
** Low barrier to entry
** Well defined contribution process
** Use powerful tools, Git branches, '''Gerrit reviews'''
** Get code into the toolkit '''quicker'''
** Get '''higher quality''' code in with more reviews and platform testing
* Forget SETI@home, give the aliens a reason to visit by improving ITK with ''CDash@home''!
* Know when/if your bug will be addressed with the scrum process in the JIRA issue tracker
* Flexible management of testing data
 
=== WrapITK ===
 
* Tight incorporation of the outstanding, formerly third party [http://code.google.com/p/wrapitk WrapITK] project.
* [http://numpy.scipy.org Numpy] integration.
 
=== "You can do it!" ===
 
* [http://ij.itk.org/itkfaq/ Migration Guide]
* [[ITK/Release_4/Removed_or_renamed_classes|ITKv4 Removed or renamed classes|]]
* The insight-users mailing list is there for you.
* Transition is easier with ITKV3_COMPATIBILITY configuration option.
* Many deprecated classes are still available.
* The list of other improvements and new features are legion, '''don't miss out!'''

Latest revision as of 05:48, 30 December 2011

Modularization

  • Easier to find what you are looking for.
  • Easier to understand how to use the toolkit.
  • Build only the parts of the toolkit that you need.
  • Extend bridging of the toolkit to other toolkit and libraries.
  • Makes it easy to associate and build auxiliary community projects with an External module.
  • Find the quality control per module by performing code coverage tests per module.

New Finite Element Registration Framework

  • Better conformity with the rest of the toolkit
  • Improved IO of objects and results

New Registration Framework

  • New unified and fully multi-threaded optimization and registration framework
  • Unified framework supports sparse and dense metric computation
  • Unified framework supports low and high dimensional mapping
  • Improved multi-threaded metrics for rigid, affine and deformable registration
  • New metrics support sparse or dense sampling
  • Metrics for landmark or label guided registration
  • Automatic parameter scale estimation for registration
  • Automatic step-size selection for gradient-based registration optimizers
  • Composite transforms and composite transform optimization
  • Displacement field and diffeomorphic velocity field-based transforms
  • Better support for multi-threading in optimizers and metrics
  • Additional evolutionary optimizers
  • Improved B-Spline registration approach available and bug fixes to old framework
  • Accurately transform and reorient covariant tensors and vectors

New LevelSets Segmentation Framework

  • Powerful, modular architecture
    • Now you, too, can fully understand how level sets are implemented!
    • Easy to extend and customize
  • Simultaneously evolve multiple level sets on an image
  • Faster
    • Limit evolution to a domain
    • Three different sparse representations available, Whitaker, Shi, Malcolm
    • Design avoids duplication of calculations in many ways
  • Easy conversion from BinaryMask or LabelMap to a level set.

SimpleITK

Software Process

  • Fast, distributed, powerful version control: Git
  • Better support for making contributions
    • Low barrier to entry
    • Well defined contribution process
    • Use powerful tools, Git branches, Gerrit reviews
    • Get code into the toolkit quicker
    • Get higher quality code in with more reviews and platform testing
  • Forget SETI@home, give the aliens a reason to visit by improving ITK with CDash@home!
  • Know when/if your bug will be addressed with the scrum process in the JIRA issue tracker
  • Flexible management of testing data

WrapITK

  • Tight incorporation of the outstanding, formerly third party WrapITK project.
  • Numpy integration.

"You can do it!"

  • Migration Guide
  • ITKv4 Removed or renamed classes|
  • The insight-users mailing list is there for you.
  • Transition is easier with ITKV3_COMPATIBILITY configuration option.
  • Many deprecated classes are still available.
  • The list of other improvements and new features are legion, don't miss out!