QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
raster
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 : ersts@amnh.org
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
19
#include "
qgscontrastenhancementfunction.h
"
20
21
#include "
qgscontrastenhancement.h
"
22
23
QgsContrastEnhancementFunction::QgsContrastEnhancementFunction
(
Qgis::DataType
dataType,
double
minimumValue
,
double
maximumValue
)
24
:
mMaximumValue
(
maximumValue
)
25
,
mMinimumValue
(
minimumValue
)
26
,
mMinimumMaximumRange
(
mMaximumValue
-
mMinimumValue
)
27
,
mQgsRasterDataType
( dataType )
28
,
mMaximumValuePossible
(
QgsContrastEnhancement
::maximumValuePossible(
mQgsRasterDataType
) )
29
,
mMinimumValuePossible
(
QgsContrastEnhancement
::minimumValuePossible(
mQgsRasterDataType
) )
30
{}
31
32
QgsContrastEnhancementFunction::QgsContrastEnhancementFunction
(
const
QgsContrastEnhancementFunction
&f )
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
int
QgsContrastEnhancementFunction::enhance
(
double
value )
42
{
43
if
(
mQgsRasterDataType
==
Qgis::DataType::Byte
)
44
{
45
return
static_cast<
int
>
( value );
46
}
47
else
48
{
49
return
static_cast<
int
>
( ( ( ( value -
mMinimumValuePossible
) / (
mMaximumValuePossible
-
mMinimumValuePossible
) ) * 255.0 ) );
50
}
51
}
52
53
bool
QgsContrastEnhancementFunction::isValueInDisplayableRange
(
double
value )
54
{
55
//A default check is to see if the provided value is with the range for the data type
56
// Write the test as ( v >= min && v <= max ) so that v = NaN returns false
57
return
value >=
mMinimumValuePossible
&& value <=
mMaximumValuePossible
;
58
}
59
60
void
QgsContrastEnhancementFunction::setMaximumValue
(
double
value )
61
{
62
if
(
mMaximumValuePossible
< value )
63
{
64
mMaximumValue
=
mMaximumValuePossible
;
65
}
66
else
67
{
68
mMaximumValue
= value;
69
}
70
71
mMinimumMaximumRange
=
mMaximumValue
-
mMinimumValue
;
72
}
73
74
void
QgsContrastEnhancementFunction::setMinimumValue
(
double
value )
75
{
76
if
(
mMinimumValuePossible
> value )
77
{
78
mMinimumValue
=
mMinimumValuePossible
;
79
}
80
else
81
{
82
mMinimumValue
= value;
83
}
84
85
mMinimumMaximumRange
=
mMaximumValue
-
mMinimumValue
;
86
}
Qgis::DataType
DataType
Raster data types.
Definition
qgis.h:413
Qgis::DataType::Byte
@ Byte
Eight bit unsigned integer (quint8).
Definition
qgis.h:415
QgsContrastEnhancementFunction::QgsContrastEnhancementFunction
QgsContrastEnhancementFunction(Qgis::DataType, double, double)
Definition
qgscontrastenhancementfunction.cpp:23
QgsContrastEnhancementFunction::mMaximumValue
double mMaximumValue
User defineable maximum value for the band, used for enhanceContrasting.
Definition
qgscontrastenhancementfunction.h:82
QgsContrastEnhancementFunction::mMinimumValuePossible
double mMinimumValuePossible
Definition
qgscontrastenhancementfunction.h:94
QgsContrastEnhancementFunction::mMaximumValuePossible
double mMaximumValuePossible
Definition
qgscontrastenhancementfunction.h:93
QgsContrastEnhancementFunction::minimumValue
double minimumValue() const
Returns the minimum value.
Definition
qgscontrastenhancementfunction.h:78
QgsContrastEnhancementFunction::mMinimumMaximumRange
double mMinimumMaximumRange
Minimum maximum range for the band, used for enhanceContrasting.
Definition
qgscontrastenhancementfunction.h:88
QgsContrastEnhancementFunction::setMinimumValue
void setMinimumValue(double value)
Sets the minimum value.
Definition
qgscontrastenhancementfunction.cpp:74
QgsContrastEnhancementFunction::maximumValue
double maximumValue() const
Returns the maximum value.
Definition
qgscontrastenhancementfunction.h:70
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:53
QgsContrastEnhancementFunction::mQgsRasterDataType
Qgis::DataType mQgsRasterDataType
Data type of the band.
Definition
qgscontrastenhancementfunction.h:91
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:41
QgsContrastEnhancementFunction::mMinimumValue
double mMinimumValue
User defineable minimum value for the band, used for enhanceContrasting.
Definition
qgscontrastenhancementfunction.h:85
QgsContrastEnhancementFunction::setMaximumValue
void setMaximumValue(double value)
Sets the maximum value.
Definition
qgscontrastenhancementfunction.cpp:60
QgsContrastEnhancement
Handles contrast enhancement and clipping.
Definition
qgscontrastenhancement.h:45
qgscontrastenhancement.h
qgscontrastenhancementfunction.h
Generated on
for QGIS API Documentation by
1.17.0