|
using | CastFixedImageFilterPointer = typename CastFixedImageFilterType::Pointer |
|
using | CastFixedImageFilterType = itk::CastImageFilter< FixedImageType, FixedGradientImageType > |
|
using | CastMovedImageFilterPointer = typename CastMovedImageFilterType::Pointer |
|
using | CastMovedImageFilterType = itk::CastImageFilter< TransformedMovingImageType, MovedGradientImageType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = typename Superclass::DerivativeType |
|
using | FixedGradientImageType = itk::Image< RealType, Self::FixedImageDimension > |
|
using | FixedGradientPixelType = typename FixedGradientImageType::PixelType |
|
using | FixedImageConstPointer = typename Superclass::FixedImageConstPointer |
|
using | FixedImagePixelType = typename TFixedImage::PixelType |
|
using | FixedImageType = typename Superclass::FixedImageType |
|
using | MeasureType = typename Superclass::MeasureType |
|
using | MovedGradientImageType = itk::Image< RealType, Self::MovedImageDimension > |
|
using | MovedGradientPixelType = typename MovedGradientImageType::PixelType |
|
using | MovedImagePixelType = typename TMovingImage::PixelType |
|
using | MovingImageConstPointer = typename Superclass::MovingImageConstPointer |
|
using | MovingImageType = typename Superclass::MovingImageType |
|
using | Pointer = SmartPointer< Self > |
|
using | RealType = typename Superclass::RealType |
|
using | Self = GradientDifferenceImageToImageMetric |
|
using | Superclass = ImageToImageMetric< TFixedImage, TMovingImage > |
|
using | TransformedMovingImageType = itk::Image< FixedImagePixelType, Self::FixedImageDimension > |
|
using | TransformJacobianType = typename Superclass::TransformJacobianType |
|
using | TransformMovingImageFilterType = itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType > |
|
using | TransformParametersType = typename Superclass::TransformParametersType |
|
using | TransformPointer = typename Superclass::TransformPointer |
|
using | TransformType = typename Superclass::TransformType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | CoordinateRepresentationType = typename Superclass::ParametersValueType |
|
using | DerivativeType = typename Superclass::DerivativeType |
|
using | FixedImageConstPointer = typename FixedImageType::ConstPointer |
|
using | FixedImageIndexContainer = std::vector< FixedImageIndexType > |
|
using | FixedImageIndexType = typename FixedImageType::IndexType |
|
using | FixedImageIndexValueType = typename FixedImageIndexType::IndexValueType |
|
using | FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer |
|
using | FixedImageMaskPointer = typename FixedImageMaskType::Pointer |
|
using | FixedImageMaskType = SpatialObject< Self::FixedImageDimension > |
|
using | FixedImagePixelType = typename TFixedImage::PixelType |
|
using | FixedImagePointType = typename TransformType::InputPointType |
|
using | FixedImageRegionType = typename FixedImageType::RegionType |
|
using | FixedImageType = TFixedImage |
|
using | GradientImageFilterPointer = typename GradientImageFilterType::Pointer |
|
using | GradientImageFilterType = GradientRecursiveGaussianImageFilter< MovingImageType, GradientImageType > |
|
using | GradientImagePointer = SmartPointer< GradientImageType > |
|
using | GradientImageType = Image< GradientPixelType, Self::MovingImageDimension > |
|
using | GradientPixelType = CovariantVector< RealType, Self::MovingImageDimension > |
|
using | InputPointType = typename TransformType::InputPointType |
|
using | InterpolatorPointer = typename InterpolatorType::Pointer |
|
using | InterpolatorType = InterpolateImageFunction< MovingImageType, CoordinateRepresentationType > |
|
using | MeasureType = typename Superclass::MeasureType |
|
using | MovingImageConstPointer = typename MovingImageType::ConstPointer |
|
using | MovingImageIndexType = typename MovingImageType::IndexType |
|
using | MovingImageMaskConstPointer = typename MovingImageMaskType::ConstPointer |
|
using | MovingImageMaskPointer = typename MovingImageMaskType::Pointer |
|
using | MovingImageMaskType = SpatialObject< Self::MovingImageDimension > |
|
using | MovingImagePixelType = typename TMovingImage::PixelType |
|
using | MovingImagePointType = typename TransformType::OutputPointType |
|
using | MovingImageType = TMovingImage |
|
using | OutputPointType = typename TransformType::OutputPointType |
|
using | ParametersType = typename Superclass::ParametersType |
|
using | Pointer = SmartPointer< Self > |
|
using | RealType = typename NumericTraits< MovingImagePixelType >::RealType |
|
using | Self = ImageToImageMetric |
|
using | Superclass = SingleValuedCostFunction |
|
using | TransformJacobianType = typename TransformType::JacobianType |
|
using | TransformParametersType = typename TransformType::ParametersType |
|
using | TransformPointer = typename TransformType::Pointer |
|
using | TransformType = Transform< CoordinateRepresentationType, Self::MovingImageDimension, Self::FixedImageDimension > |
|
using | MultiThreaderType = MultiThreaderBase |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = Array< ParametersValueType > |
|
using | MeasureType = double |
|
using | ParametersType = Superclass::ParametersType |
|
using | ParametersValueType = Superclass::ParametersValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = SingleValuedCostFunction |
|
using | Superclass = CostFunction |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | ParametersType = OptimizerParameters< TInternalComputationValueType > |
|
using | ParametersValueType = TInternalComputationValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = CostFunctionTemplate |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
using | FixedImageSampleContainer = std::vector< FixedImageSamplePoint > |
|
using | BSplineTransformType = BSplineBaseTransform< CoordinateRepresentationType, FixedImageType ::ImageDimension, Self::DeformationSplineOrder > |
|
using | BSplineTransformWeightsType = typename BSplineTransformType::WeightsType |
|
using | WeightsValueType = typename BSplineTransformWeightsType::ValueType |
|
using | BSplineTransformWeightsArrayType = Array2D< WeightsValueType > |
|
using | BSplineTransformIndexArrayType = typename BSplineTransformType::ParameterIndexArrayType |
|
using | IndexValueType = typename BSplineTransformIndexArrayType::ValueType |
|
using | BSplineTransformIndicesArrayType = Array2D< IndexValueType > |
|
using | MovingImagePointArrayType = std::vector< MovingImagePointType > |
|
using | BooleanArrayType = std::vector< bool > |
|
using | BSplineParametersOffsetType = FixedArray< SizeValueType, FixedImageType ::ImageDimension > |
|
using | BSplineInterpolatorType = BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType > |
|
using | DerivativeFunctionType = CentralDifferenceImageFunction< MovingImageType, CoordinateRepresentationType > |
|
using | ImageDerivativesType = CovariantVector< double, Self::MovingImageDimension > |
|
| ImageToImageMetric () |
|
| ~ImageToImageMetric () override |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
virtual void | SampleFixedImageRegion (FixedImageSampleContainer &samples) const |
|
virtual void | SampleFixedImageIndexes (FixedImageSampleContainer &samples) const |
|
virtual void | SampleFullFixedImageRegion (FixedImageSampleContainer &samples) const |
|
virtual void | PreComputeTransformValues () |
|
virtual void | TransformPoint (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleWithinSupportRegion, double &movingImageValue, ThreadIdType threadId) const |
|
virtual void | TransformPointWithDerivatives (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleWithinSupportRegion, double &movingImageValue, ImageDerivativesType &gradient, ThreadIdType threadId) const |
|
virtual void | ComputeImageDerivatives (const MovingImagePointType &mappedPoint, ImageDerivativesType &gradient, ThreadIdType threadId) const |
|
void | GetValueMultiThreadedInitiate () const |
|
void | GetValueMultiThreadedPostProcessInitiate () const |
|
virtual void | GetValueThread (ThreadIdType threadId) const |
|
virtual void | GetValueThreadPreProcess (ThreadIdType, bool) const |
|
virtual bool | GetValueThreadProcessSample (ThreadIdType, SizeValueType, const MovingImagePointType &, double) const |
|
virtual void | GetValueThreadPostProcess (ThreadIdType, bool) const |
|
void | GetValueAndDerivativeMultiThreadedInitiate () const |
|
void | GetValueAndDerivativeMultiThreadedPostProcessInitiate () const |
|
virtual void | GetValueAndDerivativeThread (ThreadIdType threadId) const |
|
virtual void | GetValueAndDerivativeThreadPreProcess (ThreadIdType, bool) const |
|
virtual bool | GetValueAndDerivativeThreadProcessSample (ThreadIdType, SizeValueType, const MovingImagePointType &, double, const ImageDerivativesType &) const |
|
virtual void | GetValueAndDerivativeThreadPostProcess (ThreadIdType, bool) const |
|
virtual void | SynchronizeTransforms () const |
|
| SingleValuedCostFunction ()=default |
|
| ~SingleValuedCostFunction () override |
|
| CostFunctionTemplate ()=default |
|
| ~CostFunctionTemplate () override=default |
|
| Object () |
|
| ~Object () override |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueMultiThreaded (void *arg) |
|
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueMultiThreadedPostProcess (void *arg) |
|
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueAndDerivativeMultiThreaded (void *arg) |
|
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueAndDerivativeMultiThreadedPostProcess (void *arg) |
|
bool | m_UseFixedImageIndexes { false } |
|
FixedImageIndexContainer | m_FixedImageIndexes |
|
bool | m_UseFixedImageSamplesIntensityThreshold { false } |
|
FixedImagePixelType | m_FixedImageSamplesIntensityThreshold |
|
FixedImageSampleContainer | m_FixedImageSamples |
|
SizeValueType | m_NumberOfParameters { 0 } |
|
SizeValueType | m_NumberOfFixedImageSamples { 50000 } |
|
SizeValueType | m_NumberOfPixelsCounted { 0 } |
|
FixedImageConstPointer | m_FixedImage |
|
MovingImageConstPointer | m_MovingImage |
|
TransformPointer | m_Transform |
|
TransformPointer * | m_ThreaderTransform |
|
InterpolatorPointer | m_Interpolator |
|
bool | m_ComputeGradient { true } |
|
GradientImagePointer | m_GradientImage |
|
FixedImageMaskConstPointer | m_FixedImageMask |
|
MovingImageMaskConstPointer | m_MovingImageMask |
|
ThreadIdType | m_NumberOfWorkUnits { 1 } |
|
bool | m_UseAllPixels { false } |
|
bool | m_UseSequentialSampling { false } |
|
bool | m_ReseedIterator { false } |
|
int | m_RandomSeed |
|
bool | m_TransformIsBSpline { false } |
|
SizeValueType | m_NumBSplineWeights { 0 } |
|
BSplineTransformType::Pointer | m_BSplineTransform |
|
BSplineTransformWeightsArrayType | m_BSplineTransformWeightsArray |
|
BSplineTransformIndicesArrayType | m_BSplineTransformIndicesArray |
|
MovingImagePointArrayType | m_BSplinePreTransformPointsArray |
|
BooleanArrayType | m_WithinBSplineSupportRegionArray |
|
BSplineParametersOffsetType | m_BSplineParametersOffset |
|
bool | m_UseCachingOfBSplineWeights { true } |
|
BSplineTransformWeightsType | m_BSplineTransformWeights |
|
BSplineTransformIndexArrayType | m_BSplineTransformIndices |
|
BSplineTransformWeightsType * | m_ThreaderBSplineTransformWeights |
|
BSplineTransformIndexArrayType * | m_ThreaderBSplineTransformIndices |
|
bool | m_InterpolatorIsBSpline { false } |
|
BSplineInterpolatorType::Pointer | m_BSplineInterpolator |
|
DerivativeFunctionType::Pointer | m_DerivativeCalculator |
|
MultiThreaderType::Pointer | m_Threader |
|
ConstantPointerWrapper * | m_ConstSelfWrapper |
|
unsigned int * | m_ThreaderNumberOfMovingImageSamples { nullptr } |
|
bool | m_WithinThreadPreProcess { false } |
|
bool | m_WithinThreadPostProcess { false } |
|
std::atomic< int > | m_ReferenceCount |
|
static constexpr unsigned int | DeformationSplineOrder = 3 |
|
template<typename TFixedImage, typename TMovingImage>
class itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >
Computes similarity between two objects to be registered.
This Class is templated over the type of the Images to be compared and over the type of transformation and Iterpolator to be used.
This metric computes the sum of squared differences between pixels in the derivatives of the moving and fixed images after passing the squared difference through a function of type .
- Warning
- THIS IMAGE METRIC IS CURRENTLY UNDER DEBUGGING. USE AT YOUR OWN RISK.
Spatial correspondence between both images is established through a Transform. Pixel values are taken from the Moving image. Their positions are mapped to the Fixed image and result in general in non-grid position on it. Values at these non-grid position of the Fixed image are interpolated using a user-selected Interpolator.
Implementation of this class is based on: Hipwell, J. H., et. al. (2003), "Intensity-Based 2-D-3D Registration of
Cerebral Angiograms,", IEEE Transactions on Medical Imaging, 22(11):1417-1426.
- Examples
- Examples/RegistrationITKv4/ImageRegistration18.cxx.
Definition at line 58 of file itkGradientDifferenceImageToImageMetric.h.