QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgscontrastenhancementfunction.cpp
Go to the documentation of this file.
1 /* **************************************************************************
2  qgscontrastenhancementfunction.cpp - description
3  -------------------
4 begin : Fri Nov 16 2007
5 copyright : (C) 2007 by Peter J. Ersts
6 email : [email protected]
7 
8 ****************************************************************************/
9 
10 /* **************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
20 #include "qgscontrastenhancement.h"
21 
22 QgsContrastEnhancementFunction::QgsContrastEnhancementFunction( Qgis::DataType dataType, double minimumValue, double maximumValue )
23  : mMaximumValue( maximumValue )
24  , mMinimumValue( minimumValue )
25  , mMinimumMaximumRange( mMaximumValue - mMinimumValue )
26  , mQgsRasterDataType( dataType )
27  , mMaximumValuePossible( QgsContrastEnhancement::maximumValuePossible( mQgsRasterDataType ) )
28  , mMinimumValuePossible( QgsContrastEnhancement::minimumValuePossible( mQgsRasterDataType ) )
29 {
30 }
31 
33  : mMaximumValue( f.mMaximumValue )
34  , mMinimumValue( f.mMinimumValue )
35  , mMinimumMaximumRange( f.mMinimumMaximumRange )
36  , mQgsRasterDataType( f.mQgsRasterDataType )
37  , mMaximumValuePossible( f.mMaximumValuePossible )
38  , mMinimumValuePossible( f.mMinimumValuePossible )
39 {
40 }
41 
43 {
45  {
46  return static_cast<int>( value );
47  }
48  else
49  {
50  return static_cast<int>( ( ( ( value - mMinimumValuePossible ) / ( mMaximumValuePossible - mMinimumValuePossible ) ) * 255.0 ) );
51  }
52 }
53 
55 {
56  //A default check is to see if the provided value is with the range for the data type
57  // Write the test as ( v >= min && v <= max ) so that v = NaN returns false
58  return value >= mMinimumValuePossible && value <= mMaximumValuePossible;
59 }
60 
62 {
63  if ( mMaximumValuePossible < value )
64  {
66  }
67  else
68  {
69  mMaximumValue = value;
70  }
71 
73 }
74 
76 {
77 
78  if ( mMinimumValuePossible > value )
79  {
81  }
82  else
83  {
84  mMinimumValue = value;
85  }
86 
88 }
Qgis::DataType
DataType
Raster data types.
Definition: qgis.h:102
qgscontrastenhancement.h
QgsContrastEnhancementFunction::isValueInDisplayableRange
virtual bool isValueInDisplayableRange(double value)
A customizable method to indicate if a pixel's value is within the displayable range.
Definition: qgscontrastenhancementfunction.cpp:54
QgsContrastEnhancementFunction::enhance
virtual int enhance(double value)
A customizable method that takes in a double value and returns a int between 0 and 255.
Definition: qgscontrastenhancementfunction.cpp:42
QgsContrastEnhancementFunction::mMinimumValuePossible
double mMinimumValuePossible
Definition: qgscontrastenhancementfunction.h:95
QgsContrastEnhancementFunction
A contrast enhancement function is the base class for all raster contrast enhancements.
Definition: qgscontrastenhancementfunction.h:33
qgscontrastenhancementfunction.h
QgsContrastEnhancementFunction::QgsContrastEnhancementFunction
QgsContrastEnhancementFunction(Qgis::DataType, double, double)
Definition: qgscontrastenhancementfunction.cpp:22
QgsContrastEnhancement
Manipulates raster pixel values so that they enhanceContrast or clip into a specified numerical range...
Definition: qgscontrastenhancement.h:43
QgsContrastEnhancementFunction::mQgsRasterDataType
Qgis::DataType mQgsRasterDataType
Data type of the band.
Definition: qgscontrastenhancementfunction.h:92
QgsContrastEnhancementFunction::mMaximumValuePossible
double mMaximumValuePossible
Definition: qgscontrastenhancementfunction.h:94
QgsContrastEnhancementFunction::setMaximumValue
void setMaximumValue(double value)
Sets the maximum value.
Definition: qgscontrastenhancementfunction.cpp:61
QgsContrastEnhancementFunction::mMaximumValue
double mMaximumValue
User defineable maximum value for the band, used for enhanceContrasting.
Definition: qgscontrastenhancementfunction.h:83
QgsContrastEnhancementFunction::mMinimumValue
double mMinimumValue
User defineable minimum value for the band, used for enhanceContrasting.
Definition: qgscontrastenhancementfunction.h:86
QgsContrastEnhancementFunction::setMinimumValue
void setMinimumValue(double value)
Sets the minimum value.
Definition: qgscontrastenhancementfunction.cpp:75
QgsContrastEnhancementFunction::mMinimumMaximumRange
double mMinimumMaximumRange
Minimum maximum range for the band, used for enhanceContrasting.
Definition: qgscontrastenhancementfunction.h:89
Qgis::Byte
@ Byte
Eight bit unsigned integer (quint8)
Definition: qgis.h:104