Go to the documentation of this file.
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;
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;
Raster Processing algorithm output parameters base interface.
void squareRootRemap(const double &inValue, double &outValue)
Remap on gray level using a square root.
An abstract class for raster data strucutures.
OutputParameters(const OutputParameters &)
Contrast output parameters.
Raster Processing algorithm base interface.
void DecorrelationEnhancementRemap(const double &inValue, double &outValue)
Remap on gray level using two offsets and gain.
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state.
Base exception class for plugin module.
std::map< std::string, std::string > m_createdOutRasterInfo
The necessary information to create the raster (as described in te::raster::RasterFactory),...
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
std::vector< unsigned int > m_outRasterBands
Bands to be processed from the output raster.
void histogramEqualizationRemap(const double &inValue, double &outValue)
Remap on gray level using two offsets and gain.
std::string m_createdOutRasterDSType
Output raster data source type (as described in te::raster::RasterFactory ), leave empty if the resul...
void squareRemap(const double &inValue, double &outValue)
Remap on gray level using a square.
te::rst::Raster * m_outRasterPtr
A pointer to a valid initiated raster instance where the result must be written, leave NULL to create...
void logRemap(const double &inValue, double &outValue)
Remap on gray level using a log.
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...