Skip to content

Commit 3f83f1f

Browse files
author
ersts
committed
-Added extra debug statements
-Updated linear contrast enhancement functions -Fix for ticket #900 git-svn-id: http://svn.osgeo.org/qgis/trunk@7951 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent a6a4ba2 commit 3f83f1f

File tree

3 files changed

+32
-9
lines changed

3 files changed

+32
-9
lines changed

src/core/raster/qgscontrastenhancement.cpp

+25-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ class originally created circa 2004 by T.Sutton, Gary E.Sherman, Steve Halasz
1717
* (at your option) any later version. *
1818
* *
1919
***************************************************************************/
20-
20+
21+
#include "qgslogger.h"
22+
2123
#include "qgscontrastenhancement.h"
2224
#include "qgscontrastenhancementfunction.h"
2325
#include "qgslinearminmaxenhancement.h"
@@ -26,7 +28,9 @@ class originally created circa 2004 by T.Sutton, Gary E.Sherman, Steve Halasz
2628

2729
QgsContrastEnhancement::QgsContrastEnhancement(QgsRasterDataType theDataType)
2830
{
29-
31+
#ifdef QGISDEBUG
32+
QgsDebugMsg("QgsContrastEnhancement::QgsContrastEnhancement() called");
33+
#endif
3034
mLookupTable = 0;
3135
mContrastEnhancementFunction = 0;
3236
mEnhancementDirty = false;
@@ -166,6 +170,12 @@ bool QgsContrastEnhancement::generateLookupTable()
166170
if(QGS_Byte != mRasterDataType && QGS_UInt16 != mRasterDataType && QGS_Int16 != mRasterDataType) { return false; }
167171
if(!mLookupTable) { return false; }
168172

173+
#ifdef QGISDEBUG
174+
QgsDebugMsg("QgsContrastEnhancement::generateLookupTable() - building lookup table");
175+
QgsDebugMsg("***MinimumValue : "+ QString::number(mMinimumValue));
176+
QgsDebugMsg("***MaximumValue : "+ QString::number(mMaximumValue));
177+
QgsDebugMsg("***mLookupTableOffset : "+ QString::number(mLookupTableOffset));
178+
#endif
169179
for(int myIterator = 0; myIterator < mRasterDataTypeRange; myIterator++)
170180
{
171181
mLookupTable[myIterator] = mContrastEnhancementFunction->enhanceValue((double)myIterator - mLookupTableOffset);
@@ -198,6 +208,9 @@ bool QgsContrastEnhancement::isValueInDisplayableRange(double theValue)
198208
*/
199209
void QgsContrastEnhancement::setContrastEnhancementAlgorithm(CONTRAST_ENHANCEMENT_ALGORITHM theAlgorithm, bool generateTable)
200210
{
211+
#ifdef QGISDEBUG
212+
QgsDebugMsg("QgsContrastEnhancement::setContrastEnhancementAlgorithm() called algorithm: "+ QString::number((int)theAlgorithm) +" generate lookup table: "+ QString::number((int)generateTable));
213+
#endif
201214
if(theAlgorithm != mContrastEnhancementAlgorithm )
202215
{
203216
switch(theAlgorithm)
@@ -236,6 +249,9 @@ void QgsContrastEnhancement::setContrastEnhancementAlgorithm(CONTRAST_ENHANCEMEN
236249
*/
237250
void QgsContrastEnhancement::setContrastEnhancementFunction(QgsContrastEnhancementFunction* theFunction)
238251
{
252+
#ifdef QGISDEBUG
253+
QgsDebugMsg("QgsContrastEnhancement::setContrastEnhancementFunction() called");
254+
#endif
239255
if(0 != theFunction)
240256
{
241257
mContrastEnhancementFunction = theFunction;
@@ -252,6 +268,9 @@ void QgsContrastEnhancement::setContrastEnhancementFunction(QgsContrastEnhanceme
252268
*/
253269
void QgsContrastEnhancement::setMaximumValue(double theValue, bool generateTable)
254270
{
271+
#ifdef QGISDEBUG
272+
QgsDebugMsg("QgsContrastEnhancement::setMaximumValue() called value: "+ QString::number(theValue) +" generate lookup table: "+ QString::number((int)generateTable));
273+
#endif
255274
if(theValue > getMaximumPossibleValue(mRasterDataType))
256275
{
257276
mMaximumValue = getMaximumPossibleValue(mRasterDataType);
@@ -282,6 +301,9 @@ void QgsContrastEnhancement::setMaximumValue(double theValue, bool generateTable
282301
*/
283302
void QgsContrastEnhancement::setMinimumValue(double theValue, bool generateTable)
284303
{
304+
#ifdef QGISDEBUG
305+
QgsDebugMsg("QgsContrastEnhancement::setMinimumValue() called value: "+ QString::number(theValue) +" generate lookup table: "+ QString::number((int)generateTable));
306+
#endif
285307
if(theValue < getMinimumPossibleValue(mRasterDataType))
286308
{
287309
mMinimumValue = getMinimumPossibleValue(mRasterDataType);
@@ -318,7 +340,7 @@ int QgsContrastEnhancement::stretch(double theValue)
318340

319341
if(mLookupTable && NO_STRETCH != mContrastEnhancementAlgorithm)
320342
{
321-
return mLookupTable[static_cast <int>(theValue)];
343+
return mLookupTable[static_cast <int>(theValue + mLookupTableOffset)];
322344
}
323345
else
324346
{

src/core/raster/qgslinearminmaxenhancement.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ QgsLinearMinMaxEnhancement::QgsLinearMinMaxEnhancement(QgsContrastEnhancement::Q
2525
int QgsLinearMinMaxEnhancement::enhanceValue(double theValue)
2626
{
2727
int myStretchedValue = static_cast<int>(((theValue - mMinimumValue)/(mMinimumMaximumRange))*255.0);
28-
if(myStretchedValue < QgsContrastEnhancement::getMinimumPossibleValue(mQgsRasterDataType))
28+
if(myStretchedValue < 0)
2929
{
3030
return 0;
3131
}
32-
else if(myStretchedValue > QgsContrastEnhancement::getMaximumPossibleValue(mQgsRasterDataType))
32+
else if(myStretchedValue > 255)
3333
{
34-
return static_cast<int>(QgsContrastEnhancement::getMaximumPossibleValue(mQgsRasterDataType));
34+
return 255;
3535
}
3636

3737
return myStretchedValue;

src/core/raster/qgslinearminmaxenhancementwithclip.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ int QgsLinearMinMaxEnhancementWithClip::enhanceValue(double theValue)
3030
}
3131

3232
int myStretchedValue = static_cast<int>(((theValue - mMinimumValue)/(mMinimumMaximumRange))*255.0);
33-
if(myStretchedValue < QgsContrastEnhancement::getMinimumPossibleValue(mQgsRasterDataType))
33+
if(myStretchedValue < 0)
3434
{
3535
return 0;
3636
}
37-
else if(myStretchedValue > QgsContrastEnhancement::getMaximumPossibleValue(mQgsRasterDataType))
37+
else if(myStretchedValue > 255)
3838
{
39-
return static_cast<int>(QgsContrastEnhancement::getMaximumPossibleValue(mQgsRasterDataType));
39+
return 255;
4040
}
41+
4142
return myStretchedValue;
4243
}
4344

0 commit comments

Comments
 (0)