SimpleITK: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
Line 111: | Line 111: | ||
* IO class to combine ImageFileReader and ImageSeriesReader into a single class. | * IO class to combine ImageFileReader and ImageSeriesReader into a single class. | ||
* Namespace to use : "sitk" or "stk". | * Namespace to use : "sitk" or "stk". | ||
* Const-correctness | |||
== Tcon topics 7/22/2010 == | == Tcon topics 7/22/2010 == |
Revision as of 19:31, 16 July 2010
Simple ITK
Goals
- Provide an easy-access layer to ITK for non-C++ expert developers
Sandbox
Scope
Suggested Areas to Cover
- IO
- Basic Filters
- Registration
- Basic Framework
- Deformable registration
- BSplines
- Demons
- Segmentation
- Region Growing
- Level Sets
- Classifiers
Types
- Image pixel types supported
- int8_t
- int16_t
- int32_t
- float
- Image dimensions supported
- 3D
- Is 2D managed as a 3D image of 1 slice ?
- Performance penalty for neighborhood filters... ?
- Could be "2D" versions of 3D filters, i.e. RecursiveGaussianFilter2D. This would work on a slice-by-slice basis.
Languages
Wrapped languages will be any that SWIG supports, if someone is willing to write tests / any needed glue code.
- C++ Layer
- Python
- Lua
- Java
- ?
Implementation Details
- Coding Style
- Copyright Headers & License
- Const correctness (can we avoid using const's completely?)
- Testing
- C++ testing (Google Test?)
- Python tests (PyUnit?)
- Lua tests (?!?)
- Java tests (JUnit)
- ? other languages ?
- Managing basic types
- Arrays
- Regions
- Transforms
- Not so basic types (could these be enums passed as ivars?)
- Interpolators
- Optimizers
- Metrics
Plan
- Image classes
- IO
TCons
Tcon topics 7/15/2010
Toll-Free #: 1-800-704-9804 International #: 1-404-920-6604 Participant Code: 61466276 Thursday, July 15th, 3:30-5:00pm EDT (2:30-4:00pm Central).
- General architecture
- Wrapping efficiency
- Should SimpleITK be mixable with normal ITK ?
- At C++ level ?
- At WrapITK (Python, Tcl ) level ?
- Provide access to the underlying ITK image ?
- SimpleImage class
- Include casting to other image types.
- Introduce in ITK an itk::ImageBase class that is not templated over Dimension.
- Use Pointer semantics ?
- image->getDepth() vs image.getDepth()
- What kind of flexibility to provide for Users to add functionalities to SimpleITK
- It should be easy to write (even if the class is conceptually complex).
- User says : "I need this data type X..."
- Then, how hard is for the developer of SimpleITK classes to satisfy the user's request.
- Design a Simple calling convention
- Procedural-like notation...
- out = Gaussian().setSigma(2).execute(image)
- out = Gaussian( image, 2 )
- Gaussian gaussian( 2 ) // sigma as argument to the constructor
- gaussian( "Sigma",2, "Width", 2 ); // arguments packed as key,value pair
- Add introspection to ITK proper
- All filters provide a list of "Key, Type" pairs
- SetParameter( "parameterName", parameterValue );
Tcon topics 7/16/2010
- IO class to combine ImageFileReader and ImageSeriesReader into a single class.
- Namespace to use : "sitk" or "stk".
- Const-correctness
Tcon topics 7/22/2010
- Should SimpleITK be mixable with VTK?
- SimpleImage class include casting to vtkImage?
- Concept: interactive programming languages are really cool if they include data visualization. We need to have a way to visualize images as we process them.