Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef __cmtkMakeInitialAffineTransformation_h_included_
00033 #define __cmtkMakeInitialAffineTransformation_h_included_
00034
00035 #include <cmtkconfig.h>
00036
00037 #include <Base/cmtkUniformVolume.h>
00038 #include <Base/cmtkAffineXform.h>
00039
00040 #include <string>
00041
00042 namespace
00043 cmtk
00044 {
00045
00048
00051 class MakeInitialAffineTransformation
00052 {
00053 public:
00055 typedef MakeInitialAffineTransformation Self;
00056
00058 typedef enum
00059 {
00060 NONE = 0,
00061 FOV = 1,
00062 COM = 2,
00063 PAX = 3,
00064 PHYS = 4
00065 } Mode;
00066
00068 static const std::string GetModeName( const Self::Mode mode );
00069
00071 static AffineXform* Create( const UniformVolume& referenceImage,
00072 const UniformVolume& floatingImage,
00073 const Self::Mode mode
00074 );
00075
00079 static AffineXform* AlignDirectionVectors
00080 ( const UniformVolume& referenceImage,
00081 const UniformVolume& floatingImage,
00082 const bool centerXform = false
00083 );
00084
00090 static AffineXform* AlignFieldsOfView( const UniformVolume& referenceImage, const UniformVolume& floatingImage );
00091
00095 static AffineXform* AlignCentersOfMass( const UniformVolume& referenceImage, const UniformVolume& floatingImage );
00096
00100 static AffineXform* AlignPrincipalAxes( const UniformVolume& referenceImage, const UniformVolume& floatingImage );
00101 };
00102
00104
00105 }
00106
00107 #endif // #ifndef __cmtkMakeInitialAffineTransformation_h_included_