Page MenuHomePhabricator

Migrate segmentation to new multilabel data structure
Closed, ResolvedPublic

Description

The segmentation (i.e. the plugin and all the segmentation tools) should be migrated to use the new mitkLabelSetImage.

Event Timeline

User fetzer has pushed new remote branch:

bug-18646-labelset-image-for-segmentation

User wirkert has pushed new remote branch:

bug-18646-integrate_Sebastian_Ordas_multilabel_plugin

User goetzm has pushed new remote branch:

bug-18646-Michael1-EnsureAddToolFunction

User cordes has pushed new remote branch:

bug-18646-SegmentationInterpolation

Asking for Core-Modification flag:

Relevant branch is: bug-18646-labelset-image-for-segmentation

Affected class: mitkSurfaceToImageFilter

The following changes had been done:

Added boolean flag which allows to switch between two different output image pixel types (unsigned char, unsigned short) if MakeOutputBinary is on.

How to get tested:

Enhanced related mitkSurfaceToImageFilterTest

In mitk::SurfaceToImageFilter::GenerateOutputInformation() and even more noticing in void mitk::SurfaceToImageFilter::Stencil3DImage(int time) you should really use curly braces for if/else blocks. Especially in the latter case:

if (foo) <---

if(bar)
{
  baz;
}
else <---
  foo;

else
{
}

Optional: Furthermore I would prefer the template solution which would even result in less code as you wouldn't need any if/else-blocks to distinguish between the types. Probably it would boil down to add "template<typename T = unsigned char>" to the class declaration and to replace all according unsigned chars by T. You even would delete the getter and setter functions for UShortBinaryPixelType resulting in a total addition of just one line of code, no explicit multiple code paths and the possibility to use even other pixel types later.

[da6e34]: Merge branch 'bug-18646-labelset-image-for-segmentation'

Merged commits:

2015-08-12 16:25:37 Andreas Fetzer [ed8733]
Removed unused variable


2015-08-12 13:59:15 Andreas Fetzer [189e79]
Fixed tool interaction test

The pixel type of a segmentation has changed from unsigned char to unsigned
short.
Updated MITK-Data accordingly.
Rename reference files so that they correspond with the according tool name.


2015-08-12 13:57:19 Andreas Fetzer [89e70b]
Fixed LabelSetImageIOTest failure

Reason was, that the layer index was not set properly if a new layer was added.


2015-08-12 13:56:24 Andreas Fetzer [316506]
Added braces consistently


2015-08-05 16:54:00 Andreas Fetzer [a18f58]
Fixed build errors


2015-08-05 16:53:49 Andreas Fetzer [5141b9]
Fixed confirmation of 3D interpolation for mitkLabelSetImage

Since the LabelSetImage has a different pixel type this has to be propagated
to the SurfaceToImageFilter


2015-08-05 16:51:10 Andreas Fetzer [fa8185]
Apdations to mitkSurfaceToImageFilter

Since the segmentation module will be based on the new mitkLabelSetImage
datastructure this filter had to be adapted to the new pixel type (formerly
unsigned char now unsigned short)


2015-07-31 18:51:34 Caspar Goch [80ea4b]
Compare component types instead of pixel type vs component type


2015-07-24 17:39:40 Caspar Goch [c6def6]
Switch Otsu and Picking to multilabel output


2015-07-24 16:39:08 Caspar Goch [b728cf]
Enable unsigned char and unsigned short masking

Quick and dirty fix, code is just copied. This should be fixed in a better
way once the entire multilabel functionality is there and the
labelsetimage
is redesigned.


2015-07-24 10:50:20 Caspar Goch [659c32]
Allow morphological operations for any pixeltype


2015-07-23 14:32:51 Caspar Goch [fa14ed]
Boolean operations output multilabel images


2015-07-22 15:05:39 Caspar Goch [4d30df]
Fix 3D interpolation


2015-07-14 14:19:47 Caspar Goch [31c749]
More typenames


2015-07-14 12:38:20 Caspar Goch [6bbb56]
Fixes for mac/linux compatibility


2015-07-09 14:10:51 Caspar Goch [57f978]
Correction tool handle different pixel types differently


2015-07-08 18:10:09 Caspar Goch [5c9aab]
Separate Access Macro for 4D


2015-07-08 17:03:04 Caspar Goch [806b16]
Use active color as fill color for label set images


2015-07-08 16:08:03 Caspar Goch [9e9ff5]
Removed image typedef

As part of this removal the SurfaceStamp function was commented out, that
one will need to be ported for integration of more LabelSet functionality.
It had to be commented out as it depended on the the image typedef.


2015-07-08 15:46:31 Caspar Goch [ec6ef3]
Remove unnecessary typedefs


2015-07-08 15:33:45 Caspar Goch [a744d5]
Add labelset setting for loading


2015-07-08 14:03:33 Caspar Goch [83ca5a]
Handle VectorImages and Images separately


2015-07-08 14:02:59 Caspar Goch [9b7a29]
Properly set geometry for new layers


2015-07-02 14:26:43 Caspar Goch [f7e25b]
Using alternative method to create mitk images from single layer-labelsetimages


2015-06-29 18:02:01 Caspar Goch [390b39]
reading and writing - geometry fits


2015-06-26 18:52:41 Caspar Goch [6e1c6b]
implementing read/write


2015-06-26 13:23:55 Caspar Goch [e4f148]
Add Converter


2015-06-25 18:45:06 Caspar Goch [6653fd]
Move conversion code to helper class


2015-06-19 17:39:11 Caspar Goch [613ba6]
Use different initialize to avoid dimensions with extent 1 being ignored


2015-06-18 18:09:18 Caspar Goch [fef95f]
Replace correction tool pixel type


2015-06-18 11:00:45 Caspar Goch [975b3b]
Move png to correct location, delete wrong include


2015-06-18 10:51:23 Caspar Goch [5260c9]
Merge remote-tracking branch 'origin/bug-18646-labelset-image-for-segmentation' into local/multilabel

Conflicts:
Modules/Segmentation/Interactions/mitkTool.cpp


2015-02-02 23:57:13 Andreas Fetzer [4c4f87]
Initial commit

Started replacing the former "binary" image with the new labelSet datastructure

[de3db6]: Merge branch 'bug-18646-labelset-image-for-segmentation-master'

Merged commits:

2015-08-12 19:17:33 Andreas Fetzer [7c111e]
COMP Fixed wrong file name in test and update MITK-Data again