ITK  4.12.0
Insight Segmentation and Registration Toolkit
itkDistanceToCentroidMembershipFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 itkDistanceToCentroidMembershipFunction_h
19 #define itkDistanceToCentroidMembershipFunction_h
20 
22 #include "itkDistanceMetric.h"
23 
24 namespace itk
25 {
26 namespace Statistics
27 {
44 template< typename TVector >
45 class ITK_TEMPLATE_EXPORT DistanceToCentroidMembershipFunction:
46  public MembershipFunctionBase< TVector >
47 {
48 public:
54 
58  itkNewMacro(Self);
60 
63 
65  typedef TVector MeasurementVectorType;
66 
68  typedef typename Superclass::MeasurementVectorSizeType
70 
72  virtual void SetMeasurementVectorSize(MeasurementVectorSizeType) ITK_OVERRIDE;
73 
76  typedef typename DistanceMetricType::Pointer DistanceMetricPointer;
77  typedef typename DistanceMetricType::OriginType CentroidType;
78 
80  itkSetObjectMacro(DistanceMetric, DistanceMetricType);
81 
83  itkGetModifiableObjectMacro(DistanceMetric, DistanceMetricType);
84 
90  void SetCentroid(const CentroidType & centroid);
91 
93  const CentroidType & GetCentroid() const;
94 
98  double Evaluate(const MeasurementVectorType & measurement) const ITK_OVERRIDE;
99 
100 protected:
102  virtual ~DistanceToCentroidMembershipFunction(void) {}
103  void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
104 
106  virtual typename LightObject::Pointer InternalClone() const ITK_OVERRIDE;
107 
108 private:
109  ITK_DISALLOW_COPY_AND_ASSIGN(DistanceToCentroidMembershipFunction);
110 
111  DistanceMetricPointer m_DistanceMetric;
112 };
113 } // end of namespace Statistics
114 } // end namespace itk
115 
116 #ifndef ITK_MANUAL_INSTANTIATION
117 #include "itkDistanceToCentroidMembershipFunction.hxx"
118 #endif
119 
120 #endif
virtual void PrintSelf(std::ostream &os, Indent indent) const override
Light weight base class for most itk classes.
this class declares common interfaces for distance functions.
MembershipFunctionBase defines common interfaces for membership functions.
DistanceToCentroidMembershipFunction models class membership using a distance metric.
Control indentation during Print() invocation.
Definition: itkIndent.h:49