#include <itkFEMImageMetricLoad.h>
Inheritance diagram for itk::fem::ImageMetricLoad< TMoving, TFixed >:


LoadImageMetric computes FEM gravity loads by using derivatives provided by itkImageToImageMetrics (e.g. mean squares intensity difference.) The function responsible for this is called Fg, as required by the FEMLoad standards. It takes a vnl_vector as input. We assume the vector input is of size 2*ImageDimension. The 0 to ImageDimension-1 elements contain the position, p, in the reference (moving) image. The next ImageDimension to 2*ImageDimension-1 elements contain the value of the vector field at that point, v(p).
Then, we evaluate the derivative at the point p+v(p) with respect to some region of the target (fixed) image by calling the metric with the translation parameters as provided by the vector field at p. The metrics return both a scalar similarity value and vector-valued derivative. The derivative is what gives us the force to drive the FEM registration. These values are computed with respect to some region in the Fixed image. This region size may be set by the user by calling SetMetricRadius. As the metric derivative computation evolves, performance should improve and more functionality will be available (such as scale selection).
Definition at line 93 of file itkFEMImageMetricLoad.h.
Public Types | |
| typedef FEMPArray< Self > | ArrayType |
| typedef Self | Baseclass |
| typedef Float | ComputationType |
| typedef const Self * | ConstPointer |
| typedef double | CoordinateRepresentationType |
| typedef MeanSquaresMetricType | DefaultMetricType |
| typedef TranslationTransform< CoordinateRepresentationType, itkGetStaticConstMacro(ImageDimension) | DefaultTransformType ) |
| typedef std::vector< Element::ConstPointer > | ElementPointersVectorType |
| typedef FixedType::ConstPointer | FixedConstPointer |
| typedef FixedNeighborhoodIteratorType::IndexType | FixedNeighborhoodIndexType |
| typedef NeighborhoodIterator< FixedType > | FixedNeighborhoodIteratorType |
| typedef FixedType * | FixedPointer |
| typedef FixedNeighborhoodIteratorType::RadiusType | FixedRadiusType |
| typedef TFixed | FixedType |
| typedef LoadElement::Float | Float |
| typedef GradientRecursiveGaussianImageFilter< ImageType, GradientImageType > | GradientImageFilterType |
| typedef SmartPointer< GradientImageType > | GradientImagePointer |
| typedef Image< GradientPixelType, itkGetStaticConstMacro(ImageDimension) | GradientImageType ) |
| typedef CovariantVector< RealType, itkGetStaticConstMacro(ImageDimension) | GradientPixelType ) |
| typedef Image< PixelType, itkGetStaticConstMacro(ImageDimension) | ImageType ) |
| typedef LinearInterpolateImageFunction< MovingType, double > | InterpolatorType |
| typedef DefaultTransformType::JacobianType | JacobianType |
| typedef MeanSquaresImageToImageMetric< MovingType, FixedType > | MeanSquaresMetricType |
| typedef ImageToImageMetric< FixedType, MovingType > | MetricBaseType |
| typedef MetricBaseType::Pointer | MetricBaseTypePointer |
| typedef MovingType::ConstPointer | MovingConstPointer |
| typedef MovingNeighborhoodIteratorType::IndexType | MovingNeighborhoodIndexType |
| typedef NeighborhoodIterator< MovingType > | MovingNeighborhoodIteratorType |
| typedef MovingType * | MovingPointer |
| typedef MovingNeighborhoodIteratorType::RadiusType | MovingRadiusType |
| typedef TMoving | MovingType |
| typedef MutualInformationImageToImageMetric< MovingType, FixedType > | MutualInformationMetricType |
| typedef NormalizedCorrelationImageToImageMetric< MovingType, FixedType > | NormalizedCorrelationMetricType |
| typedef DefaultTransformType::ParametersType | ParametersType |
| typedef Float | PixelType |
| typedef Self * | Pointer |
| typedef Image< RefPixelType, itkGetStaticConstMacro(ImageDimension) | RefImageType ) |
| typedef MovingType::PixelType | RefPixelType |
| typedef ImageRegionIteratorWithIndex< MovingType > | RefRegionIteratorType |
| typedef ImageMetricLoad | Self |
| typedef LoadElement | Superclass |
| typedef Image< TarPixelType, itkGetStaticConstMacro(ImageDimension) | TarImageType ) |
| typedef FixedType::PixelType | TarPixelType |
| typedef ImageRegionIteratorWithIndex< FixedType > | TarRegionIteratorType |
| typedef Transform< CoordinateRepresentationType, itkGetStaticConstMacro(ImageDimension), itkGetStaticConstMacro(ImageDimension) | TransformBaseType ) |
| typedef vnl_vector< Float > | VectorType |
Public Member Functions | |
| virtual int | ClassID () const |
| virtual Baseclass::Pointer | Clone () const |
| Float | EvaluateMetricGivenSolution (Element::ArrayType *el, Float step=1.0) |
| VectorType | Fe (VectorType, VectorType) |
| *Compute the image based load implemented with ITK metric derivatives *VectorType | Fe1 (VectorType) |
| double | GetCurrentEnergy () |
| FixedPointer | GetFixedImage () |
| *This method returns the total metric evaluated over the image with respect to the current solution *Float | GetMetric (VectorType InVec) |
| GradientImageType * | GetMetricGradientImage () |
| MovingRadiusType | GetMetricRadius () |
| MovingPointer | GetMovingImage () |
| unsigned int | GetNumberOfIntegrationPoints () |
| VectorType | GetPolynomialFitToMetric (VectorType PositionInElement, VectorType SolutionAtPosition) |
| Float | GetSolution (unsigned int i, unsigned int which=0) |
| Solution::ConstPointer | GetSolution () |
| ImageMetricLoad () | |
| void | InitializeMetric (void) |
| itkStaticConstMacro (ImageDimension, unsigned int, MovingType::ImageDimension) | |
| VectorType | MetricFiniteDiff (VectorType PositionInElement, VectorType SolutionAtPosition) |
| void | PrintCurrentEnergy () |
| virtual void | Read (std::istream &f, void *info) |
| Define the | reference (moving) image.*/void SetMovingImage(MovingType *R) |
| void | SetCurrentEnergy (double e) |
| void | SetGamma (Float s) |
| void | SetMetric (MetricBaseTypePointer MP) |
| void | SetMetricFixedImage (FixedType *T) |
| Set Get the metric gradient image *void | SetMetricGradientImage (GradientImageType *g) |
| void | SetMetricMovingImage (MovingType *R) |
| void | SetMetricRadius (MovingRadiusType T) |
| Set Get methods for the number of integration points to use *in each dimensional line integral when evaluating the load *This value is passed to the load implementation *void | SetNumberOfIntegrationPoints (unsigned int i) |
| void | SetSign (Float s) |
| void | SetSolution (Solution::ConstPointer ptr) |
| void | SetTemp (Float s) |
| Define the | target (fixed) image.*/void SetFixedImage(FixedType *T) |
| void | Write (std::ostream &f) const |
Static Public Member Functions | |
| static FEMLightObject::Pointer | CreateFromStream (std::istream &f, void *info) |
| static Self::Pointer | New () |
| static Baseclass * | NewImageMetricLoad (void) |
| static void | SkipWhiteSpace (std::istream &f) |
Public Attributes | |
| *Sets the pointer to solution vector This function is automatically *called by the Solver class on every load object **Some types of external Loads may need access to previous values of *solution vector If a derived class needs that it should implement *this | function |
| int | GN |
| Gradient filtering *typedef float | RealType |
| *Sets the pointer to solution vector This function is automatically *called by the Solver class on every load object **Some types of external Loads may need access to previous values of *solution vector If a derived class needs that it should implement *this and store the passed pointer accordingly If the result *vector is not | required |
| *Sets the pointer to solution vector This function is automatically *called by the Solver class on every load object **Some types of external Loads may need access to previous values of *solution vector If a derived class needs that it should implement *this and store the passed pointer accordingly If the result *vector is not the functionn should be left | unimplemented |
Static Public Attributes | |
| static const int | CLID |
| static const std::string | whitespaces |
|
|
Array class that holds special pointers to the load objects Definition at line 45 of file itkFEMLoadBase.h. |
|
|
Store the base class typedef for easy access from derived classes. FEM_CLASS macro also expects this for the FEMOF... Definition at line 67 of file itkFEMLightObject.h. |
|
|||||
|
Definition at line 134 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Const pointer or SmartPointer to an object. Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 145 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 164 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 147 of file itkFEMImageMetricLoad.h. |
|
|
Type of array of pointers to element objects Definition at line 57 of file itkFEMLoadElementBase.h. |
|
|||||
|
Definition at line 106 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 125 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 123 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 105 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 127 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 104 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Float type used in Element and derived classes Reimplemented from itk::fem::LoadElement. Definition at line 99 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 183 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 180 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 179 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 177 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 137 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 172 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 166 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 155 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Type of supported metrics. Definition at line 150 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 151 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 102 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 119 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 117 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 103 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 121 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 101 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 153 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 157 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 165 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 133 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Pointer or SmartPointer to an object. Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 135 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 131 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 112 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Standard Self typedef. Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Standard Superclass typedef. Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 136 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 132 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 113 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 146 of file itkFEMImageMetricLoad.h. |
|
|||||
|
Definition at line 138 of file itkFEMImageMetricLoad.h. |
|
|||||||||
|
|
|
|||||||||
|
Virtual function to access the class ID Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
|||||||||
|
Create a new object from the existing one Reimplemented from itk::fem::LoadElement. |
|
||||||||||||
|
Read object of any derived type from stream. This static function creates an object of a class, which is derived from FEMLightObject. The class of object is first determined from the stream, then the object of that class is constructed using the FEMObjectFactory. Finally the data for this object is read from the stream, by calling the Read() member function. |
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
||||||||||
|
|
|
|||||||||
|
Definition at line 294 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 222 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
|
|
|||||||||
|
Definition at line 289 of file itkFEMImageMetricLoad.h. |
|
|||||||||
|
Get the metric region size. Definition at line 228 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 221 of file itkFEMImageMetricLoad.h. |
|
|||||||||
|
Definition at line 235 of file itkFEMImageMetricLoad.h. |
|
||||||||||||||||
|
|
|
||||||||||||||||
|
Definition at line 263 of file itkFEMImageMetricLoad.h. References itk::fem::Solution::GetSolutionValue(). |
|
|||||||||
|
Reimplemented from itk::fem::Load. Definition at line 251 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
|
|
||||||||||||||||||||
|
Dimensionality of input and output data is assumed to be the same. |
|
||||||||||||||||
|
|
|
||||||||||
|
Object creation in an itk compatible way Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 282 of file itkFEMImageMetricLoad.h. |
|
|||||||||
|
Definition at line 293 of file itkFEMImageMetricLoad.h. |
|
||||||||||||
|
pointers to element objects on which the load acts Reimplemented from itk::fem::FEMLightObject. Reimplemented in itk::fem::LoadEdge, itk::fem::LoadGravConst, itk::fem::LoadLandmark, and itk::fem::LoadTest< TClass >. Referenced by itk::fem::LoadTest< TClass >::Read(). |
|
||||||||||
|
Definition at line 193 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 295 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Scaling of the similarity energy term Definition at line 248 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Set/Get the Metric. Definition at line 191 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 213 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 288 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 201 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Define the metric region size. Definition at line 225 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Definition at line 234 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Set the direction of the gradient (uphill or downhill). E.g. the mean squares metric should be minimized while NCC and PR should be maximized. Definition at line 241 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Reimplemented from itk::fem::Load. Definition at line 250 of file itkFEMImageMetricLoad.h. |
|
||||||||||
|
Set the sigma in a gaussian measure. Definition at line 244 of file itkFEMImageMetricLoad.h. |
|
|
Helper function that skips all the whitespace and comments in an input stream. |
|
||||||||||
|
Definition at line 207 of file itkFEMImageMetricLoad.h. |
|
|
Write an object to the output stream. Call this member to write the data members in the current object to the output stream. Here we also need to know which derived class we actually are, so that we can write the class name. The class name is obtained by calling the virtual ClassID() member function and passing the result to the FEMObjectFactory. Implementations of Write member funtion in derived classes should first call the parent's implementation of Write and finaly write whatever they need. Reimplemented from itk::fem::FEMLightObject. Reimplemented in itk::fem::LoadEdge, itk::fem::LoadGravConst, itk::fem::LoadLandmark, and itk::fem::LoadTest< TClass >. Referenced by itk::fem::LoadTest< TClass >::Write(). |
|
|||||
|
Class ID for FEM object factory Reimplemented from itk::fem::LoadElement. Definition at line 95 of file itkFEMImageMetricLoad.h. |
|
|
Definition at line 52 of file itkFEMLoadBase.h. |
|
|
Global number of an object (ID of an object) In general the ID's are required to be unique only within a specific type of derived classes (Elements, Nodes, ...) If the GN is not required, it can be ignored. (normally you need the GN when writing or reading objects to/from stream. Definition at line 168 of file itkFEMLightObject.h. Referenced by itk::fem::FEMLightObject::FEMLightObject(). |
|
|||||
|
Definition at line 175 of file itkFEMImageMetricLoad.h. |
|
|
Definition at line 52 of file itkFEMLoadBase.h. |
|
|
Definition at line 52 of file itkFEMLoadBase.h. |
|
|
Const string of all whitespace characters. This string is used by SkipWhiteSpace function. Definition at line 138 of file itkFEMLightObject.h. |
1.4.2 written by Dimitri van Heesch,
© 1997-2000