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.