#include <itkLabelObject.h>
LabelObject is the base class to represent a labeled object in an image. It should be used associated with the LabelMap.
LabelObject store mainly 2 things: the label of the object, and a set of lines which are part of the object. No attribute is available in that class, so this class can be used as a base class to implement a label object with attribute, or when no attribute is needed (see the reconstruction filters for an example. If a simple attribute is needed, AttributeLabelObject can be used directly.
All the subclasses of LabelObject have to reinplement the CopyAttributesFrom() method.
This implementation was taken from the Insight Journal paper: http://hdl.handle.net/1926/584 or http://www.insight-journal.org/browse/publication/176
Definition at line 55 of file itkLabelObject.h.
Public Types | |
enum | { LABEL = 0 } |
typedef unsigned int | AttributeType |
typedef SmartPointer< const Self > | ConstPointer |
typedef WeakPointer< const Self > | ConstWeakPointer |
typedef Index< VImageDimension > | IndexType |
typedef Self | LabelObjectType |
typedef TLabel | LabelType |
typedef LineType::LengthType | LengthType |
typedef std::deque< LineType > | LineContainerType |
typedef LabelObjectLine < VImageDimension > | LineType |
typedef SmartPointer< Self > | Pointer |
typedef LabelObject | Self |
typedef LightObject | Superclass |
Public Member Functions | |
void | AddIndex (const IndexType &idx) |
void | AddLine (const LineType &line) |
void | AddLine (const IndexType &idx, const LengthType &length) |
void | CopyAllFrom (const Self *src) |
virtual void | CopyAttributesFrom (const Self *src) |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
IndexType | GetIndex (int offset) const |
LineType & | GetLine (int i) |
const LineType & | GetLine (int i) const |
LineContainerType & | GetLineContainer () |
const LineContainerType & | GetLineContainer () const |
virtual const char * | GetNameOfClass () const |
int | GetNumberOfLines () const |
virtual int | GetReferenceCount () const |
bool | HasIndex (const IndexType &idx) const |
itkStaticConstMacro (ImageDimension, unsigned int, VImageDimension) | |
void | Optimize () |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
void | SetLineContainer (const LineContainerType &lineContainer) |
virtual void | SetReferenceCount (int) |
int | Size () const |
virtual void | UnRegister () const |
const LabelType & | GetLabel () const |
void | SetLabel (const LabelType &label) |
Static Public Member Functions | |
static void | BreakOnError () |
static AttributeType | GetAttributeFromName (const std::string &s) |
static std::string | GetNameFromAttribute (const AttributeType &a) |
static Pointer | New () |
Protected Types | |
typedef int | InternalReferenceCountType |
Protected Member Functions | |
LabelObject () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
Protected Attributes | |
InternalReferenceCountType | m_ReferenceCount |
SimpleFastMutexLock | m_ReferenceCountLock |
typedef unsigned int itk::LabelObject< TLabel, VImageDimension >::AttributeType |
Definition at line 79 of file itkLabelObject.h.
typedef SmartPointer<const Self> itk::LabelObject< TLabel, VImageDimension >::ConstPointer |
typedef WeakPointer<const Self> itk::LabelObject< TLabel, VImageDimension >::ConstWeakPointer |
Definition at line 64 of file itkLabelObject.h.
typedef Index< VImageDimension > itk::LabelObject< TLabel, VImageDimension >::IndexType |
Definition at line 74 of file itkLabelObject.h.
typedef int itk::LightObject::InternalReferenceCountType [protected, inherited] |
Define the type of the reference count according to the target. This allows the use of atomic operations
Definition at line 139 of file itkLightObject.h.
typedef Self itk::LabelObject< TLabel, VImageDimension >::LabelObjectType |
Definition at line 61 of file itkLabelObject.h.
typedef TLabel itk::LabelObject< TLabel, VImageDimension >::LabelType |
Definition at line 75 of file itkLabelObject.h.
typedef LineType::LengthType itk::LabelObject< TLabel, VImageDimension >::LengthType |
Definition at line 77 of file itkLabelObject.h.
typedef std::deque< LineType > itk::LabelObject< TLabel, VImageDimension >::LineContainerType |
Definition at line 78 of file itkLabelObject.h.
typedef LabelObjectLine< VImageDimension > itk::LabelObject< TLabel, VImageDimension >::LineType |
Definition at line 76 of file itkLabelObject.h.
typedef SmartPointer<Self> itk::LabelObject< TLabel, VImageDimension >::Pointer |
typedef LabelObject itk::LabelObject< TLabel, VImageDimension >::Self |
Standard class typedefs
Reimplemented from itk::LightObject.
Definition at line 59 of file itkLabelObject.h.
typedef LightObject itk::LabelObject< TLabel, VImageDimension >::Superclass |
Definition at line 60 of file itkLabelObject.h.
anonymous enum |
itk::LabelObject< TLabel, VImageDimension >::LabelObject | ( | ) | [protected] |
void itk::LabelObject< TLabel, VImageDimension >::AddIndex | ( | const IndexType & | idx | ) |
Add an index to the object. If the index is already in the object, the index can be found several time in the object.
void itk::LabelObject< TLabel, VImageDimension >::AddLine | ( | const LineType & | line | ) |
Add a new line to the object, without any check.
void itk::LabelObject< TLabel, VImageDimension >::AddLine | ( | const IndexType & | idx, | |
const LengthType & | length | |||
) |
Add a new line to the object, without any check.
static void itk::LightObject::BreakOnError | ( | ) | [static, inherited] |
This method is called when itkExceptionMacro executes. It allows the debugger to break on error.
void itk::LabelObject< TLabel, VImageDimension >::CopyAllFrom | ( | const Self * | src | ) |
Copy the lines, the label and the attributes from another node.
virtual void itk::LabelObject< TLabel, VImageDimension >::CopyAttributesFrom | ( | const Self * | src | ) | [virtual] |
Copy the attributes of another node to this one
virtual Pointer itk::LightObject::CreateAnother | ( | ) | const [virtual, inherited] |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented in itk::Object.
virtual void itk::LightObject::Delete | ( | ) | [virtual, inherited] |
Delete an itk object. This method should always be used to delete an object when the new operator was used to create it. Using the C delete method will not work with reference counting.
static AttributeType itk::LabelObject< TLabel, VImageDimension >::GetAttributeFromName | ( | const std::string & | s | ) | [static] |
IndexType itk::LabelObject< TLabel, VImageDimension >::GetIndex | ( | int | offset | ) | const |
const LabelType& itk::LabelObject< TLabel, VImageDimension >::GetLabel | ( | ) | const |
Set/Get the label associated with the object.
LineType& itk::LabelObject< TLabel, VImageDimension >::GetLine | ( | int | i | ) |
const LineType& itk::LabelObject< TLabel, VImageDimension >::GetLine | ( | int | i | ) | const |
LineContainerType& itk::LabelObject< TLabel, VImageDimension >::GetLineContainer | ( | ) |
const LineContainerType& itk::LabelObject< TLabel, VImageDimension >::GetLineContainer | ( | ) | const |
Return the line container of this object
static std::string itk::LabelObject< TLabel, VImageDimension >::GetNameFromAttribute | ( | const AttributeType & | a | ) | [static] |
virtual const char* itk::LabelObject< TLabel, VImageDimension >::GetNameOfClass | ( | ) | const [virtual] |
Run-time type information (and related methods).
Reimplemented from itk::LightObject.
int itk::LabelObject< TLabel, VImageDimension >::GetNumberOfLines | ( | ) | const |
virtual int itk::LightObject::GetReferenceCount | ( | ) | const [inline, virtual, inherited] |
Gets the reference count on this object.
Definition at line 106 of file itkLightObject.h.
bool itk::LabelObject< TLabel, VImageDimension >::HasIndex | ( | const IndexType & | idx | ) | const |
Return true if the object contain the given index and false otherwise. Worst case complexity is O(L) where L is the number of lines in the object.
itk::LabelObject< TLabel, VImageDimension >::itkStaticConstMacro | ( | ImageDimension | , | |
unsigned | int, | |||
VImageDimension | ||||
) |
static Pointer itk::LabelObject< TLabel, VImageDimension >::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::LightObject.
void itk::LabelObject< TLabel, VImageDimension >::Optimize | ( | ) |
Reorder the lines, merge the touching lines and ensure that no pixel is covered by two lines
void itk::LightObject::Print | ( | std::ostream & | os, | |
Indent | indent = 0 | |||
) | const [inherited] |
Cause the object to print itself out.
Referenced by itk::WeakPointer< itk::ProcessObject >::Print(), and itk::SmartPointer< itk::MutualInformationImageToImageMetric >::Print().
virtual void itk::LightObject::PrintHeader | ( | std::ostream & | os, | |
Indent | indent | |||
) | const [protected, virtual, inherited] |
void itk::LabelObject< TLabel, VImageDimension >::PrintSelf | ( | std::ostream & | os, | |
Indent | indent | |||
) | const [protected, virtual] |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::LightObject.
virtual void itk::LightObject::PrintTrailer | ( | std::ostream & | os, | |
Indent | indent | |||
) | const [protected, virtual, inherited] |
virtual void itk::LightObject::Register | ( | ) | const [virtual, inherited] |
Increase the reference count (mark as used by another object).
Reimplemented in itk::Object.
void itk::LabelObject< TLabel, VImageDimension >::SetLabel | ( | const LabelType & | label | ) |
Set/Get the label associated with the object.
void itk::LabelObject< TLabel, VImageDimension >::SetLineContainer | ( | const LineContainerType & | lineContainer | ) |
virtual void itk::LightObject::SetReferenceCount | ( | int | ) | [virtual, inherited] |
Sets the reference count on this object. This is a dangerous method, use it with care.
Reimplemented in itk::Object.
int itk::LabelObject< TLabel, VImageDimension >::Size | ( | ) | const |
virtual void itk::LightObject::UnRegister | ( | ) | const [virtual, inherited] |
Decrease the reference count (release by another object).
Reimplemented in itk::Object.
InternalReferenceCountType itk::LightObject::m_ReferenceCount [mutable, protected, inherited] |
Number of uses of this object by other objects.
Definition at line 144 of file itkLightObject.h.
SimpleFastMutexLock itk::LightObject::m_ReferenceCountLock [mutable, protected, inherited] |
Mutex lock to protect modification to the reference count
Definition at line 147 of file itkLightObject.h.