25 #ifndef __TERRALIB_RP_INTERNAL_CONTRAST_H    26 #define __TERRALIB_RP_INTERNAL_CONTRAST_H    85               CumulativeCut2EnhancementT 
   179             AbstractParameters* clone() const;
   218             AbstractParameters* clone() const;
   234         bool isInitialized() const;
   247         static 
bool getGainAndOffset( const 
InputParameters::ContrastType& type,
   248           const 
double& inRangeMin, const 
double& inRangeMax,
   249           const 
double& outRangeMin, const 
double& outRangeMax,
   250           double& gain, 
double& offset1, 
double& offset2 );
   257         typedef 
void (
Contrast::*RemapFuncPtrT)( const 
double& inValue, 
   263         bool m_isInitialized; 
   269         bool execLinearContrast();
   275         bool execHistogramEqualizationContrast();
   281         bool execSquareContrast();      
   287         bool execSquareRootContrast(); 
   293         bool execLogContrast();         
   299         bool execSetMeanAndStdContrast();
   305         bool execDecorrelationEnhancement();
   311         bool execCumulativeCut2Enhancement();
   323         bool remapBandLevels( const 
te::rst::Raster& inRaster,
   324           const 
unsigned int inRasterBandIdx,
   325           te::rst::Raster& outRaster,
   326           const 
unsigned int outRasterBandIdx,
   327           RemapFuncPtrT remapFuncPtr,
   328           const 
bool enableProgress );
   331         double m_offSetGainRemap_offset1;
   332         double m_offSetGainRemap_offset2;
   333         double m_offSetGainRemap_gain;
   336         double m_squareRemap_gain;
   339         double m_squareRootRemap_gain;        
   342         double m_logRemap_gain;
   343         double m_logRemap_offset;                
   346         double m_decorrelationEnhancementRemap_gain;
   347         double m_decorrelationEnhancementRemap_offset1;
   348         double m_decorrelationEnhancementRemap_offset2;
   351         double m_histogramEqualizationRemap_cDFMin;
   352         double m_histogramEqualizationRemap_gain;
   353         std::map<
double, 
double> m_histogramEqualizationRemap_cdf;
   361         inline 
void offSetGainRemap( const 
double& inValue, 
double& outValue )
   363           outValue = ( ( inValue + m_offSetGainRemap_offset1 ) *
   364             m_offSetGainRemap_gain ) + m_offSetGainRemap_offset2;
   373         inline void squareRemap( 
const double& inValue, 
double& outValue )
   375           outValue = m_squareRemap_gain * std::pow( inValue, 2.0 );
   386           outValue = m_squareRootRemap_gain * std::sqrt( inValue );
   395         inline void logRemap( 
const double& inValue, 
double& outValue )
   397           outValue = m_logRemap_gain * std::log10( inValue + m_logRemap_offset + 1.0 );
   407           outValue = ( ( inValue + m_decorrelationEnhancementRemap_offset1 ) *
   408             m_decorrelationEnhancementRemap_gain )
   409             + m_decorrelationEnhancementRemap_offset2;
   419           outValue = ( ( m_histogramEqualizationRemap_cdf.lower_bound( inValue )->second ) -  m_histogramEqualizationRemap_cDFMin ) *
   420             m_histogramEqualizationRemap_gain;
 
te::rst::Raster * m_outRasterPtr
A pointer to a valid initiated raster instance where the result must be written, leave NULL to create...
 
Base exception class for plugin module. 
 
void squareRemap(const double &inValue, double &outValue)
Remap on gray level using a square. 
 
void logRemap(const double &inValue, double &outValue)
Remap on gray level using a log. 
 
Raster Processing algorithm output parameters base interface. 
 
Raster Processing algorithm base interface class. 
 
void squareRootRemap(const double &inValue, double &outValue)
Remap on gray level using a square root. 
 
Raster Processing algorithm base interface. 
 
An abstract class for raster data strucutures. 
 
std::vector< unsigned int > m_outRasterBands
Bands to be processed from the output raster. 
 
void DecorrelationEnhancementRemap(const double &inValue, double &outValue)
Remap on gray level using two offsets and gain. 
 
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module. 
 
std::unique_ptr< te::rst::Raster > m_createdOutRasterPtr
A pointer to the created output raster instance, or an empty pointer empty if the result must be writ...
 
std::string m_createdOutRasterDSType
Output raster data source type (as described in te::raster::RasterFactory ), leave empty if the resul...
 
void histogramEqualizationRemap(const double &inValue, double &outValue)
Remap on gray level using two offsets and gain. 
 
Contrast output parameters. 
 
std::map< std::string, std::string > m_createdOutRasterInfo
The necessary information to create the raster (as described in te::raster::RasterFactory), leave empty if the result must be written to the raster pointed m_outRasterPtr.