18 #ifndef __igstkLandmark3DRegistration_h
19 #define __igstkLandmark3DRegistration_h
29 #include "itkLandmarkBasedTransformInitializer.h"
73 itkStaticConstMacro(Dimension,
unsigned int,3);
77 typedef itk::Image< PixelType, Dimension >
ImageType;
83 typedef itk::LandmarkBasedTransformInitializer< TransformType,
86 typedef TransformInitializerType::LandmarkPointContainer
139 TransformInitializerErrorEvent );
143 igstkEventMacro( TransformComputationSuccessEvent,TransformInitializerEvent);
154 void PrintSelf( std::ostream& os, itk::Indent indent ) const;
161 void operator=(const Self&);
164 TransformPointerType m_Transform;
165 TransformInitializerPointerType m_TransformInitializer;
168 LandmarkImagePointType m_ImageLandmarkPoint;
169 LandmarkTrackerPointType m_TrackerLandmarkPoint;
174 double m_CollinearityTolerance;
177 igstkDeclareStateMacro( Idle );
178 igstkDeclareStateMacro( ImageLandmark1Added );
179 igstkDeclareStateMacro( TrackerLandmark1Added );
180 igstkDeclareStateMacro( ImageLandmark2Added );
181 igstkDeclareStateMacro( TrackerLandmark2Added );
182 igstkDeclareStateMacro( ImageLandmark3Added );
183 igstkDeclareStateMacro( TrackerLandmark3Added );
184 igstkDeclareStateMacro( AttemptingToComputeTransform );
185 igstkDeclareStateMacro( TransformComputed );
189 igstkDeclareInputMacro( ImageLandmark );
190 igstkDeclareInputMacro( TrackerLandmark );
191 igstkDeclareInputMacro( ComputeTransform );
192 igstkDeclareInputMacro( GetTransformFromTrackerToImage );
193 igstkDeclareInputMacro( GetTransformFromImageToTracker );
194 igstkDeclareInputMacro( GetRMSError );
195 igstkDeclareInputMacro( ResetRegistration );
196 igstkDeclareInputMacro( TransformComputationFailure );
197 igstkDeclareInputMacro( TransformComputationSuccess );
201 bool CheckCollinearity();
206 void AddImageLandmarkPointProcessing();
210 void AddTrackerLandmarkPointProcessing();
214 void ResetRegistrationProcessing();
218 void ComputeTransformProcessing();
223 void GetTransformFromTrackerToImageProcessing();
228 void GetTransformFromImageToTrackerProcessing();
232 void GetRMSErrorProcessing();
236 void ReportInvalidRequestProcessing();
240 void ReportSuccessInTransformComputationProcessing();
244 void ReportFailureInTransformComputationProcessing();
253 #endif // __igstkLandmark3DRegistration_h
void RequestAddImageLandmarkPoint(const LandmarkImagePointType &pt)
The "RequestAddImageLandmarkPoint" will be used to add point to the image landmark point container...
itk::VersorRigid3DTransform< double > TransformType
typedefs for the transform types
void RequestGetTransformFromImageToTracker()
The "RequesteGetTransformFromImageToTracker" method will be used to request to get the transform from...
void RequestGetTransformFromTrackerToImage()
The "RequesteGetTransformFromTrackerToImage" method will be used to request to get the transform from...
Base class for all the IGSTK classes.
TransformInitializerType::LandmarkPointType LandmarkTrackerPointType
#define igstkStandardClassTraitsMacro(classname, superclassname)
Convenience macro for traits of a non-templated class.
TransformInitializerType::Pointer TransformInitializerPointerType
igstkStandardClassTraitsMacro(Landmark3DRegistration, Object) public typedef unsigned char PixelType
Macro with standard traits declarations.
defines standard system-wide macros, constants, and other common parameters in the IGSTK Library...
void ComputeRMSError()
The "ComputeRMSError" method calculates and returns RMS error.
void RequestGetRMSError()
The "RequestGetRMSError" method will be used to get the RMS error value.
This class computes rigid body transformation parameters between two 3D coordinate systems...
::itk::SmartPointer< Self > Pointer
igstkEventMacro(TransformInitializerEvent, IGSTKEvent)
Landmark registration events.
void RequestSetCollinearityTolerance(const double &tolerance)
RequestSetCollinearityTolerance method will be used to set collinearity tolerance.
LandmarkPointContainerType::const_iterator PointsContainerConstIterator
void RequestResetRegistration()
The "RequestResetRegistration" function will be used to start the registration process from the scrat...
void RequestAddTrackerLandmarkPoint(const LandmarkImagePointType &pt)
The "RequestAddTrackerLandmarkPoint" will be used to add a point to the tracker landmark point contai...
TransformInitializerType::LandmarkPointContainer LandmarkPointContainerType
itk::LandmarkBasedTransformInitializer< TransformType, ImageType, ImageType > TransformInitializerType
void RequestComputeTransform()
The "RequestComputeTransform" method will be used to request transform parameter calculation.
TransformInitializerType::LandmarkPointType LandmarkImagePointType
This class represents the frame of a coordinate reference system.
itk::Image< PixelType, Dimension > ImageType
TransformType::Pointer TransformPointerType
void PrintSelf(std::ostream &os, itk::Indent indent) const
Print the object information in a stream.