13 #ifndef __mitkLabelSetImage_H_ 14 #define __mitkLabelSetImage_H_ 74 void MergeLabel(PixelType pixelValue, PixelType sourcePixelValue,
unsigned int layer = 0);
83 void MergeLabels(PixelType pixelValue, std::vector<PixelType>& vectorOfSourcePixelValues,
unsigned int layer = 0);
87 void UpdateCenterOfMass(PixelType pixelValue,
unsigned int layer = 0);
95 void RemoveLabels(std::vector<PixelType> &VectorOfLabelPixelValues,
unsigned int layer = 0);
104 void EraseLabel(PixelType pixelValue,
unsigned int layer = 0);
111 void EraseLabels(std::vector<PixelType> &VectorOfLabelPixelValues,
unsigned int layer = 0);
115 bool ExistLabel(PixelType pixelValue)
const;
123 bool ExistLabel(PixelType pixelValue,
unsigned int layer)
const;
127 bool ExistLabelSet(
unsigned int layer)
const;
134 mitk::Label *GetActiveLabel(
unsigned int layer = 0);
142 mitk::Label *GetLabel(PixelType pixelValue,
unsigned int layer = 0)
const;
162 unsigned int GetActiveLayer()
const;
169 unsigned int GetNumberOfLabels(
unsigned int layer = 0)
const;
175 unsigned int GetTotalNumberOfLabels()
const;
186 mitk::Image::Pointer CreateLabelMask(PixelType index,
bool useActiveLayer =
true,
unsigned int layer = 0);
203 void SetActiveLayer(
unsigned int layer);
207 unsigned int GetNumberOfLayers()
const;
214 unsigned int AddLayer(mitk::LabelSet::Pointer layer =
nullptr);
236 void AddLabelSetToLayer(
const unsigned int layerIdx,
const mitk::LabelSet::Pointer labelSet);
248 const mitk::Image *GetLayerImage(
unsigned int layer)
const;
250 void OnLabelSetModified();
273 template <
typename ImageType1,
typename ImageType2>
274 void ChangeLayerProcessing(ImageType1 *source, ImageType2 *target);
276 template <
typename TPixel,
unsigned int VImageDimension>
277 void LayerContainerToImageProcessing(itk::Image<TPixel, VImageDimension> *source,
unsigned int layer);
279 template <
typename TPixel,
unsigned int VImageDimension>
280 void ImageToLayerContainerProcessing(itk::Image<TPixel, VImageDimension> *source,
unsigned int layer)
const;
282 template <
typename ImageType>
283 void CalculateCenterOfMassProcessing(
ImageType *input, PixelType index,
unsigned int layer);
285 template <
typename ImageType>
286 void ClearBufferProcessing(
ImageType *input);
288 template <
typename ImageType>
289 void EraseLabelProcessing(
ImageType *input, PixelType index,
unsigned int layer);
294 template <
typename ImageType>
295 void MergeLabelProcessing(
ImageType *input, PixelType pixelValue, PixelType index);
297 template <
typename ImageType>
300 template <
typename ImageType>
303 template <
typename LabelSetImageType,
typename ImageType>
304 void InitializeByLabeledImageProcessing(LabelSetImageType *input,
ImageType *other);
340 #endif // __mitkLabelSetImage_H_
Base of all data objects.
itk::Image< unsigned char, 3 > ImageType
void Initialize() override
Message BeforeChangeLayerEvent
BeforeChangeLayerEvent (e.g. used for GUI integration) As soon as active labelset should be changed...
DataCollection - Class to facilitate loading/accessing structured data.
A data structure describing a label.
#define MITKMULTILABEL_EXPORT
mitk::Label::Pointer m_ExteriorLabel
std::vector< Image::Pointer > m_LayerContainer
#define mitkClassMacro(className, SuperClassName)
Image class for storing images.
Event/message/notification class.
mitk::Label::PixelType PixelType
mitk::Image::Pointer image
#define mitkCloneMacro(classname)
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.
LabelSetImage class for handling labels and layers in a segmentation session.
bool m_activeLayerInvalid
MITKCORE_EXPORT const ScalarType eps
mitk::Image::Pointer mask
std::vector< LabelSet::Pointer > m_LabelSetContainer
Message AfterChangeLayerEvent
AfterchangeLayerEvent (e.g. used for GUI integration) As soon as active labelset was changed...