15 #ifndef itkSimultaneousUnconstrainedMatrixReconRegnMetric_h
16 #define itkSimultaneousUnconstrainedMatrixReconRegnMetric_h
18 #include <itkConceptChecking.h>
19 #include <itkSingleValuedCostFunction.h>
21 #include <itkForwardAndBackwardProjectionMatrix.h>
22 #include <itkEulerAffineTransformMatrixAndItsVariations.h>
37 template <
class TScalarType =
double,
class IntensityType =
float>
85 typedef typename SingleValuedCostFunction::MeasureType
MeasureType;
90 void SetInputVolume( InputVolumePointer inVolume ) { m_inVolume = inVolume; }
97 { m_inProjOne = inProjectionOne; m_inProjTwo = inProjectionTwo; }
109 void SetTotalVoxel(
const unsigned long int &totalSize3D ) { m_totalSize3D = totalSize3D; }
112 void SetTotalPixel(
const unsigned long int &totalSize2D ) { m_totalSize2D = totalSize2D; }
129 unsigned int GetNumberOfParameters(
void)
const;
132 void Initialise(
void);
136 virtual void GetValueAndDerivative(
const ParametersType & parameters,
138 DerivativeType & derivative )
const;
146 virtual MeasureType GetValue(
const ParametersType & parameters )
const;
154 virtual void GetDerivative(
const ParametersType & parameters,
155 DerivativeType & derivative )
const;
163 void PrintSelf(std::ostream& os, Indent indent)
const;
198 void operator=(
const Self&);
204 #ifndef ITK_MANUAL_INSTANTIATION
205 #include "itkSimultaneousUnconstrainedMatrixReconRegnMetric.txx"
MatrixProjectorPointerType m_MatrixProjector
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:170
MatrixProjectorType::OutputImageType InputProjectionType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:68
InputImageType::PointType InputImagePointType
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:62
MatrixProjectorType::InputImageType InputVolumeType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:59
OutputImageType::SizeType OutputImageSizeType
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:70
SmartPointer< const Self > ConstPointer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:46
SmartPointer< Self > Pointer
Definition: itkProjectionGeometry.h:36
MatrixProjectorType::InputImageConstPointer InputVolumeConstPointer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:61
MatrixProjectorType::OutputImagePointer InputProjectionPointer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:69
void SetInputTwoProjectionVectors(VectorType &inProjectionOne, VectorType &inProjectionTwo)
Set the input projection images.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:96
MatrixProjectorType::InputImageSpacingType InputVolumeSpacingType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:64
unsigned long int m_totalSize3D
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:177
vnl_sparse_matrix< TScalarType > SparseMatrixType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:79
MatrixProjectorType::InputImagePointType InputVolumePointType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:65
Class to apply the affine transformation matrix to a 3D image.
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:37
void SetTotalProjectionSize(InputProjectionSizeType &projSize)
Set the total number of the pixels of the projection.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:118
VectorType m_EstimatedVolumeVector
Vectors of the image and transformation parameters.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:166
Definition: niftkITKAffineResampleImage.cxx:74
void SetProjectionGeometry(ProjectionGeometryType::Pointer pGeometry)
Set the projection geometry.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:121
MatrixProjectorType::OutputImageSizeType InputProjectionSizeType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:71
AffineTransformerType::EulerAffineTransformType EulerAffineTransformType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:74
InputProjectionPointer m_inProjTemp
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:174
SmartPointer< Self > Pointer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:45
void SetInputVolumeVector(VectorType &inVolumeVector)
Set the 3D reconstruction estimate input volume as a vector form.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:93
VectorType m_TransformationParameterVector
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:167
unsigned int m_ProjectionNumber
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:179
vnl_vector< TScalarType > VectorType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:81
void SetInputTempProjections(InputProjectionPointer tempProjection)
Set the temporary projection image.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:100
InputVolumePointType m_InVolumeOrigin
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:183
unsigned long int m_totalSize2D
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:178
InputVolumeSpacingType m_InVolumeSpacing
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:182
SingleValuedCostFunction::ParametersType ParametersType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:84
void SetTotalPixel(const unsigned long int &totalSize2D)
Set the total number of the pixels of the projection.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:112
MatrixProjectorType::InputImageRegionType InputVolumeRegionType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:62
Abstract class to calculate the geometry of a CT or tomo machine.
Definition: itkProjectionGeometry.h:29
SingleValuedCostFunction::MeasureType MeasureType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:85
virtual ~SimultaneousUnconstrainedMatrixReconRegnMetric()
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:161
GLsizei const GLfloat * value
Definition: glew.h:1833
vnl_matrix< TScalarType > FullMatrixType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:80
MatrixProjectorType::InputImageSizeType InputVolumeSizeType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:63
InputImageType::IndexType InputImageIndexType
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:63
InputImageType::Pointer InputImagePointer
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:56
void SetParameterNumber(const unsigned int ¶Number)
Set the number of the transformation parameters.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:103
MatrixProjectorType::OutputImageConstPointer InputProjectionConstPointer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:70
unsigned int m_paraNumber
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:176
itk::EulerAffineTransformMatrixAndItsVariations< double > AffineTransformerType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:73
itk::ForwardAndBackwardProjectionMatrix< TScalarType, IntensityType > MatrixProjectorType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:52
InputImageType::SpacingType InputImageSpacingType
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:61
MatrixProjectorType::InputImagePointer InputVolumePointer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:60
void SetTotalProjectionNumber(const unsigned int &projNumber)
Set the total number of the pixels of the projection.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:115
InputProjectionSizeType m_InProjectionSize
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:185
void SetInputVolume(InputVolumePointer inVolume)
Set the 3D reconstruction estimate input volume.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:90
InputVolumePointer m_inVolume
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:173
SimultaneousUnconstrainedMatrixReconRegnMetric Self
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:43
AffineTransformerType::Pointer m_AffineTransformer
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:171
InputImageType::RegionType InputImageRegionType
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:58
OutputImageType::ConstPointer OutputImageConstPointer
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:67
InputImageType::ConstPointer InputImageConstPointer
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:57
MatrixProjectorType::Pointer MatrixProjectorPointerType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:57
void SetParameterVector(VectorType ¶Vector)
Set the transformation parameters as a vector form.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:106
OutputImageType::Pointer OutputImagePointer
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:66
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
itk::ProjectionGeometry< float > ProjectionGeometryType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:76
InputImageType::SizeType InputImageSizeType
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:60
Class to compute the difference between a reconstruction estimate and the target set of 2D projection...
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:38
SingleValuedCostFunction Superclass
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:44
void SetInputVolumeSize(InputVolumeSizeType &inVolumeSize)
Set the size, resolution and origin of the input volume.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:124
void SetTotalVoxel(const unsigned long int &totalSize3D)
Set the total number of the voxels of the volume.
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:109
SmartPointer< Self > Pointer
Definition: Projection/itkForwardAndBackwardProjectionMatrix.h:43
ProjectionGeometryType::Pointer m_Geometry
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:193
SingleValuedCostFunction::DerivativeType DerivativeType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:86
InputVolumeSizeType m_InVolumeSize
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:181
MatrixProjectorType::InputImageIndexType InputVolumeIndexType
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:66
void SetInputVolumeSpacing(InputVolumeSpacingType &inVolumeSpacing)
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:125
VectorType m_inProjTwo
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:168
void SetInputVolumeOrigin(InputVolumePointType &inVolumeOrigin)
Definition: itkSimultaneousUnconstrainedMatrixReconRegnMetric.h:126