TiePointsLocatorInputParameters.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/rp/TiePointsLocatorInputParameters.h
22  \brief TiePointsLocator input parameters.
23  */
24 
25 #ifndef __TERRALIB_RP_INTERNAL_TIEPOINTSLOCATORINPUTPARAMETERS_H
26 #define __TERRALIB_RP_INTERNAL_TIEPOINTSLOCATORINPUTPARAMETERS_H
27 
28 #include "Config.h"
29 #include "Exception.h"
32 #include "../geometry/GeometricTransformation.h"
33 #include "../raster/Raster.h"
34 #include "../raster/Interpolator.h"
35 
36 #include <vector>
37 #include <string>
38 #include <memory>
39 
40 namespace te
41 {
42  namespace rp
43  {
44  /*!
45  \class TiePointsLocatorInputParameters
46  \brief TiePointsLocator input parameters
47  */
49  {
50  public:
51 
52  std::string m_interesPointsLocationStrategyName; //!< The strategy used to locate interest points (default:Moravec).
53 
54  te::rst::Raster const* m_inRaster1Ptr; //!< Input raster 1.
55 
56  te::rst::Raster const* m_inMaskRaster1Ptr; //!< Optional one band input mask raster 1 (tie-points will not be generated inside mask image areas marked with zeroes).
57 
58  std::vector< unsigned int > m_inRaster1Bands; //!< Bands to be used from the input raster 1.
59 
60  unsigned int m_raster1TargetAreaLineStart; //!< The first line of the raster 1 target area to process (default:0 - The entire raster will be considered).
61 
62  unsigned int m_raster1TargetAreaColStart; //!< The first column of the raster 2 target area to process (default:0 - The entire raster will be considered).
63 
64  unsigned int m_raster1TargetAreaWidth; //!< The raster 1 target area width (default:0 - The entire raster will be considered).
65 
66  unsigned int m_raster1TargetAreaHeight; //!< The raster 1 target area height (default:0 - The entire raster will be considered).
67 
68  te::rst::Raster const* m_inRaster2Ptr; //!< Input raster 2.
69 
70  te::rst::Raster const* m_inMaskRaster2Ptr; //!< Optional one band input mask raster 2 (tie-points will not be generated inside mask image areas marked with zeroes).
71 
72  std::vector< unsigned int > m_inRaster2Bands; //!< Bands to be used from the input raster 2.
73 
74  unsigned int m_raster2TargetAreaLineStart; //!< The first line of the raster 2 target area to process (default:0 - The entire raster will be considered).
75 
76  unsigned int m_raster2TargetAreaColStart; //!< The first column of the raster 2 target area to process (default:0 - The entire raster will be considered).
77 
78  unsigned int m_raster2TargetAreaWidth; //!< The raster 2 target area width (default:0 - The entire raster will be considered).
79 
80  unsigned int m_raster2TargetAreaHeight; //!< The raster 2 target area height (default:0 - The entire raster will be considered).
81 
82  bool m_enableMultiThread; //!< Enable/Disable the use of multi-threads (default:true).
83 
84  bool m_enableProgress; //!< Enable/Disable the progress interface (default:false).
85 
86  unsigned int m_maxTiePoints; //!< The maximum number of tie-points to generate (0:Automatically calculated, default:2500).
87 
88  double m_pixelSizeXRelation; //!< The pixel resolution relation m_pixelSizeXRelation = raster1_pixel_res_x / raster2_pixel_res_x (default=1.0).
89 
90  double m_pixelSizeYRelation; //!< The pixel resolution relation m_pixelSizeYRelation = raster1_pixel_res_y / raster2_pixel_res_y (default=1.0).
91 
92  std::string m_geomTransfName; //!< The name of the geometric transformation used to ensure tie-points consistency (see each te::gm::GTFactory inherited classes to find each factory key/name, default:Affine).
93 
94  double m_geomTransfMaxError; //!< The maximum allowed transformation error (pixel units, default:2).
95 
96  bool m_enableGeometryFilter; //!< Enable/disable the geometry filter/outliers remotion (default:true).
97 
98  double m_geometryFilterAssurance; //!< Geometry assurance (the error-free selection percent assurance) - Use Lower values for good tie-points sets - Higher values may increase the number of iterations - valid range (0-1) - default:0.75.
99 
100  double m_subSampleOptimizationRescaleFactor; //!< Sub-sampled optimization tie-points search rescale factor (Tie-ponts will be searched into a subsabmpled image and refined before using the original image - Defaul: 1 - subsample optimization disabled, valid range: non-zero positive values).
101 
102  double m_subSampleOptimizationMinTPAreaCoverage; //!< Sub-sampled optimization - mininumum required tie-points covered area percent of each raster area - valid range [0,100] (default:25).
103 
104  double m_subSampleOptimizationMinTPNumberFactor; //!< Sub-sampled optimization - mininumum required tie-points number factor - valid range [1,inf] (default:2).
105 
106  te::rst::Interpolator::Method m_interpMethod; //!< The raster interpolator method (default:NearestNeighbor).
107 
108  unsigned int m_tiePointsSubSectorsSplitFactor; //!< The algorithm will try to generate tie-points distributed over image sectors ( Default: 3 - 3x3 sub-sectors, minimum: 1).
109 
111 
113 
115 
116  //overload
117  void reset() throw( te::rp::Exception );
118 
119  //overload
120  const TiePointsLocatorInputParameters& operator=( const TiePointsLocatorInputParameters& params );
121 
122  //overload
123  AbstractParameters* clone() const;
124 
125  /*!
126  \brief Set specific tie-points locator strategy parameters.
127  \param specStratParams The specific tie-points locator strategy parameters.
128  */
129  void setSpecStrategyParams(
130  const TiePointsLocatorStrategyParameters& specStratParams );
131 
132  /*!
133  \brief Returns a pointer to the internal specific tie-points locator strategy parameters.
134  \return A pointer to the internal specific tie-points locator strategy parameters, or
135  null if no parameters are present.
136  */
137  TiePointsLocatorStrategyParameters const* getSpecStrategyParams() const;
138 
139  /*!
140  \brief Returns a pointer to the internal specific tie-points locator strategy parameters.
141  \return A pointer to the internal specific tie-points locator strategy parameters, or
142  null if no parameters are present.
143  */
144  TiePointsLocatorStrategyParameters* getSpecStrategyParams();
145 
146  protected :
147 
148  /*!
149  \brief A pointer to the internal specific segmenter strategy parameters or
150  NULL if no parameters are present.
151  */
152  std::auto_ptr< TiePointsLocatorStrategyParameters > m_specStratParamsPtr;
153  };
154 
155  } // end namespace rp
156 } // end namespace te
157 
158 #endif
159 
Raster Processing algorithm input parameters base interface.
Tie Points Locator strategy parameters.
std::vector< unsigned int > m_inRaster2Bands
Bands to be used from the input raster 2.
bool m_enableProgress
Enable/Disable the progress interface (default:false).
unsigned int m_raster2TargetAreaLineStart
The first line of the raster 2 target area to process (default:0 - The entire raster will be consider...
Base exception class for plugin module.
Definition: Exception.h:42
double m_geomTransfMaxError
The maximum allowed transformation error (pixel units, default:2).
double m_subSampleOptimizationRescaleFactor
Sub-sampled optimization tie-points search rescale factor (Tie-ponts will be searched into a subsabmp...
te::rst::Raster const * m_inRaster2Ptr
Input raster 2.
std::string m_interesPointsLocationStrategyName
The strategy used to locate interest points (default:Moravec).
InterpolationMethod
Allowed interpolation methods.
Definition: Enums.h:92
Exception class.
unsigned int m_maxTiePoints
The maximum number of tie-points to generate (0:Automatically calculated, default:2500).
unsigned int m_raster1TargetAreaHeight
The raster 1 target area height (default:0 - The entire raster will be considered).
double m_pixelSizeXRelation
The pixel resolution relation m_pixelSizeXRelation = raster1_pixel_res_x / raster2_pixel_res_x (defau...
An abstract class for raster data strucutures.
Definition: Raster.h:71
double m_geometryFilterAssurance
Geometry assurance (the error-free selection percent assurance) - Use Lower values for good tie-point...
bool m_enableGeometryFilter
Enable/disable the geometry filter/outliers remotion (default:true).
std::vector< unsigned int > m_inRaster1Bands
Bands to be used from the input raster 1.
URI C++ Library.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:139
double m_subSampleOptimizationMinTPAreaCoverage
Sub-sampled optimization - mininumum required tie-points covered area percent of each raster area - v...
unsigned int m_tiePointsSubSectorsSplitFactor
The algorithm will try to generate tie-points distributed over image sectors ( Default: 3 - 3x3 sub-s...
te::rst::Raster const * m_inRaster1Ptr
Input raster 1.
double m_subSampleOptimizationMinTPNumberFactor
Sub-sampled optimization - mininumum required tie-points number factor - valid range [1...
Configuration flags for the Raster Processing module of TerraLib.
unsigned int m_raster1TargetAreaWidth
The raster 1 target area width (default:0 - The entire raster will be considered).
double m_pixelSizeYRelation
The pixel resolution relation m_pixelSizeYRelation = raster1_pixel_res_y / raster2_pixel_res_y (defau...
unsigned int m_raster1TargetAreaLineStart
The first line of the raster 1 target area to process (default:0 - The entire raster will be consider...
unsigned int m_raster2TargetAreaColStart
The first column of the raster 2 target area to process (default:0 - The entire raster will be consid...
unsigned int m_raster2TargetAreaHeight
The raster 2 target area height (default:0 - The entire raster will be considered).
bool m_enableMultiThread
Enable/Disable the use of multi-threads (default:true).
te::rst::Raster const * m_inMaskRaster1Ptr
Optional one band input mask raster 1 (tie-points will not be generated inside mask image areas marke...
Raster Processing algorithm input parameters base interface.
te::rst::Raster const * m_inMaskRaster2Ptr
Optional one band input mask raster 2 (tie-points will not be generated inside mask image areas marke...
std::string m_geomTransfName
The name of the geometric transformation used to ensure tie-points consistency (see each te::gm::GTFa...
unsigned int m_raster1TargetAreaColStart
The first column of the raster 2 target area to process (default:0 - The entire raster will be consid...
unsigned int m_raster2TargetAreaWidth
The raster 2 target area width (default:0 - The entire raster will be considered).
te::rst::Interpolator::Method m_interpMethod
The raster interpolator method (default:NearestNeighbor).