26 #ifndef __TERRALIB_RASTER_INTERNAL_INTERPOLATOR_H
27 #define __TERRALIB_RASTER_INTERNAL_INTERPOLATOR_H
37 #include <boost/noncopyable.hpp>
83 Interpolator(
Raster const* r,
int m,
const std::vector< std::complex<double> >& noDataValues);
96 inline void getValue(
const double& c,
const double& r, std::complex<double>& v,
const std::size_t& b)
98 assert(b < m_raster->getNumberOfBands());
99 (this->*(m_function))(c, r, v, b);
109 void getValues(
const double& c,
const double& r, std::vector<std::complex<double> >& values);
128 void nearestNeighborGetValue(
const double& c,
const double& r, std::complex<double>& v,
const std::size_t& b);
138 void bilinearGetValue(
const double& c,
const double& r, std::complex<double>& v,
const std::size_t& b);
148 void bicubicGetValue(
const double& c,
const double& r, std::complex<double>& v,
const std::size_t& b);
158 typedef void (
Interpolator::*InterpolationFunction)(
const double& c,
const double& r, std::complex<double>& v,
const std::size_t& b);
168 bool initialize(
Raster const *
const rasterPointer,
int method,
169 const std::vector< std::complex<double> >& noDataValues );
195 double m_bilDistances[4];
196 double m_bilWeights[4];
208 double m_bicBbufferReal[4][4];
209 double m_bicBbufferImag[4][4];
213 double m_bicHWeights[4];
214 double m_bicVWeights[4];
219 double m_bicRowsValuesReal[4];
220 double m_bicRowsValuesImag[4];
228 #endif // __TERRALIB_RASTER_INTERNAL_INTERPOLATOR_H
#define TERASTEREXPORT
You can use this macro in order to export/import classes and functions from this module.
std::vector< std::complex< double > > m_noDataValues
Raster no-data values (for each band);.
It interpolates one pixel based on a selected algorithm. Methods currently available are Nearest Neig...
double m_bilRowMin
Minimum row for bilinear interpolation.
void getValue(const double &c, const double &r, std::complex< double > &v, const std::size_t &b)
Get the interpolated value at specific band.
double m_bilColMin
Minimum column for bilinear interpolation.
double m_bilLastCol
Last column available for bilinear interpolation.
std::vector< std::complex< double > > m_bilValues
Bilinear values;.
double m_bilColDifMin
Minimum difference between columns (min/max).
InterpolationFunction m_function
The current interpolation function pointer.
An abstract class for raster data strucutures.
double m_bilRowMax
Maximum row for bilinear interpolation.
An abstract class for raster data strucutures.
double m_bicColBound
Last column available for bicubic interpolation.
double m_nnLastRow
Last row available for nearest Neighbor interpolation.
double m_bicRowBound
Last row available for bicubic interpolation.
double m_bicReadRealValue
double m_bilLastRow
Last row available for bilinear interpolation.
double m_nnLastCol
Last column available for nearest Neighbor interpolation.
Method
Allowed interpolation methods.
double m_bilColMax
Maximum column for bilinear interpolation.
double m_bicReadImagValue
int m_method
The interpolation method.
Raster const * m_raster
My input raster.
double m_bilRowDifMax
Maximum difference between rows (min/max).
double m_bilColDifMax
Maximum difference between columns (min/max).
double m_bilRowDifMin
Minimum difference between rows (min/max).