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);
135 const mitk::Label* GetActiveLabel(
unsigned int layer = 0)
const;
143 mitk::Label *GetLabel(PixelType pixelValue,
unsigned int layer = 0)
const;
164 unsigned int GetActiveLayer()
const;
171 unsigned int GetNumberOfLabels(
unsigned int layer = 0)
const;
177 unsigned int GetTotalNumberOfLabels()
const;
188 mitk::Image::Pointer CreateLabelMask(PixelType index,
bool useActiveLayer =
true,
unsigned int layer = 0);
201 void MaskStamp(
mitk::Image *mask,
bool forceOverwrite);
205 void SetActiveLayer(
unsigned int layer);
209 unsigned int GetNumberOfLayers()
const;
216 unsigned int AddLayer(mitk::LabelSet::Pointer layer =
nullptr);
238 void AddLabelSetToLayer(
const unsigned int layerIdx,
const mitk::LabelSet::Pointer labelSet);
250 const mitk::Image *GetLayerImage(
unsigned int layer)
const;
252 void OnLabelSetModified();
275 template <
typename ImageType1,
typename ImageType2>
276 void ChangeLayerProcessing(ImageType1 *source, ImageType2 *target);
278 template <
typename TPixel,
unsigned int VImageDimension>
279 void LayerContainerToImageProcessing(itk::Image<TPixel, VImageDimension> *source,
unsigned int layer);
281 template <
typename TPixel,
unsigned int VImageDimension>
282 void ImageToLayerContainerProcessing(itk::Image<TPixel, VImageDimension> *source,
unsigned int layer)
const;
284 template <
typename ImageType>
285 void CalculateCenterOfMassProcessing(ImageType *input, PixelType index,
unsigned int layer);
287 template <
typename ImageType>
288 void ClearBufferProcessing(ImageType *input);
290 template <
typename ImageType>
291 void EraseLabelProcessing(ImageType *input, PixelType index,
unsigned int layer);
296 template <
typename ImageType>
297 void MergeLabelProcessing(ImageType *input, PixelType pixelValue, PixelType index);
299 template <
typename ImageType>
302 template <
typename ImageType>
303 void MaskStampProcessing(ImageType *input,
mitk::Image *mask,
bool forceOverwrite);
305 template <
typename LabelSetImageType,
typename ImageType>
306 void InitializeByLabeledImageProcessing(LabelSetImageType *input, ImageType *other);
342 #endif // __mitkLabelSetImage_H_ MITKCORE_EXPORT const ScalarType eps
Base of all data objects.
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
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.
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
#define mitkCloneMacro(classname)
LabelSetImage class for handling labels and layers in a segmentation session.
bool m_activeLayerInvalid
std::vector< LabelSet::Pointer > m_LabelSetContainer
Message AfterChangeLayerEvent
AfterchangeLayerEvent (e.g. used for GUI integration) As soon as active labelset was changed...