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.
const OutputParameters & operator=(const OutputParameters ¶ms)
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state.
AbstractParameters * clone() const
Create a clone copy of this instance.
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 &)
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.