ITK  4.2.0
Insight Segmentation and Registration Toolkit
itkManifoldParzenWindowsPointSetFunction.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 __itkManifoldParzenWindowsPointSetFunction_h
19 #define __itkManifoldParzenWindowsPointSetFunction_h
20 
21 #include "itkPointSetFunction.h"
22 
24 #include "itkMatrix.h"
25 #include "itkPointSet.h"
26 #include "itkPointsLocator.h"
27 #include "itkVector.h"
28 
29 #include <vector>
30 
31 namespace itk
32 {
33 
44 template <class TPointSet, class TOutput = double, class TCoordRep = double>
46 : public PointSetFunction<TPointSet, TOutput, TCoordRep>
47 {
48 public:
53 
55  itkNewMacro(Self);
56 
58  itkStaticConstMacro( PointDimension, unsigned int, TPointSet::PointDimension );
59 
60  typedef typename Superclass::InputPointSetType InputPointSetType;
61  typedef typename Superclass::InputPointType InputPointType;
62 
64  typedef TPointSet PointSetType;
65  typedef typename PointSetType::PointType PointType;
66  typedef typename PointSetType::PointsContainer PointsContainer;
67  typedef typename PointsContainer::ElementIdentifier PointIdentifier;
68 
70  typedef TOutput RealType;
71  typedef TOutput OutputType;
72  typedef TCoordRep CoordRepType;
73 
76  itkGetStaticConstMacro( PointDimension ),
78  typedef typename PointsLocatorType::
80 
81  typedef typename Statistics::
84  typedef std::vector<GaussianPointer> GaussianContainerType;
86 
94  itkSetMacro( CovarianceKNeighborhood, unsigned int );
95 
97  itkGetConstMacro( CovarianceKNeighborhood, unsigned int );
98 
105  itkSetMacro( EvaluationKNeighborhood, unsigned int );
106 
108  itkGetConstMacro( EvaluationKNeighborhood, unsigned int );
109 
114  itkSetMacro( RegularizationSigma, RealType );
115 
117  itkGetConstMacro( RegularizationSigma, RealType );
118 
124  itkSetMacro( KernelSigma, RealType );
125 
127  itkGetConstMacro( KernelSigma, RealType );
128 
133  itkSetMacro( Normalize, bool );
134 
139  itkGetConstMacro( Normalize, bool );
140 
145  itkBooleanMacro( Normalize );
146 
152  itkSetMacro( UseAnisotropicCovariances, bool );
153 
159  itkGetConstMacro( UseAnisotropicCovariances, bool );
160 
166  itkBooleanMacro( UseAnisotropicCovariances );
167 
169  virtual void SetInputPointSet( const InputPointSetType * );
170 
172  virtual TOutput Evaluate( const InputPointType & ) const;
173 
175  GaussianPointer GetGaussian( PointIdentifier );
176 
178  itkGetConstObjectMacro( PointsLocator, PointsLocatorType );
179 
180 protected:
183  void PrintSelf( std::ostream& os, Indent indent ) const;
184 
185  void GenerateData();
186 
187 private:
188  //purposely not implemented
190  void operator=( const Self& );
191 
193 
198 
202 };
203 
204 } // end namespace itk
205 
206 #ifndef ITK_MANUAL_INSTANTIATION
207 #include "itkManifoldParzenWindowsPointSetFunction.hxx"
208 #endif
209 
210 #endif
211