OTB
9.0.0
Orfeo Toolbox
|
#include <otbFineRegistrationImageFilter.h>
Public Types | |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef itk::ContinuousIndex< double, 2 > | ContinuousIndexType |
typedef TOutputDisplacementField::PixelType | DisplacementValueType |
typedef TInputImage::IndexType | IndexType |
typedef TInputImage::Pointer | InputImagePointerType |
typedef TInputImage::RegionType | InputImageRegionType |
typedef InterpolatorType::Pointer | InterpolatorPointerType |
typedef itk::InterpolateImageFunction< TInputImage, double > | InterpolatorType |
typedef MetricType::Pointer | MetricPointerType |
typedef itk::ImageToImageMetric< TInputImage, TInputImage > | MetricType |
typedef TInputImage::OffsetType | OffsetType |
typedef T0utputCorrelation::RegionType | OutputImageRegionType |
typedef itk::SmartPointer< Self > | Pointer |
typedef TInputImage::PointType | PointType |
typedef FineRegistrationImageFilter | Self |
typedef TInputImage::SizeType | SizeType |
typedef TInputImage::SpacingType | SpacingType |
typedef itk::ImageToImageFilter< TInputImage, T0utputCorrelation > | Superclass |
typedef TransformType::Pointer | TransformPointerType |
typedef itk::Transform< double, 2, 2 > | TransformType |
typedef TranslationType::Pointer | TranslationPointerType |
typedef itk::TranslationTransform< double, 2 > | TranslationType |
Public Member Functions | |
virtual ::itk::LightObject::Pointer | CreateAnother (void) const |
virtual const char * | GetNameOfClass () const |
Static Public Member Functions | |
static Pointer | New () |
SizeType | m_Radius |
SizeType | m_SearchRadius |
bool | m_Minimize |
bool | m_UseSpacing |
double | m_ConvergenceAccuracy |
double | m_SubPixelAccuracy |
int | m_MaxIter |
InterpolatorPointerType | m_Interpolator |
MetricPointerType | m_Metric |
TranslationPointerType | m_Translation |
SpacingType | m_InitialOffset |
OffsetType | m_GridStep |
TransformPointerType | m_Transform |
virtual void | SetMetric (MetricType *_arg) |
itkGetObjectMacro (Metric, MetricType) | |
virtual void | SetInterpolator (InterpolatorType *_arg) |
itkGetObjectMacro (Interpolator, InterpolatorType) | |
void | SetFixedInput (const TInputImage *image) |
void | SetMovingInput (const TInputImage *image) |
const TInputImage * | GetFixedInput () |
const TInputImage * | GetMovingInput () |
TOutputDisplacementField * | GetOutputDisplacementField () |
virtual void | SetRadius (SizeType _arg) |
virtual SizeType | GetRadius () |
virtual void | SetSearchRadius (SizeType _arg) |
virtual SizeType | GetSearchRadius () |
virtual void | SetConvergenceAccuracy (double _arg) |
virtual double | GetConvergenceAccuracy () |
virtual void | SetSubPixelAccuracy (double _arg) |
virtual double | GetSubPixelAccuracy () |
virtual void | SetMaxIter (int _arg) |
virtual int | GetMaxIter () |
virtual void | SetMinimize (bool _arg) |
virtual void | MinimizeOn () |
virtual void | MinimizeOff () |
virtual void | SetUseSpacing (bool _arg) |
virtual void | UseSpacingOn () |
virtual void | UseSpacingOff () |
virtual void | SetInitialOffset (SpacingType _arg) |
virtual const SpacingType & | GetInitialOffset () const |
virtual void | SetGridStep (OffsetType _arg) |
virtual const OffsetType & | GetGridStep () const |
void | SetRadius (unsigned int radius) |
void | SetSearchRadius (unsigned int radius) |
void | SetGridStep (unsigned int step) |
virtual void | SetTransform (TransformType *_arg) |
virtual const TransformType * | GetTransform () const |
FineRegistrationImageFilter () | |
~FineRegistrationImageFilter () override | |
void | GenerateData () override |
void | GenerateInputRequestedRegion (void) override |
void | GenerateOutputInformation (void) override |
FineRegistrationImageFilter (const Self &)=delete | |
void | operator= (const Self &)=delete |
double | callMetric (double val1, double val2, double &oldRes, bool &flag) |
void | updateOptParams (double potBestVal, double parx, double pary, double &bestVal, typename TranslationType::ParametersType &optParams) |
void | updatePoints (double &gn, double &in1, double &in2, double &in3, double &out1, double &out2, double &out3, double &out4) |
void | updateMinimize (double &a, double &b) |
Computes a displacement field between two images using a given metric.
This filter tries to find at each location of the fixed image the corresponding best matching patch of radius set by SetRadius() method in the moving image within a search windows whose radius is defined by SetSearchRadius() method.
To do so, it optimizes a metric set using the SetMetric() method, which accepts any itk metric deriving from the itk::ImageToImageMetric. The MinimizeOn()/MinimizeOff() flag allows searching for minimum or maximum depending on the metric (default is On).
Once a coarse (pixel wise) offset has been found, this match is further refined using golden section search search until convergence accuracy (given by the SetConvergenceAccuracy()) is reached, or when the max number of iteration () is reached.
The filter proposes two outputs: GetOutput() return the image of the metric optimum at each location, and the GetOutputDisplacementField() method returns the corresponding offset.
If the UseSpacingOn() flag is used, the output displacement field takes the input image spacing into account. otherwise, the displacement field is expressed in pixels (default ins On).
This filter accepts fixed and moving images with different sizes and spacing. Metric and search windows radius are expressed in terms of number of pixels in the fixed image.
An initial offset can be used to reduce computation time in case of input and moving images with a significant offset. This offset is taken into account in the output displacement field.
It is possible to generate an output metric map and displacement field at a coarser resolution by setting grid step to value higher than 1 (grid step is expressed in terms of number of fixed image pixels). Default value is 1.
The FineRegistrationImageFilter allows using the full range of itk::ImageToImageMetric provided by itk.
Definition at line 74 of file otbFineRegistrationImageFilter.h.
typedef itk::SmartPointer<const Self> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::ConstPointer |
Definition at line 81 of file otbFineRegistrationImageFilter.h.
typedef itk::ContinuousIndex<double, 2> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::ContinuousIndexType |
Definition at line 101 of file otbFineRegistrationImageFilter.h.
typedef TOutputDisplacementField::PixelType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::DisplacementValueType |
Definition at line 91 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::IndexType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::IndexType |
Definition at line 95 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::Pointer otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::InputImagePointerType |
Definition at line 92 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::RegionType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::InputImageRegionType |
Definition at line 93 of file otbFineRegistrationImageFilter.h.
typedef InterpolatorType::Pointer otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::InterpolatorPointerType |
Definition at line 100 of file otbFineRegistrationImageFilter.h.
typedef itk::InterpolateImageFunction<TInputImage, double> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::InterpolatorType |
Definition at line 99 of file otbFineRegistrationImageFilter.h.
typedef MetricType::Pointer otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::MetricPointerType |
Definition at line 103 of file otbFineRegistrationImageFilter.h.
typedef itk::ImageToImageMetric<TInputImage, TInputImage> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::MetricType |
Definition at line 102 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::OffsetType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::OffsetType |
Definition at line 98 of file otbFineRegistrationImageFilter.h.
typedef T0utputCorrelation::RegionType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::OutputImageRegionType |
Some convenient typedefs.
Definition at line 87 of file otbFineRegistrationImageFilter.h.
typedef itk::SmartPointer<Self> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::Pointer |
Definition at line 80 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::PointType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::PointType |
Definition at line 97 of file otbFineRegistrationImageFilter.h.
typedef FineRegistrationImageFilter otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::Self |
Standard class typedefs.
Definition at line 78 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::SizeType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::SizeType |
Definition at line 94 of file otbFineRegistrationImageFilter.h.
typedef TInputImage::SpacingType otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::SpacingType |
Definition at line 96 of file otbFineRegistrationImageFilter.h.
typedef itk::ImageToImageFilter<TInputImage, T0utputCorrelation> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::Superclass |
Definition at line 79 of file otbFineRegistrationImageFilter.h.
typedef TransformType::Pointer otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::TransformPointerType |
Definition at line 107 of file otbFineRegistrationImageFilter.h.
typedef itk::Transform<double, 2, 2> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::TransformType |
Definition at line 106 of file otbFineRegistrationImageFilter.h.
typedef TranslationType::Pointer otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::TranslationPointerType |
Definition at line 105 of file otbFineRegistrationImageFilter.h.
typedef itk::TranslationTransform<double, 2> otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::TranslationType |
Definition at line 104 of file otbFineRegistrationImageFilter.h.
|
protected |
Constructor
Definition at line 38 of file otbFineRegistrationImageFilter.hxx.
|
inlineoverrideprotected |
Destructor
Definition at line 206 of file otbFineRegistrationImageFilter.h.
|
privatedelete |
The radius for correlation
|
inlineprivate |
The radius for correlation
Definition at line 277 of file otbFineRegistrationImageFilter.hxx.
virtual::itk::LightObject::Pointer otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::CreateAnother | ( | void | ) | const |
|
overrideprotected |
Threaded generate data
Output iterators
Definition at line 336 of file otbFineRegistrationImageFilter.hxx.
|
overrideprotected |
Generate the input requested regions
Definition at line 154 of file otbFineRegistrationImageFilter.hxx.
|
overrideprotected |
Generate output information
Definition at line 123 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
The radius for correlation
const TInputImage * otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::GetFixedInput |
Get the inputs
Definition at line 93 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
const TInputImage * otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::GetMovingInput |
The radius for correlation
Definition at line 103 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
Run-time type information (and related methods).
TOutputDisplacementField * otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::GetOutputDisplacementField |
Get the output displacement field
Definition at line 113 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::itkGetObjectMacro | ( | Interpolator | , |
InterpolatorType | |||
) |
The radius for correlation
otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::itkGetObjectMacro | ( | Metric | , |
MetricType | |||
) |
The radius for correlation
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
|
static |
Method for creation through the object factory.
|
privatedelete |
The radius for correlation
|
virtual |
Set/Get convergence accuracy
void otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::SetFixedInput | ( | const TInputImage * | image | ) |
Connect one of the operands for pixel-wise addition
Definition at line 79 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
Set the grid step
|
inline |
Set unsigned int grid step
Definition at line 191 of file otbFineRegistrationImageFilter.h.
|
virtual |
Set default offset between the two images
|
virtual |
Set/Get the interpolator used to interpolate moving image at non-grid positions
|
virtual |
Set/Get max number of iterations
|
virtual |
Set/Get the Metric used to compare images
|
virtual |
True if metric should be minimized. False otherwise
void otb::FineRegistrationImageFilter< TInputImage, T0utputCorrelation, TOutputDisplacementField >::SetMovingInput | ( | const TInputImage * | image | ) |
Connect one of the operands for pixel-wise addition
Definition at line 86 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
Set the radius of the area on which metric is evaluated
|
inline |
Set unsigned int radius
Definition at line 179 of file otbFineRegistrationImageFilter.h.
|
virtual |
Set the searh radius
|
inline |
Set unsigned int radius
Definition at line 185 of file otbFineRegistrationImageFilter.h.
|
virtual |
Set/Get subpixel accuracy
|
virtual |
Set/Get the transform for the initial offset
|
virtual |
True if displacement field takes spacing into account. False otherwise
|
inlineprivate |
The radius for correlation
Definition at line 325 of file otbFineRegistrationImageFilter.hxx.
|
inlineprivate |
The radius for correlation
Definition at line 300 of file otbFineRegistrationImageFilter.hxx.
|
inlineprivate |
The radius for correlation
Definition at line 313 of file otbFineRegistrationImageFilter.hxx.
|
virtual |
The radius for correlation
|
virtual |
The radius for correlation
|
private |
Search step
Definition at line 241 of file otbFineRegistrationImageFilter.h.
|
private |
Grid step
Definition at line 260 of file otbFineRegistrationImageFilter.h.
|
private |
Default offset
Definition at line 257 of file otbFineRegistrationImageFilter.h.
|
private |
The interpolator
Definition at line 248 of file otbFineRegistrationImageFilter.h.
|
private |
Max number of iterations
Definition at line 245 of file otbFineRegistrationImageFilter.h.
|
private |
The metric
Definition at line 251 of file otbFineRegistrationImageFilter.h.
|
private |
Minimize/maximize metric
Definition at line 235 of file otbFineRegistrationImageFilter.h.
|
private |
The radius for correlation
Definition at line 229 of file otbFineRegistrationImageFilter.h.
|
private |
The search radius
Definition at line 232 of file otbFineRegistrationImageFilter.h.
|
private |
The radius for correlation
Definition at line 242 of file otbFineRegistrationImageFilter.h.
|
private |
Transform for initial offset
Definition at line 263 of file otbFineRegistrationImageFilter.h.
|
private |
The translation
Definition at line 254 of file otbFineRegistrationImageFilter.h.
|
private |
If true, displacement field uses spacing. Otherwise, uses pixel grid
Definition at line 238 of file otbFineRegistrationImageFilter.h.