QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
Public Types | Public Member Functions | Static Public Member Functions | List of all members
QgsContrastEnhancement Class Reference

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

#include <qgscontrastenhancement.h>

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 (const QgsContrastEnhancement &ce)
 
 QgsContrastEnhancement (Qgis::DataType datatype=Qgis::DataType::Byte)
 Constructor for QgsContrastEnhancement, for the specified data type. More...
 
 ~QgsContrastEnhancement ()
 
ContrastEnhancementAlgorithm contrastEnhancementAlgorithm () const
 
int enhanceContrast (double value)
 Applies the contrast enhancement to a value. More...
 
bool isValueInDisplayableRange (double value)
 Returns true if a pixel value is in displayable range, false if pixel is outside of range (i.e. More...
 
double maximumValue () const
 Returns the maximum value for the contrast enhancement range. More...
 
double minimumValue () const
 Returns the minimum value for the contrast enhancement range. More...
 
const QgsContrastEnhancementoperator= (const QgsContrastEnhancement &)=delete
 
void readXml (const QDomElement &elem)
 
void setContrastEnhancementAlgorithm (ContrastEnhancementAlgorithm algorithm, bool generateTable=true)
 Sets the contrast enhancement algorithm. More...
 
void setContrastEnhancementFunction (QgsContrastEnhancementFunction *function)
 Allows the user to set their own custom contrast enhancement function. More...
 
void setMaximumValue (double value, bool generateTable=true)
 Sets the maximum value for the contrast enhancement range. More...
 
void setMinimumValue (double value, bool generateTable=true)
 Sets the minimum value for the contrast enhancement range. More...
 
void toSld (QDomDocument &doc, QDomElement &element) const
 Write ContrastEnhancement tags following SLD v1.0 specs SLD1.0 is limited to the parameters listed in: https://docs.geoserver.org/stable/en/user/styling/sld/reference/rastersymbolizer.html#contrastenhancement Btw only sld:Normalize + vendor options are supported because there is no clear mapping of ContrastEnhancement parameters to support sld:Histogram or sld:GammaValue. More...
 
void writeXml (QDomDocument &doc, QDomElement &parentElem) const
 

Static Public Member Functions

static ContrastEnhancementAlgorithm contrastEnhancementAlgorithmFromString (const QString &contrastEnhancementString)
 Deserialize ContrastEnhancementAlgorithm. More...
 
static QString contrastEnhancementAlgorithmString (ContrastEnhancementAlgorithm algorithm)
 Returns a string to serialize ContrastEnhancementAlgorithm. More...
 
static double maximumValuePossible (Qgis::DataType dataType)
 Helper function that returns the maximum possible value for a data type. More...
 
static double minimumValuePossible (Qgis::DataType dataType)
 Helper function that returns the minimum possible value for a data type. More...
 

Detailed Description

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

Definition at line 42 of file qgscontrastenhancement.h.

Member Enumeration Documentation

◆ ContrastEnhancementAlgorithm

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

Enumerator
NoEnhancement 

Default color scaling algorithm, no scaling is applied.

StretchToMinimumMaximum 

Linear histogram.

StretchAndClipToMinimumMaximum 
ClipToMinimumMaximum 
UserDefinedEnhancement 

Definition at line 48 of file qgscontrastenhancement.h.

Constructor & Destructor Documentation

◆ QgsContrastEnhancement() [1/2]

QgsContrastEnhancement::QgsContrastEnhancement ( Qgis::DataType  datatype = Qgis::DataType::Byte)

Constructor for QgsContrastEnhancement, for the specified data type.

Definition at line 32 of file qgscontrastenhancement.cpp.

◆ QgsContrastEnhancement() [2/2]

QgsContrastEnhancement::QgsContrastEnhancement ( const QgsContrastEnhancement ce)

Definition at line 48 of file qgscontrastenhancement.cpp.

◆ ~QgsContrastEnhancement()

QgsContrastEnhancement::~QgsContrastEnhancement ( )

Definition at line 67 of file qgscontrastenhancement.cpp.

Member Function Documentation

◆ contrastEnhancementAlgorithm()

ContrastEnhancementAlgorithm QgsContrastEnhancement::contrastEnhancementAlgorithm ( ) const
inline

Definition at line 164 of file qgscontrastenhancement.h.

◆ contrastEnhancementAlgorithmFromString()

QgsContrastEnhancement::ContrastEnhancementAlgorithm QgsContrastEnhancement::contrastEnhancementAlgorithmFromString ( const QString &  contrastEnhancementString)
static

Deserialize ContrastEnhancementAlgorithm.

Definition at line 382 of file qgscontrastenhancement.cpp.

◆ contrastEnhancementAlgorithmString()

QString QgsContrastEnhancement::contrastEnhancementAlgorithmString ( ContrastEnhancementAlgorithm  algorithm)
static

Returns a string to serialize ContrastEnhancementAlgorithm.

Definition at line 364 of file qgscontrastenhancement.cpp.

◆ enhanceContrast()

int QgsContrastEnhancement::enhanceContrast ( double  value)

Applies the contrast enhancement to a value.

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

Definition at line 72 of file qgscontrastenhancement.cpp.

◆ isValueInDisplayableRange()

bool QgsContrastEnhancement::isValueInDisplayableRange ( double  value)

Returns true if a pixel value is in displayable range, false if pixel is outside of range (i.e.

clipped).

Definition at line 143 of file qgscontrastenhancement.cpp.

◆ maximumValue()

double QgsContrastEnhancement::maximumValue ( ) const
inline

Returns the maximum value for the contrast enhancement range.

Definition at line 159 of file qgscontrastenhancement.h.

◆ maximumValuePossible()

static double QgsContrastEnhancement::maximumValuePossible ( Qgis::DataType  dataType)
inlinestatic

Helper function that returns the maximum possible value for a data type.

Definition at line 69 of file qgscontrastenhancement.h.

◆ minimumValue()

double QgsContrastEnhancement::minimumValue ( ) const
inline

Returns the minimum value for the contrast enhancement range.

Definition at line 162 of file qgscontrastenhancement.h.

◆ minimumValuePossible()

static double QgsContrastEnhancement::minimumValuePossible ( Qgis::DataType  dataType)
inlinestatic

Helper function that returns the minimum possible value for a data type.

Definition at line 110 of file qgscontrastenhancement.h.

◆ operator=()

const QgsContrastEnhancement& QgsContrastEnhancement::operator= ( const QgsContrastEnhancement )
delete

◆ readXml()

void QgsContrastEnhancement::readXml ( const QDomElement &  elem)

Definition at line 268 of file qgscontrastenhancement.cpp.

◆ setContrastEnhancementAlgorithm()

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

Sets the contrast enhancement algorithm.

The generateTable parameter is optional and is for performance 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.

Definition at line 153 of file qgscontrastenhancement.cpp.

◆ setContrastEnhancementFunction()

void QgsContrastEnhancement::setContrastEnhancementFunction ( QgsContrastEnhancementFunction function)

Allows the user to set their own custom contrast enhancement function.

Ownership of function is transferred.

Definition at line 183 of file qgscontrastenhancement.cpp.

◆ setMaximumValue()

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

Sets the maximum value for the contrast enhancement range.

The generateTable parameter is optional and is for performance 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 table. By default it will be generated.

See also
setMinimumValue()

Definition at line 195 of file qgscontrastenhancement.cpp.

◆ setMinimumValue()

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

Sets the minimum value for the contrast enhancement range.

The generateTable parameter is optional and is for performance 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 table. By default it will be generated.

See also
setMaximumValue()

Definition at line 221 of file qgscontrastenhancement.cpp.

◆ toSld()

void QgsContrastEnhancement::toSld ( QDomDocument &  doc,
QDomElement &  element 
) const

Write ContrastEnhancement tags following SLD v1.0 specs SLD1.0 is limited to the parameters listed in: https://docs.geoserver.org/stable/en/user/styling/sld/reference/rastersymbolizer.html#contrastenhancement Btw only sld:Normalize + vendor options are supported because there is no clear mapping of ContrastEnhancement parameters to support sld:Histogram or sld:GammaValue.

Since
QGIS 3.6

Definition at line 315 of file qgscontrastenhancement.cpp.

◆ writeXml()

void QgsContrastEnhancement::writeXml ( QDomDocument &  doc,
QDomElement &  parentElem 
) const

Definition at line 247 of file qgscontrastenhancement.cpp.


The documentation for this class was generated from the following files: