ITK  5.2.0
Insight Toolkit
itkLabelGeometryImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkLabelGeometryImageFilter_h
19 #define itkLabelGeometryImageFilter_h
20 
21 #include "itkImageToImageFilter.h"
22 #include "itkNumericTraits.h"
23 #include "itkArray.h"
25 #include <map>
26 #include <vector>
27 #include "vnl/algo/vnl_symmetric_eigensystem.h"
28 #include "vnl/vnl_det.h"
29 #include "itkMath.h"
30 
31 namespace itk
32 {
75 template <typename TLabelImage, typename TIntensityImage = TLabelImage>
76 class ITK_TEMPLATE_EXPORT LabelGeometryImageFilter : public ImageToImageFilter<TLabelImage, TIntensityImage>
77 {
78 public:
79  ITK_DISALLOW_COPY_AND_MOVE(LabelGeometryImageFilter);
80 
86 
88  itkNewMacro(Self);
89 
92 
94  using IntensityImageType = TIntensityImage;
95  using InputImagePointer = typename TIntensityImage::Pointer;
99  using PixelType = typename TIntensityImage::PixelType;
100 
102  using LabelImageType = TLabelImage;
103  using LabelImagePointer = typename TLabelImage::Pointer;
107  using LabelPixelType = typename TLabelImage::PixelType;
109 
111  static constexpr unsigned int ImageDimension = TLabelImage::ImageDimension;
112 
115 
118 
121 
125 
126  // using BoundingBoxVerticesType = itk::FixedArray<
127  // LabelPointType,std::pow(2.0,Self::ImageDimension)>;
128  using BoundingBoxVerticesType = std::vector<LabelPointType>;
129 
132 
135 
137  using LabelsType = std::vector<LabelPixelType>;
138 
140  using LabelIndicesType = std::vector<LabelIndexType>;
141 
143  using VectorType = std::vector<double>;
144 
146  using MatrixType = vnl_matrix<double>;
147 
153  {
154  public:
155  // default constructor
157  {
158  // initialized to the default values
159  this->m_Label = 0;
160  this->m_Sum = NumericTraits<RealType>::ZeroValue();
161 
162  const unsigned int imageDimension = Self::ImageDimension;
163 
164  // m_BoundingBox.resize(imageDimension*2);
165  for (unsigned int i = 0; i < imageDimension * 2; i += 2)
166  {
169  }
170 
171  m_BoundingBoxVolume = 0;
172  m_BoundingBoxSize.Fill(0);
173  m_PixelIndices.clear();
174  m_Centroid.Fill(0);
175  m_WeightedCentroid.Fill(0);
176  m_ZeroOrderMoment = 0;
177  m_FirstOrderRawMoments.Fill(0);
178  m_FirstOrderWeightedRawMoments.Fill(0);
179  m_Eigenvalues.resize(ImageDimension);
180  m_Eigenvalues.clear();
181  m_Eigenvectors.set_size(ImageDimension, ImageDimension);
182  m_Eigenvectors.fill(0);
183  m_AxesLength.Fill(0);
184  m_Eccentricity = 1;
185  m_Elongation = 1;
186  m_Orientation = 0;
187  LabelPointType emptyPoint;
188  emptyPoint.Fill(0);
189  unsigned int numberOfVertices = 1 << ImageDimension;
190  m_OrientedBoundingBoxVertices.resize(numberOfVertices, emptyPoint);
191  m_OrientedBoundingBoxVolume = 0;
192  m_OrientedBoundingBoxSize.Fill(0);
193  m_OrientedLabelImage = LabelImageType::New();
194  m_OrientedIntensityImage = IntensityImageType::New();
195  m_OrientedBoundingBoxOrigin.Fill(0);
196  m_RotationMatrix.set_size(ImageDimension, ImageDimension);
197  m_RotationMatrix.fill(0.0);
198 
199  m_SecondOrderRawMoments.set_size(ImageDimension, ImageDimension);
200  m_SecondOrderCentralMoments.set_size(ImageDimension, ImageDimension);
201  for (unsigned int i = 0; i < ImageDimension; i++)
202  {
203  for (unsigned int j = 0; j < ImageDimension; j++)
204  {
205  m_SecondOrderRawMoments(i, j) = 0;
206  m_SecondOrderCentralMoments(i, j) = 0;
207  }
208  }
209  }
210 
235  typename LabelImageType::Pointer m_OrientedLabelImage;
236  typename IntensityImageType::Pointer m_OrientedIntensityImage;
239  };
240 
242  // Map from the label to the class storing all of the geometry information.
243  using MapType = std::map<LabelPixelType, LabelGeometry>;
244  using MapIterator = typename std::map<LabelPixelType, LabelGeometry>::iterator;
245  using MapConstIterator = typename std::map<LabelPixelType, LabelGeometry>::const_iterator;
246 
247  // Macros for enabling the calculation of additional features.
248  itkGetMacro(CalculatePixelIndices, bool);
249  itkBooleanMacro(CalculatePixelIndices);
250  void
251  SetCalculatePixelIndices(const bool value)
252  {
253  // CalculateOrientedBoundingBox, CalculateOrientedLabelImage, and
254  // CalculateOrientedIntensityImage all need CalculatePixelIndices to be
255  // turned
256  // on if they are turned on. So, CalculatePixelIndices cannot be
257  // turned off if any of these flags are turned on.
258  if (value == false)
259  {
260  if ((this->m_CalculateOrientedBoundingBox == true) || (this->m_CalculateOrientedLabelRegions == true) ||
261  (this->m_CalculateOrientedIntensityRegions == true))
262  {
263  // We cannot change the value, so return.
264  return;
265  }
266  }
267 
268  if (this->m_CalculatePixelIndices != value)
269  {
270  this->m_CalculatePixelIndices = value;
271  this->Modified();
272  }
273  }
274 
275  itkGetMacro(CalculateOrientedBoundingBox, bool);
276  itkBooleanMacro(CalculateOrientedBoundingBox);
277  void
279  {
280  if (this->m_CalculateOrientedBoundingBox != value)
281  {
282  this->m_CalculateOrientedBoundingBox = value;
283  this->Modified();
284  }
285 
286  // CalculateOrientedBoundingBox needs
287  // CalculatePixelIndices to be turned on.
288  if (value == true)
289  {
290  this->SetCalculatePixelIndices(true);
291  }
292  }
293 
294  itkGetMacro(CalculateOrientedLabelRegions, bool);
295  itkBooleanMacro(CalculateOrientedLabelRegions);
296  void
298  {
299  if (this->m_CalculateOrientedLabelRegions != value)
300  {
301  this->m_CalculateOrientedLabelRegions = value;
302  this->Modified();
303 
304  // CalculateOrientedLabelImage needs
305  // CalculateOrientedBoundingBox to be turned on.
306  if (value == true)
307  {
308  SetCalculateOrientedBoundingBox(true);
309  }
310  }
311  }
312 
313  itkGetMacro(CalculateOrientedIntensityRegions, bool);
314  itkBooleanMacro(CalculateOrientedIntensityRegions);
315  void
317  {
318  if (this->m_CalculateOrientedIntensityRegions != value)
319  {
320  this->m_CalculateOrientedIntensityRegions = value;
321  this->Modified();
322 
323  // CalculateOrientedIntensityImage needs
324  // CalculateOrientedBoundingBox to be turned on.
325  if (value == true)
326  {
327  this->SetCalculateOrientedBoundingBox(true);
328  }
329  }
330  }
331 
333  void
334  SetIntensityInput(const TIntensityImage * input)
335  {
336  // Process object is not const-correct so the const casting is required.
337  this->SetNthInput(1, const_cast<TIntensityImage *>(input));
338  }
339 
341  const TIntensityImage *
343  {
344  return static_cast<TIntensityImage *>(const_cast<DataObject *>(this->ProcessObject::GetInput(1)));
345  }
346 
349  bool
351  {
352  return m_LabelGeometryMapper.find(label) != m_LabelGeometryMapper.end();
353  }
354 
358  {
359  return m_LabelGeometryMapper.size();
360  }
361 
364  {
365  return this->GetNumberOfObjects();
366  }
367 
369  std::vector<LabelPixelType>
370  GetLabels() const
371  {
372  return m_AllLabels;
373  }
374 
376  LabelIndicesType
377  GetPixelIndices(LabelPixelType label) const;
378 
382  GetVolume(LabelPixelType label) const;
383 
385  // std::vector< SizeValueType > GetAllCounts() const;
386 
388  RealType
389  GetIntegratedIntensity(LabelPixelType label) const;
390 
392  LabelPointType
393  GetCentroid(LabelPixelType label) const;
394 
396  LabelPointType
397  GetWeightedCentroid(LabelPixelType label) const;
398 
400  VectorType
401  GetEigenvalues(LabelPixelType label) const;
402 
404  MatrixType
405  GetEigenvectors(LabelPixelType label) const;
406 
408  AxesLengthType
409  GetAxesLength(LabelPixelType label) const;
410 
413  RealType
414  GetMinorAxisLength(LabelPixelType label) const;
415 
418  RealType
419  GetMajorAxisLength(LabelPixelType label) const;
420 
422  RealType
423  GetEccentricity(LabelPixelType label) const;
424 
427  RealType
428  GetElongation(LabelPixelType label) const;
429 
431  RealType
432  GetOrientation(LabelPixelType label) const;
433 
437  BoundingBoxType
438  GetBoundingBox(LabelPixelType label) const;
439 
441  RealType
442  GetBoundingBoxVolume(LabelPixelType label) const;
443 
445  LabelSizeType
446  GetBoundingBoxSize(LabelPixelType label) const;
447 
454  BoundingBoxVerticesType
455  GetOrientedBoundingBoxVertices(LabelPixelType label) const;
456 
458  RealType
459  GetOrientedBoundingBoxVolume(LabelPixelType label) const;
460 
462  LabelPointType
463  GetOrientedBoundingBoxSize(LabelPixelType label) const;
464 
466  LabelPointType
467  GetOrientedBoundingBoxOrigin(LabelPixelType label) const;
468 
471  MatrixType
472  GetRotationMatrix(LabelPixelType label) const;
473 
475  RegionType
476  GetRegion(LabelPixelType label) const;
477 
479  TLabelImage *
480  GetOrientedLabelImage(LabelPixelType label) const;
481 
484  TIntensityImage *
485  GetOrientedIntensityImage(LabelPixelType label) const;
486 
487 #ifdef ITK_USE_CONCEPT_CHECKING
488  // Begin concept checking
489  itkConceptMacro(InputHasNumericTraitsCheck, (Concept::HasNumericTraits<PixelType>));
490  // End concept checking
491 #endif
492 
493 protected:
495  ~LabelGeometryImageFilter() override = default;
496  void
497  PrintSelf(std::ostream & os, Indent indent) const override;
498 
499  void
500  GenerateData() override;
501 
502 private:
503  bool
504  CalculateOrientedBoundingBoxVertices(vnl_symmetric_eigensystem<double> eig, LabelGeometry & m_LabelGeometry);
505 
510 
514 }; // end of class
515 
516 } // end namespace itk
517 
518 #ifndef ITK_MANUAL_INSTANTIATION
519 # include "itkLabelGeometryImageFilter.hxx"
520 #endif
521 
522 #endif
itk::LabelGeometryImageFilter::GetLabels
std::vector< LabelPixelType > GetLabels() const
Definition: itkLabelGeometryImageFilter.h:370
itk::LabelGeometryImageFilter::SetCalculateOrientedLabelRegions
void SetCalculateOrientedLabelRegions(const bool value)
Definition: itkLabelGeometryImageFilter.h:297
itk::SimpleDataObjectDecorator
Decorates any "simple" data type (data types without smart pointers) with a DataObject API.
Definition: itkSimpleDataObjectDecorator.h:66
itk::LabelGeometryImageFilter::HasLabel
bool HasLabel(LabelPixelType label) const
Definition: itkLabelGeometryImageFilter.h:350
itk::LabelGeometryImageFilter::SetCalculateOrientedBoundingBox
void SetCalculateOrientedBoundingBox(const bool value)
Definition: itkLabelGeometryImageFilter.h:278
itk::LabelGeometryImageFilter::LabelImageType
TLabelImage LabelImageType
Definition: itkLabelGeometryImageFilter.h:102
itk::LabelGeometryImageFilter::LabelIndicesType
std::vector< LabelIndexType > LabelIndicesType
Definition: itkLabelGeometryImageFilter.h:140
itk::LabelGeometryImageFilter::LabelGeometry::m_RotationMatrix
MatrixType m_RotationMatrix
Definition: itkLabelGeometryImageFilter.h:237
itk::LabelGeometryImageFilter::LabelGeometry::m_Eigenvectors
MatrixType m_Eigenvectors
Definition: itkLabelGeometryImageFilter.h:223
itk::LabelGeometryImageFilter::LabelGeometry::LabelGeometry
LabelGeometry()
Definition: itkLabelGeometryImageFilter.h:156
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:714
itk::LabelGeometryImageFilter::m_CalculateOrientedBoundingBox
bool m_CalculateOrientedBoundingBox
Definition: itkLabelGeometryImageFilter.h:507
itk::LabelGeometryImageFilter::MapConstIterator
typename std::map< LabelPixelType, LabelGeometry >::const_iterator MapConstIterator
Definition: itkLabelGeometryImageFilter.h:245
itk::LabelGeometryImageFilter::LabelGeometry::m_BoundingBoxSize
LabelSizeType m_BoundingBoxSize
Definition: itkLabelGeometryImageFilter.h:229
itk::LabelGeometryImageFilter::LabelsType
std::vector< LabelPixelType > LabelsType
Definition: itkLabelGeometryImageFilter.h:137
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxSize
LabelPointType m_OrientedBoundingBoxSize
Definition: itkLabelGeometryImageFilter.h:234
itk::LabelGeometryImageFilter::LabelPixelType
typename TLabelImage::PixelType LabelPixelType
Definition: itkLabelGeometryImageFilter.h:107
itk::LabelGeometryImageFilter::MatrixType
vnl_matrix< double > MatrixType
Definition: itkLabelGeometryImageFilter.h:146
itk::LabelGeometryImageFilter::IndexType
typename TIntensityImage::IndexType IndexType
Definition: itkLabelGeometryImageFilter.h:98
itk::LabelGeometryImageFilter::VectorType
std::vector< double > VectorType
Definition: itkLabelGeometryImageFilter.h:143
itk::NumericTraits::NonpositiveMin
static constexpr T NonpositiveMin()
Definition: itkNumericTraits.h:97
itk::LabelGeometryImageFilter::SetIntensityInput
void SetIntensityInput(const TIntensityImage *input)
Definition: itkLabelGeometryImageFilter.h:334
itk::GTest::TypedefsAndConstructors::Dimension2::VectorType
ImageBaseType::SpacingType VectorType
Definition: itkGTestTypedefsAndConstructors.h:53
itk::GTest::TypedefsAndConstructors::Dimension2::PointType
ImageBaseType::PointType PointType
Definition: itkGTestTypedefsAndConstructors.h:51
itk::LabelGeometryImageFilter::LabelGeometry::m_AxesLength
FixedArray< float, Self::ImageDimension > m_AxesLength
Definition: itkLabelGeometryImageFilter.h:224
itk::LabelGeometryImageFilter::SetCalculateOrientedIntensityRegions
void SetCalculateOrientedIntensityRegions(const bool value)
Definition: itkLabelGeometryImageFilter.h:316
itk::LabelGeometryImageFilter::LabelGeometry::m_BoundingBoxVolume
RealType m_BoundingBoxVolume
Definition: itkLabelGeometryImageFilter.h:230
itk::LabelGeometryImageFilter::BoundingBoxVerticesType
std::vector< LabelPointType > BoundingBoxVerticesType
Definition: itkLabelGeometryImageFilter.h:128
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::LabelGeometryImageFilter::m_AllLabels
LabelsType m_AllLabels
Definition: itkLabelGeometryImageFilter.h:513
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::LabelGeometryImageFilter::LabelGeometry::m_Eigenvalues
VectorType m_Eigenvalues
Definition: itkLabelGeometryImageFilter.h:222
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxVolume
RealType m_OrientedBoundingBoxVolume
Definition: itkLabelGeometryImageFilter.h:233
itk::LabelGeometryImageFilter::LabelGeometry::m_SecondOrderCentralMoments
MatrixType m_SecondOrderCentralMoments
Definition: itkLabelGeometryImageFilter.h:221
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderRawCrossMoment
SizeValueType m_FirstOrderRawCrossMoment
Definition: itkLabelGeometryImageFilter.h:218
itk::ImageToImageFilter
Base class for filters that take an image as input and produce an image as output.
Definition: itkImageToImageFilter.h:108
itk::LabelGeometryImageFilter::MapIterator
typename std::map< LabelPixelType, LabelGeometry >::iterator MapIterator
Definition: itkLabelGeometryImageFilter.h:244
itk::LabelGeometryImageFilter::LabelIndexType
typename TLabelImage::IndexType LabelIndexType
Definition: itkLabelGeometryImageFilter.h:106
itk::LabelGeometryImageFilter::LabelSizeType
typename TLabelImage::SizeType LabelSizeType
Definition: itkLabelGeometryImageFilter.h:105
itk::LabelGeometryImageFilter::RegionType
typename TIntensityImage::RegionType RegionType
Definition: itkLabelGeometryImageFilter.h:96
itk::LabelGeometryImageFilter::IntensityImageType
TIntensityImage IntensityImageType
Definition: itkLabelGeometryImageFilter.h:94
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedIntensityImage
IntensityImageType::Pointer m_OrientedIntensityImage
Definition: itkLabelGeometryImageFilter.h:236
itk::LabelGeometryImageFilter::LabelGeometry::m_Centroid
LabelPointType m_Centroid
Definition: itkLabelGeometryImageFilter.h:213
itk::LabelGeometryImageFilter::LabelGeometry::m_Sum
RealType m_Sum
Definition: itkLabelGeometryImageFilter.h:212
itk::LabelGeometryImageFilter::LabelGeometry::m_Elongation
RealType m_Elongation
Definition: itkLabelGeometryImageFilter.h:226
itk::LabelGeometryImageFilter::LabelGeometry::m_Eccentricity
RealType m_Eccentricity
Definition: itkLabelGeometryImageFilter.h:225
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::LabelGeometryImageFilter::m_LabelGeometryMapper
MapType m_LabelGeometryMapper
Definition: itkLabelGeometryImageFilter.h:511
itk::LabelGeometryImageFilter::MapType
std::map< LabelPixelType, LabelGeometry > MapType
Definition: itkLabelGeometryImageFilter.h:243
itk::LabelGeometryImageFilter::GetIntensityInput
const TIntensityImage * GetIntensityInput() const
Definition: itkLabelGeometryImageFilter.h:342
itk::LabelGeometryImageFilter::LabelRegionType
typename TLabelImage::RegionType LabelRegionType
Definition: itkLabelGeometryImageFilter.h:104
itk::LabelGeometryImageFilter::RealType
typename NumericTraits< PixelType >::RealType RealType
Definition: itkLabelGeometryImageFilter.h:114
itk::LabelGeometryImageFilter::InputImagePointer
typename TIntensityImage::Pointer InputImagePointer
Definition: itkLabelGeometryImageFilter.h:95
itk::LabelGeometryImageFilter::LabelPointType
typename TLabelImage::PointType LabelPointType
Definition: itkLabelGeometryImageFilter.h:108
itk::LabelGeometryImageFilter::LabelGeometry::m_SecondOrderRawMoments
MatrixType m_SecondOrderRawMoments
Definition: itkLabelGeometryImageFilter.h:220
itk::LabelGeometryImageFilter::LabelGeometry::m_WeightedCentroid
LabelPointType m_WeightedCentroid
Definition: itkLabelGeometryImageFilter.h:214
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderCentralCrossMoment
RealType m_FirstOrderCentralCrossMoment
Definition: itkLabelGeometryImageFilter.h:219
itk::LabelGeometryImageFilter::LabelGeometry::m_Orientation
RealType m_Orientation
Definition: itkLabelGeometryImageFilter.h:227
itkImageToImageFilter.h
itk::LabelGeometryImageFilter::LabelGeometry
Geometry stored per label.
Definition: itkLabelGeometryImageFilter.h:152
itk::LabelGeometryImageFilter::GetNumberOfObjects
SizeValueType GetNumberOfObjects() const
Definition: itkLabelGeometryImageFilter.h:357
itk::LabelGeometryImageFilter::m_LabelGeometry
LabelGeometry m_LabelGeometry
Definition: itkLabelGeometryImageFilter.h:512
itk::FixedArray< typename LabelIndexType::IndexValueType, Self::ImageDimension *2 >
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxVertices
BoundingBoxVerticesType m_OrientedBoundingBoxVertices
Definition: itkLabelGeometryImageFilter.h:232
itk::LabelGeometryImageFilter::m_CalculateOrientedLabelRegions
bool m_CalculateOrientedLabelRegions
Definition: itkLabelGeometryImageFilter.h:508
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedLabelImage
LabelImageType::Pointer m_OrientedLabelImage
Definition: itkLabelGeometryImageFilter.h:235
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:58
itk::NumericTraits::max
static constexpr T max(const T &)
Definition: itkNumericTraits.h:167
itkArray.h
itk::LabelGeometryImageFilter::m_CalculatePixelIndices
bool m_CalculatePixelIndices
Definition: itkLabelGeometryImageFilter.h:506
itk::LabelGeometryImageFilter::LabelGeometry::m_BoundingBox
BoundingBoxType m_BoundingBox
Definition: itkLabelGeometryImageFilter.h:228
itk::NumericTraits::ZeroValue
static T ZeroValue()
Definition: itkNumericTraits.h:148
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
itk::LabelGeometryImageFilter::PixelType
typename TIntensityImage::PixelType PixelType
Definition: itkLabelGeometryImageFilter.h:99
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::LabelGeometryImageFilter::m_CalculateOrientedIntensityRegions
bool m_CalculateOrientedIntensityRegions
Definition: itkLabelGeometryImageFilter.h:509
itk::LabelGeometryImageFilter::LabelGeometry::m_PixelIndices
LabelIndicesType m_PixelIndices
Definition: itkLabelGeometryImageFilter.h:231
itk::LabelGeometryImageFilter::LabelGeometry::m_ZeroOrderMoment
SizeValueType m_ZeroOrderMoment
Definition: itkLabelGeometryImageFilter.h:215
itk::LabelGeometryImageFilter::SetCalculatePixelIndices
void SetCalculatePixelIndices(const bool value)
Definition: itkLabelGeometryImageFilter.h:251
itk::LabelGeometryImageFilter::LabelImagePointer
typename TLabelImage::Pointer LabelImagePointer
Definition: itkLabelGeometryImageFilter.h:103
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxOrigin
LabelPointType m_OrientedBoundingBoxOrigin
Definition: itkLabelGeometryImageFilter.h:238
itkNumericTraits.h
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderWeightedRawMoments
IndexArrayType m_FirstOrderWeightedRawMoments
Definition: itkLabelGeometryImageFilter.h:217
itkSimpleDataObjectDecorator.h
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderRawMoments
IndexArrayType m_FirstOrderRawMoments
Definition: itkLabelGeometryImageFilter.h:216
itk::DataObject::Pointer
SmartPointer< Self > Pointer
Definition: itkDataObject.h:301
itk::LabelGeometryImageFilter::LabelGeometry::m_Label
LabelPixelType m_Label
Definition: itkLabelGeometryImageFilter.h:211
itkMath.h
itk::LabelGeometryImageFilter::GetNumberOfLabels
SizeValueType GetNumberOfLabels() const
Definition: itkLabelGeometryImageFilter.h:363
itk::ProcessObject::GetInput
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
itk::LabelGeometryImageFilter::SizeType
typename TIntensityImage::SizeType SizeType
Definition: itkLabelGeometryImageFilter.h:97
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:83
itk::LabelGeometryImageFilter
Given a label map and an optional intensity image, compute geometric features.
Definition: itkLabelGeometryImageFilter.h:76