ITK  6.0.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  * https://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 {
80 template <typename TLabelImage, typename TIntensityImage = TLabelImage>
81 class ITK_TEMPLATE_EXPORT
82 #if !defined(ITK_LEGACY_SILENT)
83  [[deprecated("This class contains known computational bugs. See class documentation for details.")]]
84 #endif
85  LabelGeometryImageFilter : public ImageToImageFilter<TLabelImage, TIntensityImage>
86 {
87 public:
88  ITK_DISALLOW_COPY_AND_MOVE(LabelGeometryImageFilter);
89 
95 
97  itkNewMacro(Self);
98 
100  itkOverrideGetNameOfClassMacro(LabelGeometryImageFilter);
101 
103  using IntensityImageType = TIntensityImage;
108  using PixelType = typename TIntensityImage::PixelType;
109 
111  using LabelImageType = TLabelImage;
116  using LabelPixelType = typename TLabelImage::PixelType;
118 
120  static constexpr unsigned int ImageDimension = TLabelImage::ImageDimension;
121 
124 
127 
130 
134 
135  // using BoundingBoxVerticesType = itk::FixedArray<
136  // LabelPointType,std::pow(2.0,Self::ImageDimension)>;
137  using BoundingBoxVerticesType = std::vector<LabelPointType>;
138 
141 
144 
146  using LabelsType = std::vector<LabelPixelType>;
147 
149  using LabelIndicesType = std::vector<LabelIndexType>;
150 
152  using VectorType = std::vector<double>;
153 
155  using MatrixType = vnl_matrix<double>;
156 
162  {
163  public:
164  // default constructor
166  {
167  // initialized to the default values
168  this->m_Label = 0;
169  this->m_Sum = RealType{};
170 
171  const unsigned int imageDimension = Self::ImageDimension;
172 
173  // m_BoundingBox.resize(imageDimension*2);
174  for (unsigned int i = 0; i < imageDimension * 2; i += 2)
175  {
178  }
179 
180  m_BoundingBoxVolume = 0;
181  m_BoundingBoxSize.Fill(0);
182  m_PixelIndices.clear();
183  m_Centroid.Fill(0);
184  m_WeightedCentroid.Fill(0);
185  m_ZeroOrderMoment = 0;
186  m_FirstOrderRawMoments.Fill(0);
187  m_FirstOrderWeightedRawMoments.Fill(0);
188  m_Eigenvalues.resize(ImageDimension);
189  m_Eigenvalues.clear();
190  m_Eigenvectors.set_size(ImageDimension, ImageDimension);
191  m_Eigenvectors.fill(0);
192  m_AxesLength.Fill(0);
193  m_Eccentricity = 1;
194  m_Elongation = 1;
195  m_Orientation = 0;
196  LabelPointType emptyPoint{};
197  unsigned int numberOfVertices = 1 << ImageDimension;
198  m_OrientedBoundingBoxVertices.resize(numberOfVertices, emptyPoint);
199  m_OrientedBoundingBoxVolume = 0;
200  m_OrientedBoundingBoxSize.Fill(0);
201  m_OrientedLabelImage = LabelImageType::New();
202  m_OrientedIntensityImage = IntensityImageType::New();
203  m_OrientedBoundingBoxOrigin.Fill(0);
204  m_RotationMatrix.set_size(ImageDimension, ImageDimension);
205  m_RotationMatrix.fill(0.0);
206 
207  m_SecondOrderRawMoments.set_size(ImageDimension, ImageDimension);
208  m_SecondOrderCentralMoments.set_size(ImageDimension, ImageDimension);
209  for (unsigned int i = 0; i < ImageDimension; ++i)
210  {
211  for (unsigned int j = 0; j < ImageDimension; ++j)
212  {
213  m_SecondOrderRawMoments(i, j) = 0;
214  m_SecondOrderCentralMoments(i, j) = 0;
215  }
216  }
217  }
218 
247  };
248 
250  // Map from the label to the class storing all of the geometry information.
251  using MapType = std::map<LabelPixelType, LabelGeometry>;
252  using MapIterator = typename std::map<LabelPixelType, LabelGeometry>::iterator;
253  using MapConstIterator = typename std::map<LabelPixelType, LabelGeometry>::const_iterator;
254 
255  // Macros for enabling the calculation of additional features.
256  itkGetMacro(CalculatePixelIndices, bool);
257  itkBooleanMacro(CalculatePixelIndices);
258  void SetCalculatePixelIndices(const bool value)
259  {
260  // CalculateOrientedBoundingBox, CalculateOrientedLabelImage, and
261  // CalculateOrientedIntensityImage all need CalculatePixelIndices to be
262  // turned
263  // on if they are turned on. So, CalculatePixelIndices cannot be
264  // turned off if any of these flags are turned on.
265  if (value == false)
266  {
267  if ((this->m_CalculateOrientedBoundingBox) || (this->m_CalculateOrientedLabelRegions) ||
268  (this->m_CalculateOrientedIntensityRegions))
269  {
270  // We cannot change the value, so return.
271  return;
272  }
273  }
274 
275  if (this->m_CalculatePixelIndices != value)
276  {
277  this->m_CalculatePixelIndices = value;
278  this->Modified();
279  }
280  }
281 
282  itkGetMacro(CalculateOrientedBoundingBox, bool);
283  itkBooleanMacro(CalculateOrientedBoundingBox);
284  void SetCalculateOrientedBoundingBox(const bool value)
285  {
286  if (this->m_CalculateOrientedBoundingBox != value)
287  {
288  this->m_CalculateOrientedBoundingBox = value;
289  this->Modified();
290  }
291 
292  // CalculateOrientedBoundingBox needs
293  // CalculatePixelIndices to be turned on.
294  if (value)
295  {
296  this->SetCalculatePixelIndices(true);
297  }
298  }
299 
300  itkGetMacro(CalculateOrientedLabelRegions, bool);
301  itkBooleanMacro(CalculateOrientedLabelRegions);
302  void SetCalculateOrientedLabelRegions(const bool value)
303  {
304  if (this->m_CalculateOrientedLabelRegions != value)
305  {
306  this->m_CalculateOrientedLabelRegions = value;
307  this->Modified();
308 
309  // CalculateOrientedLabelImage needs
310  // CalculateOrientedBoundingBox to be turned on.
311  if (value)
312  {
313  SetCalculateOrientedBoundingBox(true);
314  }
315  }
316  }
317 
318  itkGetMacro(CalculateOrientedIntensityRegions, bool);
319  itkBooleanMacro(CalculateOrientedIntensityRegions);
321  {
322  if (this->m_CalculateOrientedIntensityRegions != value)
323  {
324  this->m_CalculateOrientedIntensityRegions = value;
325  this->Modified();
326 
327  // CalculateOrientedIntensityImage needs
328  // CalculateOrientedBoundingBox to be turned on.
329  if (value)
330  {
331  this->SetCalculateOrientedBoundingBox(true);
332  }
333  }
334  }
335 
337  void SetIntensityInput(const TIntensityImage * input)
338  {
339  // Process object is not const-correct so the const casting is required.
340  this->SetNthInput(1, const_cast<TIntensityImage *>(input));
341  }
342 
344  const TIntensityImage * GetIntensityInput() const
345  {
346  return static_cast<TIntensityImage *>(const_cast<DataObject *>(this->ProcessObject::GetInput(1)));
347  }
348 
351  bool HasLabel(LabelPixelType label) const { return m_LabelGeometryMapper.find(label) != m_LabelGeometryMapper.end(); }
352 
354  SizeValueType GetNumberOfObjects() const { return m_LabelGeometryMapper.size(); }
355 
356  SizeValueType GetNumberOfLabels() const { return this->GetNumberOfObjects(); }
357 
359  std::vector<LabelPixelType> GetLabels() const { return m_AllLabels; }
360 
362  LabelIndicesType GetPixelIndices(LabelPixelType label) const;
363 
366  SizeValueType GetVolume(LabelPixelType label) const;
367 
369  RealType GetIntegratedIntensity(LabelPixelType label) const;
370 
372  LabelPointType GetCentroid(LabelPixelType label) const;
373 
375  LabelPointType GetWeightedCentroid(LabelPixelType label) const;
376 
378  VectorType GetEigenvalues(LabelPixelType label) const;
379 
381  MatrixType GetEigenvectors(LabelPixelType label) const;
382 
384  AxesLengthType GetAxesLength(LabelPixelType label) const;
385 
388  RealType GetMinorAxisLength(LabelPixelType label) const;
389 
392  RealType GetMajorAxisLength(LabelPixelType label) const;
393 
395  RealType GetEccentricity(LabelPixelType label) const;
396 
399  RealType GetElongation(LabelPixelType label) const;
400 
402  RealType GetOrientation(LabelPixelType label) const;
403 
407  BoundingBoxType GetBoundingBox(LabelPixelType label) const;
408 
410  RealType GetBoundingBoxVolume(LabelPixelType label) const;
411 
413  LabelSizeType GetBoundingBoxSize(LabelPixelType label) const;
414 
421  BoundingBoxVerticesType GetOrientedBoundingBoxVertices(LabelPixelType label) const;
422 
424  RealType GetOrientedBoundingBoxVolume(LabelPixelType label) const;
425 
427  LabelPointType GetOrientedBoundingBoxSize(LabelPixelType label) const;
428 
430  LabelPointType GetOrientedBoundingBoxOrigin(LabelPixelType label) const;
431 
434  MatrixType GetRotationMatrix(LabelPixelType label) const;
435 
437  RegionType GetRegion(LabelPixelType label) const;
438 
440  TLabelImage * GetOrientedLabelImage(LabelPixelType label) const;
441 
444  TIntensityImage * GetOrientedIntensityImage(LabelPixelType label) const;
445 
446 #ifdef ITK_USE_CONCEPT_CHECKING
447  // Begin concept checking
448  itkConceptMacro(InputHasNumericTraitsCheck, (Concept::HasNumericTraits<PixelType>));
449  // End concept checking
450 #endif
451 
452 protected:
454  ~LabelGeometryImageFilter() override = default;
455  void PrintSelf(std::ostream & os, Indent indent) const override;
456 
457  void GenerateData() override;
458 
459 private:
460  bool CalculateOrientedBoundingBoxVertices(vnl_symmetric_eigensystem<double> eig, LabelGeometry & m_LabelGeometry);
461 
462  bool m_CalculatePixelIndices{};
463  bool m_CalculateOrientedBoundingBox{};
464  bool m_CalculateOrientedLabelRegions{};
465  bool m_CalculateOrientedIntensityRegions{};
466 
467  MapType m_LabelGeometryMapper{};
468  LabelGeometry m_LabelGeometry{};
469  LabelsType m_AllLabels{};
470 }; // end of class
471 
472 } // end namespace itk
473 
474 #ifndef ITK_MANUAL_INSTANTIATION
475 # include "itkLabelGeometryImageFilter.hxx"
476 #endif
477 
478 #endif
itk::LabelGeometryImageFilter::GetLabels
std::vector< LabelPixelType > GetLabels() const
Definition: itkLabelGeometryImageFilter.h:359
itk::LabelGeometryImageFilter::SetCalculateOrientedLabelRegions
void SetCalculateOrientedLabelRegions(const bool value)
Definition: itkLabelGeometryImageFilter.h:302
Pointer
SmartPointer< Self > Pointer
Definition: itkAddImageFilter.h:93
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:351
itk::LabelGeometryImageFilter::SetCalculateOrientedBoundingBox
void SetCalculateOrientedBoundingBox(const bool value)
Definition: itkLabelGeometryImageFilter.h:284
itk::LabelGeometryImageFilter::LabelImageType
TLabelImage LabelImageType
Definition: itkLabelGeometryImageFilter.h:111
itk::LabelGeometryImageFilter::LabelIndicesType
std::vector< LabelIndexType > LabelIndicesType
Definition: itkLabelGeometryImageFilter.h:149
itk::LabelGeometryImageFilter::LabelGeometry::m_RotationMatrix
MatrixType m_RotationMatrix
Definition: itkLabelGeometryImageFilter.h:245
itk::LabelGeometryImageFilter::LabelGeometry::m_Eigenvectors
MatrixType m_Eigenvectors
Definition: itkLabelGeometryImageFilter.h:231
itk::LabelGeometryImageFilter::LabelGeometry::LabelGeometry
LabelGeometry()
Definition: itkLabelGeometryImageFilter.h:165
itk::Concept::HasNumericTraits
Definition: itkConceptChecking.h:716
itk::LabelGeometryImageFilter::MapConstIterator
typename std::map< LabelPixelType, LabelGeometry >::const_iterator MapConstIterator
Definition: itkLabelGeometryImageFilter.h:253
itk::LabelGeometryImageFilter::LabelGeometry::m_BoundingBoxSize
LabelSizeType m_BoundingBoxSize
Definition: itkLabelGeometryImageFilter.h:237
itk::LabelGeometryImageFilter::LabelsType
std::vector< LabelPixelType > LabelsType
Definition: itkLabelGeometryImageFilter.h:146
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxSize
LabelPointType m_OrientedBoundingBoxSize
Definition: itkLabelGeometryImageFilter.h:242
itk::LabelGeometryImageFilter::LabelPixelType
typename TLabelImage::PixelType LabelPixelType
Definition: itkLabelGeometryImageFilter.h:116
itk::LabelGeometryImageFilter::MatrixType
vnl_matrix< double > MatrixType
Definition: itkLabelGeometryImageFilter.h:155
itk::LabelGeometryImageFilter::IndexType
typename TIntensityImage::IndexType IndexType
Definition: itkLabelGeometryImageFilter.h:107
itk::LabelGeometryImageFilter::VectorType
std::vector< double > VectorType
Definition: itkLabelGeometryImageFilter.h:152
itk::NumericTraits::NonpositiveMin
static constexpr T NonpositiveMin()
Definition: itkNumericTraits.h:99
itk::LabelGeometryImageFilter::SetIntensityInput
void SetIntensityInput(const TIntensityImage *input)
Definition: itkLabelGeometryImageFilter.h:337
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:232
itk::LabelGeometryImageFilter::SetCalculateOrientedIntensityRegions
void SetCalculateOrientedIntensityRegions(const bool value)
Definition: itkLabelGeometryImageFilter.h:320
itk::LabelGeometryImageFilter::LabelGeometry::m_BoundingBoxVolume
RealType m_BoundingBoxVolume
Definition: itkLabelGeometryImageFilter.h:238
itk::LabelGeometryImageFilter::BoundingBoxVerticesType
std::vector< LabelPointType > BoundingBoxVerticesType
Definition: itkLabelGeometryImageFilter.h:137
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
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:230
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxVolume
RealType m_OrientedBoundingBoxVolume
Definition: itkLabelGeometryImageFilter.h:241
itk::LabelGeometryImageFilter::LabelGeometry::m_SecondOrderCentralMoments
MatrixType m_SecondOrderCentralMoments
Definition: itkLabelGeometryImageFilter.h:229
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderRawCrossMoment
SizeValueType m_FirstOrderRawCrossMoment
Definition: itkLabelGeometryImageFilter.h:226
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:252
itk::LabelGeometryImageFilter::LabelIndexType
typename TLabelImage::IndexType LabelIndexType
Definition: itkLabelGeometryImageFilter.h:115
itk::LabelGeometryImageFilter::LabelSizeType
typename TLabelImage::SizeType LabelSizeType
Definition: itkLabelGeometryImageFilter.h:114
itk::LabelGeometryImageFilter::RegionType
typename TIntensityImage::RegionType RegionType
Definition: itkLabelGeometryImageFilter.h:105
itk::LabelGeometryImageFilter::IntensityImageType
TIntensityImage IntensityImageType
Definition: itkLabelGeometryImageFilter.h:103
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:55
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedIntensityImage
IntensityImageType::Pointer m_OrientedIntensityImage
Definition: itkLabelGeometryImageFilter.h:244
itk::LabelGeometryImageFilter::LabelGeometry::m_Centroid
LabelPointType m_Centroid
Definition: itkLabelGeometryImageFilter.h:221
itk::LabelGeometryImageFilter::LabelGeometry::m_Sum
RealType m_Sum
Definition: itkLabelGeometryImageFilter.h:220
itk::LabelGeometryImageFilter::LabelGeometry::m_Elongation
RealType m_Elongation
Definition: itkLabelGeometryImageFilter.h:234
itk::LabelGeometryImageFilter::LabelGeometry::m_Eccentricity
RealType m_Eccentricity
Definition: itkLabelGeometryImageFilter.h:233
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::LabelGeometryImageFilter::MapType
std::map< LabelPixelType, LabelGeometry > MapType
Definition: itkLabelGeometryImageFilter.h:251
itk::LabelGeometryImageFilter::GetIntensityInput
const TIntensityImage * GetIntensityInput() const
Definition: itkLabelGeometryImageFilter.h:344
itk::LabelGeometryImageFilter::LabelRegionType
typename TLabelImage::RegionType LabelRegionType
Definition: itkLabelGeometryImageFilter.h:113
itk::LabelGeometryImageFilter::RealType
typename NumericTraits< PixelType >::RealType RealType
Definition: itkLabelGeometryImageFilter.h:123
itk::LabelGeometryImageFilter::InputImagePointer
typename TIntensityImage::Pointer InputImagePointer
Definition: itkLabelGeometryImageFilter.h:104
itk::LabelGeometryImageFilter::LabelPointType
typename TLabelImage::PointType LabelPointType
Definition: itkLabelGeometryImageFilter.h:117
itk::LabelGeometryImageFilter::LabelGeometry::m_SecondOrderRawMoments
MatrixType m_SecondOrderRawMoments
Definition: itkLabelGeometryImageFilter.h:228
itk::LabelGeometryImageFilter::LabelGeometry::m_WeightedCentroid
LabelPointType m_WeightedCentroid
Definition: itkLabelGeometryImageFilter.h:222
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderCentralCrossMoment
RealType m_FirstOrderCentralCrossMoment
Definition: itkLabelGeometryImageFilter.h:227
itk::LabelGeometryImageFilter::LabelGeometry::m_Orientation
RealType m_Orientation
Definition: itkLabelGeometryImageFilter.h:235
itkImageToImageFilter.h
itk::LabelGeometryImageFilter::LabelGeometry
Geometry stored per label.
Definition: itkLabelGeometryImageFilter.h:161
itk::LabelGeometryImageFilter::GetNumberOfObjects
SizeValueType GetNumberOfObjects() const
Definition: itkLabelGeometryImageFilter.h:354
itk::FixedArray< typename LabelIndexType::IndexValueType, Self::ImageDimension *2 >
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxVertices
BoundingBoxVerticesType m_OrientedBoundingBoxVertices
Definition: itkLabelGeometryImageFilter.h:240
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedLabelImage
LabelImageType::Pointer m_OrientedLabelImage
Definition: itkLabelGeometryImageFilter.h:243
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:60
itk::NumericTraits::max
static constexpr T max(const T &)
Definition: itkNumericTraits.h:169
itkArray.h
itk::LabelGeometryImageFilter::LabelGeometry::m_BoundingBox
BoundingBoxType m_BoundingBox
Definition: itkLabelGeometryImageFilter.h:236
itkConceptMacro
#define itkConceptMacro(name, concept)
Definition: itkConceptChecking.h:65
itk::LabelGeometryImageFilter::PixelType
typename TIntensityImage::PixelType PixelType
Definition: itkLabelGeometryImageFilter.h:108
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnatomicalOrientation.h:29
itk::LabelGeometryImageFilter::LabelGeometry::m_PixelIndices
LabelIndicesType m_PixelIndices
Definition: itkLabelGeometryImageFilter.h:239
itk::LabelGeometryImageFilter::LabelGeometry::m_ZeroOrderMoment
SizeValueType m_ZeroOrderMoment
Definition: itkLabelGeometryImageFilter.h:223
itk::LabelGeometryImageFilter::SetCalculatePixelIndices
void SetCalculatePixelIndices(const bool value)
Definition: itkLabelGeometryImageFilter.h:258
itk::LabelGeometryImageFilter::LabelImagePointer
typename TLabelImage::Pointer LabelImagePointer
Definition: itkLabelGeometryImageFilter.h:112
itk::LabelGeometryImageFilter::LabelGeometry::m_OrientedBoundingBoxOrigin
LabelPointType m_OrientedBoundingBoxOrigin
Definition: itkLabelGeometryImageFilter.h:246
itkNumericTraits.h
itkSimpleDataObjectDecorator.h
New
static Pointer New()
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderRawMoments
IndexArrayType m_FirstOrderRawMoments
Definition: itkLabelGeometryImageFilter.h:224
itk::DataObject::Pointer
SmartPointer< Self > Pointer
Definition: itkDataObject.h:301
itk::LabelGeometryImageFilter::LabelGeometry::m_Label
LabelPixelType m_Label
Definition: itkLabelGeometryImageFilter.h:219
itkMath.h
itk::LabelGeometryImageFilter::GetNumberOfLabels
SizeValueType GetNumberOfLabels() const
Definition: itkLabelGeometryImageFilter.h:356
itk::LabelGeometryImageFilter::LabelGeometry::m_FirstOrderWeightedRawMoments
AxesLengthType m_FirstOrderWeightedRawMoments
Definition: itkLabelGeometryImageFilter.h:225
itk::ProcessObject::GetInput
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
itk::LabelGeometryImageFilter::SizeType
typename TIntensityImage::SizeType SizeType
Definition: itkLabelGeometryImageFilter.h:106
itk::SizeValueType
unsigned long SizeValueType
Definition: itkIntTypes.h:86
itk::LabelGeometryImageFilter
Given a label map and an optional intensity image, compute geometric features.
Definition: itkLabelGeometryImageFilter.h:81