Difference between revisions of "Multi Label Segmentation"
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
(username removed)  | 
				(username removed)   | 
				||
| Line 36: | Line 36: | ||
* Stage 1: add lock/edit feature to the current approach  | * Stage 1: add lock/edit feature to the current approach  | ||
| − | ** Add "binaryimage.locked" bool propery to data node (e.g. in mitk::ImageMapperGL2D::[[SetDefaultProperties]]() )  | + | ** Add "binaryimage.locked" bool propery to data node (e.g. in mitk::ImageMapperGL2D::[[SetDefaultProperties]]() ). Should be set to TRUE by default.  | 
** In tool manager:  | ** In tool manager:  | ||
*** m_ToolManager->[[GetEditableData]]();  | *** m_ToolManager->[[GetEditableData]]();  | ||
*** m_ToolManager->[[GetLockedData]]();  | *** m_ToolManager->[[GetLockedData]]();  | ||
* For every mitk::Tool, upon finish editing (e.g. mouse release), correct the feedback image for every intersection with other editable/locked segmentations  | * For every mitk::Tool, upon finish editing (e.g. mouse release), correct the feedback image for every intersection with other editable/locked segmentations  | ||
| + | ** The Segmentation Interpolation should also respect other locked and editable labels  | ||
* Stage 2:  | * Stage 2:  | ||
* Stage 3:  | * Stage 3:  | ||
Revision as of 11:21, 26 January 2011
Using multiple segmentations with the Segmentation bundle
Following a proposal of Sebastian Ordas to support multi-label segmentations, this page will be used to sketch future changes to the Segmentation bundle and the related framework.
Shortcomings of the current implementation
- 8-bit images are used for segmentations by default, wasting 7 of 8 byts, occupying far more memory than technically necessary
 
Wishlist
- what is not possible or cumbersome and should be changed?
- multiple labels on the same segmentation image: have 8-bit images with 0 value as background and the remaining 255 values as labeled objects.
 
 - what enhancements would help in which situations?
- have label "lock"/"editable" boolean property
 - "stick" label boundaries to neighboring labels: e.g. if the label is smoothed, so will be its neighbors
 - "background" label should be created by default, and should also be possible to lock it
 
 - useful resources:
- vtkEdge paintbrush classes e.g. http://www.vtkedge.org/doc/nightly/html/classvtkKWEPaintbrushMergeSketches.html#_details
 - itkSnap http://www.itksnap.org/pmwiki/pmwiki.php
 - to support multi-label images, ITK's label object classes (http://www.insight-journal.org/browse/publication/176) could be useful
 - Segmentation module in Amira (as it used to be in v3.1)http://www.amira.com/images/stories/pdf/31/Amira31-manual.pdf (see Sec. 2.5)
 
 - how does I/O work?
 - do we need a new data type for MITK (derived from BaseData?)
 - how could these be mapped types for rendering?
 
Implications on the implementation
- what parts of MITK would need to be changed?
 - what needs to be changed in the Segmentation view?
 
Proposed working plan
- Stage 1: add lock/edit feature to the current approach
- Add "binaryimage.locked" bool propery to data node (e.g. in mitk::ImageMapperGL2D::SetDefaultProperties() ). Should be set to TRUE by default.
 - In tool manager:
- m_ToolManager->GetEditableData();
 - m_ToolManager->GetLockedData();
 
 
 - For every mitk::Tool, upon finish editing (e.g. mouse release), correct the feedback image for every intersection with other editable/locked segmentations
- The Segmentation Interpolation should also respect other locked and editable labels
 
 - Stage 2:
 - Stage 3: