SimpleITK
From KitwarePublic
Jump to navigationJump to search
Simple ITK
Goals
- Provide an easy-access layer to ITK for non-C++ expert developers
Advisory Review Board (ARB)
- The Advisory Review Board is composed of groups and individual who are potential users of the Simple ITK Layer.
- They provide advice to ITK developers of the simple layer regarding the design and implementation of the SimpleITK API.
Survey
Examples of Other Librarires
Official source repository
SimpleITK uses git as the revision control system. The main repository is hosted on Github https://github.com/SimpleITK/SimpleITK.
Scope
Wrapping
Java
- SimpleITK java applications must have access to the org.itk.simple package
- There are two methods for accessing the org.itk.simple package
- 1) After building SimpleITK, run "make install"
- This target will install the org.itk.simple.jar file into the extensions directory of the local jvm
- This will often require admin permissions since the jvm typically lives in a write protected directory
- Once installed as an extension, all java applications will have access to the package
- 2) Add org.itk.simple.jar to the java classpath when compiling
- Note that this is the same as adding the directory containing org.itk.simple.java to the classpath
- The simplest way to do this is to copy org.itk.simple.jar from $SIMPLE_ITK_BUILD_DIR/Wrapping to the directory containing the target application
- 1) After building SimpleITK, run "make install"
$ cp $SIMPLE_ITK_BUILD_DIR/Wrapping/org.itk.simple.jar . $ javac -classpath ./org.itk.simple.jar MySimpleITKJavaApplication.java
- Once the org.itk.simple package has been properly set up, classes must be imported in the java code
- This can be done either by importing the entire package or by importing individual classes
<source lang="java">
// Import the entire package at once import org.itk.simple.*
// Import individual classes
</source>
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