QGIS API Documentation  master-6164ace
QgsContrastEnhancement Class Reference

Manipulates raster pixel values so that they enhanceContrast or clip into a specified numerical range according to the specified ContrastEnhancementAlgorithm. More...

#include <qgscontrastenhancement.h>

+ Collaboration diagram for QgsContrastEnhancement:

List of all members.

Public Types

enum  ContrastEnhancementAlgorithm {
  NoEnhancement, StretchToMinimumMaximum, StretchAndClipToMinimumMaximum, ClipToMinimumMaximum,
  UserDefinedEnhancement
}
 This enumerator describes the types of contrast enhancement algorithms that can be used. More...

Public Member Functions

 QgsContrastEnhancement (QGis::DataType theDatatype=QGis::Byte)
 QgsContrastEnhancement (const QgsContrastEnhancement &ce)
 ~QgsContrastEnhancement ()
ContrastEnhancementAlgorithm contrastEnhancementAlgorithm () const
int enhanceContrast (double)
 Apply the contrast enhancement to a value.
bool isValueInDisplayableRange (double)
 Return true if pixel is in stretable range, false if pixel is outside of range (i.e., clipped)
double maximumValue () const
 Return the maximum value for the contrast enhancement range.
double minimumValue () const
 Return the minimum value for the contrast enhancement range.
void readXML (const QDomElement &elem)
void setContrastEnhancementAlgorithm (ContrastEnhancementAlgorithm, bool generateTable=true)
 Set the contrast enhancement algorithm.
void setContrastEnhancementFunction (QgsContrastEnhancementFunction *)
 A public method that allows the user to set their own custom contrast enhancment function.
void setMaximumValue (double, bool generateTable=true)
 Set the maximum value for the contrast enhancement range.
void setMinimumValue (double, bool generateTable=true)
 Return the minimum value for the contrast enhancement range.
void writeXML (QDomDocument &doc, QDomElement &parentElem) const

Static Public Member Functions

static ContrastEnhancementAlgorithm contrastEnhancementAlgorithmFromString (const QString &contrastEnhancementString)
static QString contrastEnhancementAlgorithmString (ContrastEnhancementAlgorithm algorithm)
static double maximumValuePossible (QGis::DataType)
 Helper function that returns the maximum possible value for a GDAL data type.
static double minimumValuePossible (QGis::DataType)
 Helper function that returns the minimum possible value for a GDAL data type.

Private Member Functions

int calculateContrastEnhancementValue (double)
 Method to calculate the actual enhanceContrasted value(s)
bool generateLookupTable ()
 Method to generate a new lookup table.

Private Attributes

ContrastEnhancementAlgorithm mContrastEnhancementAlgorithm
 Current contrast enhancement algorithm.
QgsContrastEnhancementFunctionmContrastEnhancementFunction
 Pointer to the contrast enhancement function.
bool mEnhancementDirty
 Flag indicating if the lookup table needs to be regenerated.
int * mLookupTable
 Pointer to the lookup table.
double mLookupTableOffset
 Scalar so that values can be used as array indicies.
double mMaximumValue
 user defineable maximum value for the band, used for enhanceContrasting
double mMinimumValue
 User defineable minimum value for the band, used for enhanceContrasting.
QGis::DataType mRasterDataType
 Data type of the band.
double mRasterDataTypeRange
 Maximum range of values for a given data type.

Detailed Description

Manipulates raster pixel values so that they enhanceContrast or clip into a specified numerical range according to the specified ContrastEnhancementAlgorithm.

Definition at line 38 of file qgscontrastenhancement.h.


Member Enumeration Documentation

This enumerator describes the types of contrast enhancement algorithms that can be used.

Enumerator:
NoEnhancement 
StretchToMinimumMaximum 
StretchAndClipToMinimumMaximum 
ClipToMinimumMaximum 
UserDefinedEnhancement 

Definition at line 44 of file qgscontrastenhancement.h.


Constructor & Destructor Documentation


Member Function Documentation

Method to calculate the actual enhanceContrasted value(s)

int QgsContrastEnhancement::enhanceContrast ( double  theValue)

Apply the contrast enhancement to a value.

Public function to generate the enhanced for enhanceContrasted value for a given input.

Return values are 0 - 254, -1 means the pixel was clipped and should not be displayed

Parameters:
theValueThe pixel value to enhance

Definition at line 198 of file qgscontrastenhancement.cpp.

References QgsContrastEnhancementFunction::enhance(), generateLookupTable(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, mEnhancementDirty, mLookupTable, mLookupTableOffset, and NoEnhancement.

Referenced by QgsMultiBandColorRenderer::block(), and QgsSingleBandGrayRenderer::block().

Return true if pixel is in stretable range, false if pixel is outside of range (i.e., clipped)

Determine if a pixel is within in the displayable range.

Parameters:
theValueThe pixel value to examine

Definition at line 253 of file qgscontrastenhancement.cpp.

References QgsContrastEnhancementFunction::isValueInDisplayableRange(), and mContrastEnhancementFunction.

Referenced by QgsMultiBandColorRenderer::block(), and QgsSingleBandGrayRenderer::block().

double QgsContrastEnhancement::maximumValue ( ) const [inline]

Return the maximum value for the contrast enhancement range.

Definition at line 74 of file qgscontrastenhancement.h.

Referenced by QgsSingleBandGrayRenderer::legendSymbologyItems(), QgsSingleBandGrayRendererWidget::setFromRenderer(), and QgsMultiBandColorRendererWidget::setMinMaxValue().

double QgsContrastEnhancement::minimumValue ( ) const [inline]

Return the minimum value for the contrast enhancement range.

Definition at line 77 of file qgscontrastenhancement.h.

Referenced by QgsSingleBandGrayRenderer::legendSymbologyItems(), QgsSingleBandGrayRendererWidget::setFromRenderer(), and QgsMultiBandColorRendererWidget::setMinMaxValue().

void QgsContrastEnhancement::setContrastEnhancementAlgorithm ( ContrastEnhancementAlgorithm  theAlgorithm,
bool  generateTable = true 
)

Set the contrast enhancement algorithm.

The second parameter is optional and is for performace improvements. If you know you are immediately going to set the Minimum or Maximum value, you can elect to not generate the lookup tale. By default it will be generated.

Parameters:
theAlgorithmThe new contrast enhancement algorithm
generateTableFlag to overide automatic look up table generation

Definition at line 270 of file qgscontrastenhancement.cpp.

References ClipToMinimumMaximum, generateLookupTable(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, mEnhancementDirty, mMaximumValue, mMinimumValue, mRasterDataType, QgsDebugMsg, StretchAndClipToMinimumMaximum, StretchToMinimumMaximum, and UserDefinedEnhancement.

Referenced by QgsContrastEnhancement(), readXML(), QgsSingleBandGrayRendererWidget::renderer(), QgsRasterLayer::setContrastEnhancement(), and QgsMultiBandColorRendererWidget::setCustomMinMaxValues().

A public method that allows the user to set their own custom contrast enhancment function.

A public function that allows the user to set their own custom contrast enhancement function.

Parameters:
theFunctionThe new contrast enhancement function

Definition at line 310 of file qgscontrastenhancement.cpp.

References generateLookupTable(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, QgsDebugMsg, and UserDefinedEnhancement.

void QgsContrastEnhancement::setMaximumValue ( double  theValue,
bool  generateTable = true 
)

Set the maximum value for the contrast enhancement range.

Set the maximum value for the contrast enhancement.

The second parameter is option an is for performace improvements. If you know you are immediately going to set the Minimum value or the contrast enhancement algorithm, you can elect to not generate the lookup tale. By default it will be generated.

Parameters:
theValueThe new maximum value for the band
generateTableFlag to overide automatic look up table generation

Definition at line 328 of file qgscontrastenhancement.cpp.

References generateLookupTable(), maximumValuePossible(), mContrastEnhancementFunction, mEnhancementDirty, mMaximumValue, mRasterDataType, QgsDebugMsg, and QgsContrastEnhancementFunction::setMaximumValue().

Referenced by QgsSingleBandGrayRendererWidget::renderer(), QgsRasterLayer::setContrastEnhancement(), and QgsMultiBandColorRendererWidget::setCustomMinMaxValues().

void QgsContrastEnhancement::setMinimumValue ( double  theValue,
bool  generateTable = true 
)

Return the minimum value for the contrast enhancement range.

Set the maximum value for the contrast enhancement.

The second parameter is option an is for performace improvements. If you know you are immediately going to set the Maximum value or the contrast enhancement algorithm, you can elect to not generate the lookup tale. By default it will be generated.

Parameters:
theValueThe new minimum value for the band
generateTableFlag to overide automatic look up table generation

Definition at line 360 of file qgscontrastenhancement.cpp.

References generateLookupTable(), mContrastEnhancementFunction, mEnhancementDirty, minimumValuePossible(), mMinimumValue, mRasterDataType, QgsDebugMsg, and QgsContrastEnhancementFunction::setMinimumValue().

Referenced by QgsSingleBandGrayRendererWidget::renderer(), QgsRasterLayer::setContrastEnhancement(), and QgsMultiBandColorRendererWidget::setCustomMinMaxValues().


Member Data Documentation

Flag indicating if the lookup table needs to be regenerated.

Definition at line 120 of file qgscontrastenhancement.h.

Referenced by enhanceContrast(), generateLookupTable(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), setMaximumValue(), and setMinimumValue().

Pointer to the lookup table.

Definition at line 126 of file qgscontrastenhancement.h.

Referenced by enhanceContrast(), generateLookupTable(), QgsContrastEnhancement(), and ~QgsContrastEnhancement().

Scalar so that values can be used as array indicies.

Definition at line 123 of file qgscontrastenhancement.h.

Referenced by enhanceContrast(), generateLookupTable(), and QgsContrastEnhancement().

user defineable maximum value for the band, used for enhanceContrasting

Definition at line 132 of file qgscontrastenhancement.h.

Referenced by generateLookupTable(), QgsContrastEnhancement(), readXML(), setContrastEnhancementAlgorithm(), setMaximumValue(), and writeXML().

User defineable minimum value for the band, used for enhanceContrasting.

Definition at line 129 of file qgscontrastenhancement.h.

Referenced by generateLookupTable(), QgsContrastEnhancement(), readXML(), setContrastEnhancementAlgorithm(), setMinimumValue(), and writeXML().

Maximum range of values for a given data type.

Definition at line 138 of file qgscontrastenhancement.h.

Referenced by generateLookupTable(), and QgsContrastEnhancement().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines