Quantum GIS API Documentation
1.7.4
|
Manipulates raster 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... | |
enum | QgsRasterDataType { QGS_Unknown = 0, QGS_Byte = 1, QGS_UInt16 = 2, QGS_Int16 = 3, QGS_UInt32 = 4, QGS_Int32 = 5, QGS_Float32 = 6, QGS_Float64 = 7, QGS_CInt16 = 8, QGS_CInt32 = 9, QGS_CFloat32 = 10, QGS_CFloat64 = 11, QGS_TypeCount = 12 } |
These are exactly the same as GDAL pixel data types This was added so that the python bindings could be built, which initially was a problem because GDALDataType was passed around as an argument to numerous method, including the constructor. More... | |
Public Member Functions | |
QgsContrastEnhancement (QgsContrastEnhancement::QgsRasterDataType theDatatype=QGS_Byte) | |
~QgsContrastEnhancement () | |
double | maximumValue () const |
Return the maximum value for the contrast enhancement range. | |
double | minimumValue () const |
Return the minimum value for the contrast enhancement range. | |
ContrastEnhancementAlgorithm | contrastEnhancementAlgorithm () |
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) | |
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. | |
Static Public Member Functions | |
static double | maximumValuePossible (QgsRasterDataType) |
Helper function that returns the maximum possible value for a GDAL data type. | |
static double | minimumValuePossible (QgsRasterDataType) |
Helper function that returns the minimum possible value for a GDAL data type. | |
Private Member Functions | |
bool | generateLookupTable () |
Method to generate a new lookup table. | |
int | calculateContrastEnhancementValue (double) |
Method to calculate the actual enhanceContrasted value(s) | |
Private Attributes | |
ContrastEnhancementAlgorithm | mContrastEnhancementAlgorithm |
Current contrast enhancement algorithm. | |
QgsContrastEnhancementFunction * | mContrastEnhancementFunction |
Pointer to the contrast enhancement function. | |
bool | mEnhancementDirty |
Flag indicating if the lookup table needs to be regenerated. | |
double | mLookupTableOffset |
Scalar so that values can be used as array indicies. | |
int * | mLookupTable |
Pointer to the lookup table. | |
double | mMinimumValue |
User defineable minimum value for the band, used for enhanceContrasting. | |
double | mMaximumValue |
user defineable maximum value for the band, used for enhanceContrasting | |
QgsRasterDataType | mRasterDataType |
Data type of the band. | |
double | mRasterDataTypeRange |
Maximum range of values for a given data type. |
Manipulates raster pixel values so that they enhanceContrast or clip into a specified numerical range according to the specified ContrastEnhancementAlgorithm.
Definition at line 33 of file qgscontrastenhancement.h.
This enumerator describes the types of contrast enhancement algorithms that can be used.
NoEnhancement | |
StretchToMinimumMaximum | |
StretchAndClipToMinimumMaximum | |
ClipToMinimumMaximum | |
UserDefinedEnhancement |
Definition at line 39 of file qgscontrastenhancement.h.
These are exactly the same as GDAL pixel data types This was added so that the python bindings could be built, which initially was a problem because GDALDataType was passed around as an argument to numerous method, including the constructor.
It seems like there should be a better way to do this...
Definition at line 55 of file qgscontrastenhancement.h.
QgsContrastEnhancement::QgsContrastEnhancement | ( | QgsContrastEnhancement::QgsRasterDataType | theDatatype = QGS_Byte | ) |
Definition at line 29 of file qgscontrastenhancement.cpp.
References maximumValuePossible(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, mEnhancementDirty, minimumValuePossible(), mLookupTable, mLookupTableOffset, mMaximumValue, mMinimumValue, mRasterDataType, mRasterDataTypeRange, and NoEnhancement.
Definition at line 53 of file qgscontrastenhancement.cpp.
int QgsContrastEnhancement::calculateContrastEnhancementValue | ( | double | ) | [private] |
Method to calculate the actual enhanceContrasted value(s)
Definition at line 97 of file qgscontrastenhancement.h.
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
theValue | The pixel value to enhance |
Definition at line 169 of file qgscontrastenhancement.cpp.
References QgsContrastEnhancementFunction::enhance(), generateLookupTable(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, mEnhancementDirty, mLookupTable, mLookupTableOffset, and NoEnhancement.
Referenced by QgsRasterLayer::drawMultiBandColor(), and QgsRasterLayer::drawSingleBandGray().
bool QgsContrastEnhancement::generateLookupTable | ( | ) | [private] |
Method to generate a new lookup table.
Generate a new lookup table.
Definition at line 192 of file qgscontrastenhancement.cpp.
References QgsContrastEnhancementFunction::enhance(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, mEnhancementDirty, mLookupTable, mLookupTableOffset, mMaximumValue, mMinimumValue, mRasterDataType, mRasterDataTypeRange, NoEnhancement, QGS_Byte, QGS_Int16, QGS_UInt16, and QgsDebugMsg.
Referenced by enhanceContrast(), setContrastEnhancementAlgorithm(), setContrastEnhancementFunction(), setMaximumValue(), and setMinimumValue().
bool QgsContrastEnhancement::isValueInDisplayableRange | ( | double | theValue | ) |
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.
theValue | The pixel value to examine |
Definition at line 220 of file qgscontrastenhancement.cpp.
References QgsContrastEnhancementFunction::isValueInDisplayableRange(), and mContrastEnhancementFunction.
Referenced by QgsRasterLayer::drawMultiBandColor(), and QgsRasterLayer::drawSingleBandGray().
double QgsContrastEnhancement::maximumValue | ( | ) | const [inline] |
Return the maximum value for the contrast enhancement range.
Definition at line 92 of file qgscontrastenhancement.h.
double QgsContrastEnhancement::maximumValuePossible | ( | QgsRasterDataType | theDataType | ) | [static] |
Helper function that returns the maximum possible value for a GDAL data type.
Simple function to compute the maximum possible value for a data types.
Definition at line 65 of file qgscontrastenhancement.cpp.
References MathUtils::max(), QGS_Byte, QGS_CFloat32, QGS_CFloat64, QGS_CInt16, QGS_CInt32, QGS_Float32, QGS_Float64, QGS_Int16, QGS_Int32, QGS_TypeCount, QGS_UInt16, QGS_UInt32, and QGS_Unknown.
Referenced by QgsClipToMinMaxEnhancement::enhance(), QgsContrastEnhancementFunction::enhance(), QgsContrastEnhancementFunction::isValueInDisplayableRange(), QgsContrastEnhancement(), QgsContrastEnhancementFunction::setMaximumValue(), and setMaximumValue().
double QgsContrastEnhancement::minimumValue | ( | ) | const [inline] |
Return the minimum value for the contrast enhancement range.
Definition at line 95 of file qgscontrastenhancement.h.
double QgsContrastEnhancement::minimumValuePossible | ( | QgsRasterDataType | theDataType | ) | [static] |
Helper function that returns the minimum possible value for a GDAL data type.
Simple function to compute the minimum possible value for a data type.
Definition at line 113 of file qgscontrastenhancement.cpp.
References MathUtils::max(), MathUtils::min(), QGS_Byte, QGS_CFloat32, QGS_CFloat64, QGS_CInt16, QGS_CInt32, QGS_Float32, QGS_Float64, QGS_Int16, QGS_Int32, QGS_TypeCount, QGS_UInt16, QGS_UInt32, and QGS_Unknown.
Referenced by QgsClipToMinMaxEnhancement::enhance(), QgsContrastEnhancementFunction::enhance(), QgsContrastEnhancementFunction::isValueInDisplayableRange(), QgsContrastEnhancement(), QgsContrastEnhancementFunction::setMinimumValue(), and setMinimumValue().
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.
theAlgorithm | The new contrast enhancement algorithm |
generateTable | Flag to overide automatic look up table generation |
Definition at line 237 of file qgscontrastenhancement.cpp.
References ClipToMinimumMaximum, generateLookupTable(), mContrastEnhancementAlgorithm, mContrastEnhancementFunction, mEnhancementDirty, mMaximumValue, mMinimumValue, mRasterDataType, QgsDebugMsg, StretchAndClipToMinimumMaximum, StretchToMinimumMaximum, and UserDefinedEnhancement.
void QgsContrastEnhancement::setContrastEnhancementFunction | ( | QgsContrastEnhancementFunction * | theFunction | ) |
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.
theFunction | The new contrast enhancement function |
Definition at line 277 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.
theValue | The new maximum value for the band |
generateTable | Flag to overide automatic look up table generation |
Definition at line 295 of file qgscontrastenhancement.cpp.
References generateLookupTable(), maximumValuePossible(), mContrastEnhancementFunction, mEnhancementDirty, mMaximumValue, mRasterDataType, QgsDebugMsg, and QgsContrastEnhancementFunction::setMaximumValue().
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.
theValue | The new minimum value for the band |
generateTable | Flag to overide automatic look up table generation |
Definition at line 327 of file qgscontrastenhancement.cpp.
References generateLookupTable(), mContrastEnhancementFunction, mEnhancementDirty, minimumValuePossible(), mMinimumValue, mRasterDataType, QgsDebugMsg, and QgsContrastEnhancementFunction::setMinimumValue().
Current contrast enhancement algorithm.
Definition at line 124 of file qgscontrastenhancement.h.
Referenced by enhanceContrast(), generateLookupTable(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), and setContrastEnhancementFunction().
Pointer to the contrast enhancement function.
Definition at line 127 of file qgscontrastenhancement.h.
Referenced by enhanceContrast(), generateLookupTable(), isValueInDisplayableRange(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), setContrastEnhancementFunction(), setMaximumValue(), and setMinimumValue().
bool QgsContrastEnhancement::mEnhancementDirty [private] |
Flag indicating if the lookup table needs to be regenerated.
Definition at line 130 of file qgscontrastenhancement.h.
Referenced by enhanceContrast(), generateLookupTable(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), setMaximumValue(), and setMinimumValue().
int* QgsContrastEnhancement::mLookupTable [private] |
Pointer to the lookup table.
Definition at line 136 of file qgscontrastenhancement.h.
Referenced by enhanceContrast(), generateLookupTable(), and QgsContrastEnhancement().
double QgsContrastEnhancement::mLookupTableOffset [private] |
Scalar so that values can be used as array indicies.
Definition at line 133 of file qgscontrastenhancement.h.
Referenced by enhanceContrast(), generateLookupTable(), and QgsContrastEnhancement().
double QgsContrastEnhancement::mMaximumValue [private] |
user defineable maximum value for the band, used for enhanceContrasting
Definition at line 142 of file qgscontrastenhancement.h.
Referenced by generateLookupTable(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), and setMaximumValue().
double QgsContrastEnhancement::mMinimumValue [private] |
User defineable minimum value for the band, used for enhanceContrasting.
Definition at line 139 of file qgscontrastenhancement.h.
Referenced by generateLookupTable(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), and setMinimumValue().
Data type of the band.
Definition at line 145 of file qgscontrastenhancement.h.
Referenced by generateLookupTable(), QgsContrastEnhancement(), setContrastEnhancementAlgorithm(), setMaximumValue(), and setMinimumValue().
double QgsContrastEnhancement::mRasterDataTypeRange [private] |
Maximum range of values for a given data type.
Definition at line 148 of file qgscontrastenhancement.h.
Referenced by generateLookupTable(), and QgsContrastEnhancement().