template<typename TFixedImage, typename TMovingImage>
class itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >
Computes similarity between two objects to be registered.
This Class is templated over the type of the fixed and moving images to be compared.
This metric computes cardinality of the set of pixels that match exactly between the moving and fixed images. The 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.
This metric is designed for matching label maps. All pixel mismatches are considered equal whether they are between label 1 and label 2 or between label 1 and label 500. In other words, the magnitude of an individual label mismatch is not relevant, or the occurrence of a label mismatch is important.
Given the nature of label maps, a nearest neighbor interpolator is the preferred interpolator.
The metric measure can measure the number of pixel matches (pixels with exactly the same label) or pixel mismatches (pixels with different labels). The returned metric value is the number of pixel matches (or mismatches) normalized by the number of pixels considered. The number of pixel considered is a function of the number of pixels in the overlap of the fixed and moving image buffers conditional on any assigned masks.
- Examples
- Examples/RegistrationITKv4/ImageRegistration10.cxx, and Examples/RegistrationITKv4/ImageRegistration19.cxx.
Definition at line 67 of file itkMatchCardinalityImageToImageMetric.h.
|
MeasureType | GetNonconstValue (const TransformParametersType ¶meters) |
|
| MatchCardinalityImageToImageMetric () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
virtual ThreadIdType | SplitFixedRegion (ThreadIdType i, int num, FixedImageRegionType &splitRegion) |
|
virtual void | ThreadedGetValue (const FixedImageRegionType ®ionForThread, ThreadIdType threadId) |
|
| ~MatchCardinalityImageToImageMetric () override=default |
|
virtual void | ComputeImageDerivatives (const MovingImagePointType &mappedPoint, ImageDerivativesType &gradient, ThreadIdType threadId) const |
|
void | GetValueAndDerivativeMultiThreadedInitiate () const |
|
void | GetValueAndDerivativeMultiThreadedPostProcessInitiate () const |
|
virtual void | GetValueAndDerivativeThread (ThreadIdType threadId) const |
|
virtual void | GetValueAndDerivativeThreadPostProcess (ThreadIdType, bool) const |
|
virtual void | GetValueAndDerivativeThreadPreProcess (ThreadIdType, bool) const |
|
virtual bool | GetValueAndDerivativeThreadProcessSample (ThreadIdType, SizeValueType, const MovingImagePointType &, double, const ImageDerivativesType &) const |
|
| ImageToImageMetric () |
|
virtual void | PreComputeTransformValues () |
|
virtual void | SampleFixedImageIndexes (FixedImageSampleContainer &samples) const |
|
virtual void | SampleFixedImageRegion (FixedImageSampleContainer &samples) const |
|
virtual void | SampleFullFixedImageRegion (FixedImageSampleContainer &samples) const |
|
virtual void | SynchronizeTransforms () const |
|
virtual void | TransformPoint (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleOk, double &movingImageValue, ThreadIdType threadId) const |
|
virtual void | TransformPointWithDerivatives (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleOk, double &movingImageValue, ImageDerivativesType &movingImageGradient, ThreadIdType threadId) const |
|
| ~ImageToImageMetric () override=default |
|
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 |
|
| SingleValuedCostFunction ()=default |
|
| ~SingleValuedCostFunction () override |
|
| CostFunctionTemplate ()=default |
|
| ~CostFunctionTemplate () override=default |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
| ~Object () override |
|
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 () |
|