#include <freFEMRegistrationProcessor.h>


Public Types | |
| typedef FEMRegistrationProcessor < VImageDimension > | Self |
| typedef ImageRegistrationProcessorBase < VImageDimension > | Superclass |
| typedef itk::SmartPointer < Self > | Pointer |
| typedef itk::SmartPointer < const Self > | ConstPointer |
| typedef Superclass::ImageType | ImageType |
| typedef Superclass::ImagePointer | ImagePointer |
| typedef Superclass::RegionType | RegionType |
| typedef Superclass::SpacingType | SpacingType |
| typedef Superclass::PointType | PointType |
| typedef Superclass::TransformFieldType | TransformFieldType |
| typedef Superclass::TransformFieldPointer | TransformFieldPointer |
| typedef itk::ImageToImageMetric < ImageType, ImageType > | MetricType |
| typedef MetricType::Pointer | MetricPointer |
| typedef itk::fem::FEMRegistrationFilter < ImageType, ImageType > | RegistrationType |
| typedef RegistrationType::Pointer | RegistrationPointer |
| typedef itk::HistogramMatchingImageFilter < ImageType, ImageType > | HistoMatchFilterType |
| typedef itk::fem::Element2DC0LinearQuadrilateralMembrane | Element2DType |
| typedef itk::fem::Element2DC0LinearTriangularMembrane | Element2DType2 |
| typedef itk::fem::Element3DC0LinearHexahedronMembrane | Element3DType |
| typedef itk::fem::Element3DC0LinearTetrahedronMembrane | Element3DType2 |
| typedef itk::fem::FiniteDifferenceFunctionLoad < ImageType, ImageType > | ImageLoadType |
| typedef Element2DType::LoadImplementationFunctionPointer | LoadImp2DFP |
| typedef Element2DType::LoadType | Element2DLoadType |
| typedef Element2DType2::LoadImplementationFunctionPointer | LoadImp2DFP2 |
| typedef Element2DType2::LoadType | Element2DLoadType2 |
| typedef itk::fem::VisitorDispatcher < Element2DType, Element2DLoadType, LoadImp2DFP > | Dispatcher2DType |
| typedef itk::fem::VisitorDispatcher < Element2DType2, Element2DLoadType2, LoadImp2DFP2 > | Dispatcher2DType2 |
| typedef Element3DType::LoadImplementationFunctionPointer | LoadImp3DFP |
| typedef Element3DType::LoadType | Element3DLoadType |
| typedef Element3DType2::LoadImplementationFunctionPointer | LoadImp3DFP2 |
| typedef Element3DType2::LoadType | Element3DLoadType2 |
| typedef itk::fem::VisitorDispatcher < Element3DType, Element3DLoadType, LoadImp3DFP > | Dispatcher3DType |
| typedef itk::fem::VisitorDispatcher < Element3DType2, Element3DLoadType2, LoadImp3DFP2 > | Dispatcher3DType2 |
Public Member Functions | |
| virtual const char * | GetNameOfClass () const |
| virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
| virtual const int | GetResolutionLevelCount () const |
| virtual const long | GetMaxIterationCount () |
Static Public Member Functions | |
| static Pointer | New (void) |
Public Attributes | |
| MetricPointer | smpMetric |
| RegistrationPointer | smpRegistration |
| IterationObserver::Pointer | m_IterationObserver |
| NotificationEvent < Self >::Pointer | m_IterationNotificationEvent |
Protected Member Functions | |
| FEMRegistrationProcessor () | |
| virtual | ~FEMRegistrationProcessor () |
| virtual void | ComputeRegistration () |
| void | SetRegistrationParameters () |
| void | SaveLandmarksToFile (const std::string &sFileName) |
| void | SetFEMElements () |
| virtual TransformFieldPointer | ComputeTransformationField (const PointType &origin, const RegionType ®ion, const SpacingType &spacing) |
| void | OnNewIteration (void *pSender, long threadID) |
FEMRegistrationProcessor is a class for fem registration process (fem = finite element model) with 1 level of image resolution and is set up by ControllerCentral and the controllers, calling their BuildSetup function. In the normal process of registration a registration processor isn't needed to be created by the user, it is normally created by a TransformController. There also the decision is made, which derivate of the Registration- ProcessorBase is to be used. The registration processor is templated with the Image type and the type of the transformation field.
Definition at line 56 of file freFEMRegistrationProcessor.h.
| typedef FEMRegistrationProcessor<VImageDimension> FREE::FEMRegistrationProcessor< VImageDimension >::Self |
Standard typedefs
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 61 of file freFEMRegistrationProcessor.h.
| typedef ImageRegistrationProcessorBase<VImageDimension> FREE::FEMRegistrationProcessor< VImageDimension >::Superclass |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 62 of file freFEMRegistrationProcessor.h.
| typedef itk::SmartPointer<Self> FREE::FEMRegistrationProcessor< VImageDimension >::Pointer |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 63 of file freFEMRegistrationProcessor.h.
| typedef itk::SmartPointer<const Self> FREE::FEMRegistrationProcessor< VImageDimension >::ConstPointer |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 64 of file freFEMRegistrationProcessor.h.
| typedef Superclass::ImageType FREE::FEMRegistrationProcessor< VImageDimension >::ImageType |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 66 of file freFEMRegistrationProcessor.h.
| typedef Superclass::ImagePointer FREE::FEMRegistrationProcessor< VImageDimension >::ImagePointer |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 67 of file freFEMRegistrationProcessor.h.
| typedef Superclass::RegionType FREE::FEMRegistrationProcessor< VImageDimension >::RegionType |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 68 of file freFEMRegistrationProcessor.h.
| typedef Superclass::SpacingType FREE::FEMRegistrationProcessor< VImageDimension >::SpacingType |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 69 of file freFEMRegistrationProcessor.h.
| typedef Superclass::PointType FREE::FEMRegistrationProcessor< VImageDimension >::PointType |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 70 of file freFEMRegistrationProcessor.h.
| typedef Superclass::TransformFieldType FREE::FEMRegistrationProcessor< VImageDimension >::TransformFieldType |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 71 of file freFEMRegistrationProcessor.h.
| typedef Superclass::TransformFieldPointer FREE::FEMRegistrationProcessor< VImageDimension >::TransformFieldPointer |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 72 of file freFEMRegistrationProcessor.h.
| typedef itk::ImageToImageMetric< ImageType, ImageType > FREE::FEMRegistrationProcessor< VImageDimension >::MetricType |
Base class of a metric, derivates used in every rigid registration.
Definition at line 78 of file freFEMRegistrationProcessor.h.
| typedef MetricType::Pointer FREE::FEMRegistrationProcessor< VImageDimension >::MetricPointer |
smart pointer to itk class which processes the registration.
Definition at line 84 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::FEMRegistrationFilter< ImageType, ImageType > FREE::FEMRegistrationProcessor< VImageDimension >::RegistrationType |
Itk class which processes the fem registration.
Definition at line 86 of file freFEMRegistrationProcessor.h.
| typedef RegistrationType::Pointer FREE::FEMRegistrationProcessor< VImageDimension >::RegistrationPointer |
Pointer to itk class which processes the registration.
Definition at line 88 of file freFEMRegistrationProcessor.h.
| typedef itk::HistogramMatchingImageFilter<ImageType, ImageType > FREE::FEMRegistrationProcessor< VImageDimension >::HistoMatchFilterType |
Itk class which realizes the histogram matching.
Definition at line 90 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::Element2DC0LinearQuadrilateralMembrane FREE::FEMRegistrationProcessor< VImageDimension >::Element2DType |
Mesh element in 2D
Definition at line 93 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::Element2DC0LinearTriangularMembrane FREE::FEMRegistrationProcessor< VImageDimension >::Element2DType2 |
Mesh element in 2D
Definition at line 95 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::Element3DC0LinearHexahedronMembrane FREE::FEMRegistrationProcessor< VImageDimension >::Element3DType |
Mesh element in 3D
Definition at line 98 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::Element3DC0LinearTetrahedronMembrane FREE::FEMRegistrationProcessor< VImageDimension >::Element3DType2 |
Mesh element in 3D
Definition at line 100 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::FiniteDifferenceFunctionLoad<ImageType,ImageType> FREE::FEMRegistrationProcessor< VImageDimension >::ImageLoadType |
Definition at line 102 of file freFEMRegistrationProcessor.h.
| typedef Element2DType::LoadImplementationFunctionPointer FREE::FEMRegistrationProcessor< VImageDimension >::LoadImp2DFP |
Loads in 2D
Definition at line 106 of file freFEMRegistrationProcessor.h.
| typedef Element2DType::LoadType FREE::FEMRegistrationProcessor< VImageDimension >::Element2DLoadType |
Definition at line 107 of file freFEMRegistrationProcessor.h.
| typedef Element2DType2::LoadImplementationFunctionPointer FREE::FEMRegistrationProcessor< VImageDimension >::LoadImp2DFP2 |
Definition at line 109 of file freFEMRegistrationProcessor.h.
| typedef Element2DType2::LoadType FREE::FEMRegistrationProcessor< VImageDimension >::Element2DLoadType2 |
Definition at line 110 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::VisitorDispatcher<Element2DType,Element2DLoadType, LoadImp2DFP> FREE::FEMRegistrationProcessor< VImageDimension >::Dispatcher2DType |
Definition at line 113 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::VisitorDispatcher<Element2DType2,Element2DLoadType2, LoadImp2DFP2> FREE::FEMRegistrationProcessor< VImageDimension >::Dispatcher2DType2 |
Definition at line 116 of file freFEMRegistrationProcessor.h.
| typedef Element3DType::LoadImplementationFunctionPointer FREE::FEMRegistrationProcessor< VImageDimension >::LoadImp3DFP |
Loads in 3D
Definition at line 119 of file freFEMRegistrationProcessor.h.
| typedef Element3DType::LoadType FREE::FEMRegistrationProcessor< VImageDimension >::Element3DLoadType |
Definition at line 120 of file freFEMRegistrationProcessor.h.
| typedef Element3DType2::LoadImplementationFunctionPointer FREE::FEMRegistrationProcessor< VImageDimension >::LoadImp3DFP2 |
Definition at line 122 of file freFEMRegistrationProcessor.h.
| typedef Element3DType2::LoadType FREE::FEMRegistrationProcessor< VImageDimension >::Element3DLoadType2 |
Definition at line 123 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::VisitorDispatcher<Element3DType,Element3DLoadType, LoadImp3DFP> FREE::FEMRegistrationProcessor< VImageDimension >::Dispatcher3DType |
Definition at line 126 of file freFEMRegistrationProcessor.h.
| typedef itk::fem::VisitorDispatcher<Element3DType2,Element3DLoadType2, LoadImp3DFP2> FREE::FEMRegistrationProcessor< VImageDimension >::Dispatcher3DType2 |
Definition at line 129 of file freFEMRegistrationProcessor.h.
| FREE::FEMRegistrationProcessor< VImageDimension >::FEMRegistrationProcessor | ( | ) | [inline, protected] |
Definition at line 168 of file freFEMRegistrationProcessor.txx.
References FREE::FEMRegistrationProcessor< VImageDimension >::m_IterationNotificationEvent, FREE::FEMRegistrationProcessor< VImageDimension >::m_IterationObserver, FREE::FEMRegistrationProcessor< VImageDimension >::OnNewIteration(), FREE::FEMRegistrationProcessor< VImageDimension >::smpMetric, and FREE::FEMRegistrationProcessor< VImageDimension >::smpRegistration.

| FREE::FEMRegistrationProcessor< VImageDimension >::~FEMRegistrationProcessor | ( | ) | [inline, protected, virtual] |
Definition at line 178 of file freFEMRegistrationProcessor.txx.
| virtual const char* FREE::FEMRegistrationProcessor< VImageDimension >::GetNameOfClass | ( | ) | const [inline, virtual] |
Run-time type information (and related methods).
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 75 of file freFEMRegistrationProcessor.h.
| static Pointer FREE::FEMRegistrationProcessor< VImageDimension >::New | ( | void | ) | [inline, static] |
New macro for creation of through a Smart Pointer
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 78 of file freFEMRegistrationProcessor.h.
| virtual ::itk::LightObject::Pointer FREE::FEMRegistrationProcessor< VImageDimension >::CreateAnother | ( | void | ) | const [inline, virtual] |
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 78 of file freFEMRegistrationProcessor.h.
| const int FREE::FEMRegistrationProcessor< VImageDimension >::GetResolutionLevelCount | ( | ) | const [inline, virtual] |
Returns the count of resolution levels of this section. The return of the function depends on the derived classes.
Implementation of FREE::FEMRegistrationProcessor ///////////////////
Reimplemented from FREE::LightRegistrationProcessorBase.
Definition at line 45 of file freFEMRegistrationProcessor.txx.
References FREE::cParam_FEMRegLevels.
| const long FREE::FEMRegistrationProcessor< VImageDimension >::GetMaxIterationCount | ( | ) | [inline, virtual] |
Returns the max count of iteration steps of the actual resolution level. The return of the function depends on the derived classes. If the return -1 the count is unknown (e.g optimizer has a threshold value as stopping criterion)
Definition at line 57 of file freFEMRegistrationProcessor.txx.
References FREE::cComp_MainOptimizer, FREE::ComponentSetup::Components(), FREE::cParam_Iterations, FREE::LightRegistrationProcessorBase::GetComponentSetup(), FREE::KeyedCollectionBase< TKey, TElement, TIdentifierClass >::GetElement(), FREE::ParameterCollection::GetParameterValue(), and FREE::ComponentSetup::Parameters().

| void FREE::FEMRegistrationProcessor< VImageDimension >::ComputeRegistration | ( | ) | [inline, protected, virtual] |
This function starts the registration. It checks if the controller built all needed components. Plugs the last things (e.g. Observer) and runs the registration, after this the processor manages to compute the final image and transformation field, if needed. The observer will also be created and plugged to the registration process. Also the initial parameters will be set by the processor. After computing the registration, the final parameters going to be stored in TransformSetup (part of ComponentSetup).
Reimplemented from FREE::ImageRegistrationProcessorBase< VImageDimension >.
Definition at line 75 of file freFEMRegistrationProcessor.txx.
References FREE::SessionBuilder::ActualizeComponent(), catchAllNPassMacro, FREE::ImageRegistrationProcessorBase< VImageDimension >::ComputeRegistration(), FREE::cParam_HistoLevels, FREE::cParam_HistoMatch, FREE::cParam_HistoMatchPoints, FREE::cParam_HistoThreshold, FREE::LightRegistrationProcessorBase::fnOnProgress, FREE::FEMRegistrationProcessor< VImageDimension >::m_IterationNotificationEvent, FREE::FEMRegistrationProcessor< VImageDimension >::m_IterationObserver, FREE::LightRegistrationProcessorBase::m_lCurIteration, FREE::ImageRegistrationProcessorBase< VImageDimension >::m_smpFixedImage, FREE::ImageRegistrationProcessorBase< VImageDimension >::m_smpMovingImage, FREE::RSTInitProcessor, FREE::RSTProcessing, FREE::FEMRegistrationProcessor< VImageDimension >::SetFEMElements(), FREE::FEMRegistrationProcessor< VImageDimension >::SetRegistrationParameters(), FREE::FEMRegistrationProcessor< VImageDimension >::smpRegistration, and throwExceptionMacro.

| void FREE::FEMRegistrationProcessor< VImageDimension >::SetRegistrationParameters | ( | ) | [inline, protected] |
This function is used before starting the registration to set the parameters for the registration, either by the fre elements file or by a given setup file.
Definition at line 185 of file freFEMRegistrationProcessor.txx.
References FREE::cParam_FEMAlpha, FREE::cParam_FEMDensity, FREE::cParam_FEMDescentDirection, FREE::cParam_FEMDoLineSearch, FREE::cParam_FEMElasticity, FREE::cParam_FEMEnergyReduction, FREE::cParam_FEMEnergyScale, FREE::cParam_FEMLandmarkFile, FREE::cParam_FEMLandmarkType, FREE::cParam_FEMMetric, FREE::cParam_FEMNrIntPoints, FREE::cParam_FEMPPE, FREE::cParam_FEMRegLevels, FREE::cParam_FEMRegridding, FREE::cParam_FEMScaleGradient, FREE::cParam_FEMSetup, FREE::cParam_FEMTimeStep, FREE::cParam_FEMWidthOfMetric, FREE::cParam_Iterations, FREE::LightRegistrationProcessorBase::GetComponentSetup(), FREE::GetGeneralFREEPath(), FREE::ParameterCollection::GetParameterValue(), FREE::ComponentSetup::Parameters(), FREE::FEMRegistrationProcessor< VImageDimension >::SaveLandmarksToFile(), FREE::FEMRegistrationProcessor< VImageDimension >::smpRegistration, and throwExceptionMacro.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::ComputeRegistration().

| void FREE::FEMRegistrationProcessor< VImageDimension >::SaveLandmarksToFile | ( | const std::string & | sFileName | ) | [inline, protected] |
Definition at line 326 of file freFEMRegistrationProcessor.txx.
References FREE::cParam_FEMLandmarks, FREE::LightRegistrationProcessorBase::GetComponentSetup(), FREE::ParameterCollection::GetParameterValue(), FREE::ParameterCollection::ParameterLayerCount(), FREE::ComponentSetup::Parameters(), FREE::ParameterCollection::ParameterSize(), throwExceptionMacro, and FREE::Convert::ToStr().
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::SetRegistrationParameters().

| void FREE::FEMRegistrationProcessor< VImageDimension >::SetFEMElements | ( | ) | [inline, protected] |
This function is used before starting the registration to set the elements, of the deformation grid.
Definition at line 374 of file freFEMRegistrationProcessor.txx.
References FREE::FEMRegistrationProcessor< VImageDimension >::smpRegistration.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::ComputeRegistration().
| FEMRegistrationProcessor< VImageDimension >::TransformFieldPointer FREE::FEMRegistrationProcessor< VImageDimension >::ComputeTransformationField | ( | const PointType & | origin, | |
| const RegionType & | region, | |||
| const SpacingType & | spacing | |||
| ) | [inline, protected, virtual] |
Definition at line 425 of file freFEMRegistrationProcessor.txx.
References catchAllNPassMacro, and FREE::RSTFinalizing.
| void FREE::FEMRegistrationProcessor< VImageDimension >::OnNewIteration | ( | void * | pSender, | |
| long | threadID | |||
| ) | [inline, protected] |
This function is plugged to the observer and reacts to a notify event.
Definition at line 508 of file freFEMRegistrationProcessor.txx.
References FREE::LightRegistrationProcessorBase::m_lCurIteration.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::FEMRegistrationProcessor().
| MetricPointer FREE::FEMRegistrationProcessor< VImageDimension >::smpMetric |
Pointer to a metric object created and managed by a ferComponentControllerBase defined by the ComponentSetup of the RegistrationProcessor.
Definition at line 134 of file freFEMRegistrationProcessor.h.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::FEMRegistrationProcessor().
| RegistrationPointer FREE::FEMRegistrationProcessor< VImageDimension >::smpRegistration |
Pointer to a FEMRegistrationFilter object created and managed by a ferTransformController defined by the ComponentSetup of the RegistrationProcessor. It is the same like a transform object of rigid registrations, it only calls registration, because it combines both and is the place where the registration is computed.
Definition at line 141 of file freFEMRegistrationProcessor.h.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::ComputeRegistration(), FREE::FEMRegistrationProcessor< VImageDimension >::FEMRegistrationProcessor(), FREE::FEMRegistrationProcessor< VImageDimension >::SetFEMElements(), and FREE::FEMRegistrationProcessor< VImageDimension >::SetRegistrationParameters().
| IterationObserver::Pointer FREE::FEMRegistrationProcessor< VImageDimension >::m_IterationObserver |
The IterationObserver waits for a notifications (itk::IterationEvent) of the optimizer and triggers the OnNewIteration function.
Definition at line 145 of file freFEMRegistrationProcessor.h.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::ComputeRegistration(), and FREE::FEMRegistrationProcessor< VImageDimension >::FEMRegistrationProcessor().
| NotificationEvent<Self>::Pointer FREE::FEMRegistrationProcessor< VImageDimension >::m_IterationNotificationEvent |
Definition at line 146 of file freFEMRegistrationProcessor.h.
Referenced by FREE::FEMRegistrationProcessor< VImageDimension >::ComputeRegistration(), and FREE::FEMRegistrationProcessor< VImageDimension >::FEMRegistrationProcessor().
1.5.3 written by Dimitri van Heesch,
© 1997-2000