2011 Summer Project Week EMSegmentation in 3D Slicer4
- Notfound.png
Interesting picture to be added...
EMSegmentation in 3D Slicer 4
Key Investigators
- University of Pennsylvania: Daniel Haehn
- University of Pennsylvania: Dominique Belhachemi
- University of Pennsylvania: Kilian Pohl
Objective
The EMSegmenter will be available in 3D Slicer 4 as a loadable extension. This was necessary due to the growing size of the EMS package.
Also, the EMSegmenter will use the same repository for Slicer3 and Slicer4 versions to enhance maintenance for users and developers. Both versions are available in the Slicer3 trunk. This has the advantage that the logic and algorithm classes are shared between Slicer3 and Slicer4 and only the GUI changes depending on the Slicer version.
Another change is that the 3D Slicer4 EMSegment Wizard is written in Python. This results in very clean code. The algorithm and computing classes are still C++ code for performance.
Approach, Plan
Beside continuing the development of the EMSegment module, the main goal for the project week is to adopt the 3D Slicer4 extension system. This will be a challenge since the EMSegment module consists of a C++ loadable module, a Python loadable module and several commandline tools. We want to coordinate with the 3D Slicer core developers to achieve this goal.
Progress
The EMSegmenter uses Tcl task files to define pipelines. In Slicer4, the Tcl code execution goes through Python. We investigated on a problem which does not get the return value from Tcl to Python to C++ which is essential for this module.
Also, we worked on the extension infrastructure to support the Superbuild mechanism. This work is nearly complete so the EMSegmenter can be included in the Slicer4 Nightly builds soon.
References
https://www.slicer.org/wiki/Slicer4:EMSegment
Delivery Mechanism
This work will be delivered to the NAMIC Kit as a
- Slicer Module
- Built-in:
- Extension -- commandline:
- Extension -- loadable: [X]