25 #ifndef __TERRALIB_RP_INTERNAL_IHSFUSION_H 
   26 #define __TERRALIB_RP_INTERNAL_IHSFUSION_H 
   30 #include "../raster/Raster.h" 
   31 #include "../raster/Interpolator.h" 
   32 #include "../raster/RasterSynchronizer.h" 
   77               MeanStdDevHistoFitMethod = 1,    
 
   78               MinMaxHistoFitMethod = 2           
 
  184           std::vector< std::tuple< bool, unsigned int,  unsigned int > >*
 
  208           std::vector< std::tuple< bool, unsigned int,  unsigned int > >*
 
  226           std::vector< std::tuple< bool, unsigned int,  unsigned int > >*
 
  258           const unsigned int inputRasterBand, 
double& mean, 
double& stdDev,
 
  259           double&min, 
double& max ) 
const;
 
  269           const unsigned int highResRasterBand,
 
  285           const double& rgbMin, 
const double& rgbMax,
 
  286           const std::string& rType, 
const std::map< std::string, std::string >& rInfo,
 
  287           std::unique_ptr< te::rst::Raster >& outputRasterPtr,
 
  303           const double& rgbMin, 
 
  305           std::unique_ptr< te::rst::Raster >& ihsRasterPtr ) 
const;
 
Raster Processing algorithm output parameters base interface.
 
Raster Processing algorithm base interface.
 
IHSFusion output parameters.
 
AbstractParameters * clone() const
Create a clone copy of this instance.
 
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state.
 
std::unique_ptr< te::rst::Raster > m_outputRasterPtr
The generated output fused raster.
 
std::string m_rType
Output raster data source type (as described in te::raster::RasterFactory ).
 
std::map< std::string, std::string > m_rInfo
The necessary information to create the output rasters (as described in te::raster::RasterFactory).
 
OutputParameters(const OutputParameters &)
 
const OutputParameters & operator=(const OutputParameters ¶ms)
 
Fusion of a low-resolution multi-band image with a high resolution image using the IHS method.
 
bool initialize(const AlgorithmInputParameters &inputParams)
Initialize the algorithm instance making it ready for execution.
 
bool getStatistics(const te::rst::Raster &inputRaster, const unsigned int inputRasterBand, double &mean, double &stdDev, double &min, double &max) const
Get statistics from the given raster band.
 
bool loadUpsampledIHSData(const te::rst::Grid &upsampledGrid, const double &rgbMin, const double rgbMax, std::unique_ptr< te::rst::Raster > &ihsRasterPtr) const
Load resampled IHS data from the lower resolution input image.
 
bool saveRGBData(const double &rgbMin, const double &rgbMax, const std::string &rType, const std::map< std::string, std::string > &rInfo, std::unique_ptr< te::rst::Raster > &outputRasterPtr, const te::rst::Raster &ihsRaster)
Save resampled IHS data as RGB data to the output image.
 
bool execute(AlgorithmOutputParameters &outputParams)
Executes the algorithm using the supplied parameters.
 
static void swapIntensityThreadEntry(SwapIntensityThreadParameters *paramsPtr)
 
static void saveRGBDataThreadEntry(SaveRGBDataThreadParameters *paramsPtr)
 
bool getRGBRange(double &rgbMin, double &rgbMax) const
Get the minimum and maximum values from the RGB input image.
 
bool m_isInitialized
Tells if this instance is initialized.
 
static void loadUpsampledIHSDataThreadEntry(LoadUpsampledIHSDataThreadParameters *paramsPtr)
 
InputParameters m_inputParameters
Input execution parameters.
 
bool isInitialized() const
Returns true if the algorithm instance is initialized and ready for execution.
 
void reset()
Clear all internal allocated objects and reset the algorithm to its initial state.
 
bool swapIntensity(const te::rst::Raster &highResRaster, const unsigned int highResRasterBand, te::rst::Raster &ihsRaster)
Swap the intensity data by the high resolution image data.
 
A rectified grid is the spatial support for raster data.
 
An access synchronizer to be used in SynchronizedRaster raster instances.
 
An abstract class for raster data strucutures.
 
InterpolationMethod
Allowed interpolation methods.
 
unsigned int m_inputRasterRedBandIndex
 
unsigned int m_inputRasterGreenBandIndex
 
te::rst::Interpolator::Method m_interpMethod
 
unsigned int m_interpWindowRadius
 
unsigned int m_inputRasterBlueBandIndex
 
te::rst::RasterSynchronizer * m_inputRasterSyncPtr
 
te::rst::RasterSynchronizer * m_outputRasterSyncPtr
 
std::vector< std::tuple< bool, unsigned int, unsigned int > > * m_rasterBlocksStatusPtr
 
te::rst::RasterSynchronizer * m_outputRasterSyncPtr
 
te::rst::RasterSynchronizer * m_inputRasterSyncPtr
 
std::vector< std::tuple< bool, unsigned int, unsigned int > > * m_rasterBlocksStatusPtr
 
te::rst::RasterSynchronizer * m_outputRasterSyncPtr
 
unsigned int m_outputRasterBandIdx
 
te::rst::RasterSynchronizer * m_inputRasterSyncPtr
 
std::vector< std::tuple< bool, unsigned int, unsigned int > > * m_rasterBlocksStatusPtr
 
unsigned int m_inputRasterBandIdx
 
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.