This repository has been archived on 2019-08-07. You can view files and clone it, but cannot push or open issues or pull requests.
copr-dani-qgis/qgis-1.7.0-histogram.patch

49 lines
2.1 KiB
Diff

diff --git a/src/core/raster/qgsrasterbandstats.h b/src/core/raster/qgsrasterbandstats.h
index 1d0c52e..25b5bb9 100644
--- a/src/core/raster/qgsrasterbandstats.h
+++ b/src/core/raster/qgsrasterbandstats.h
@@ -45,6 +45,7 @@ class CORE_EXPORT QgsRasterBandStats
stdDev = 0.0;
sum = 0.0;
elementCount = 0;
+ histogramVector = new HistogramVector();
isHistogramEstimated = false;
isHistogramOutOfRange = false;
}
diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp
index 32455e8..92c056c 100644
--- a/src/core/raster/qgsrasterlayer.cpp
+++ b/src/core/raster/qgsrasterlayer.cpp
@@ -2345,7 +2345,7 @@ void QgsRasterLayer::setDataProvider( QString const & provider,
myRasterBandStats.bandName = mDataProvider->generateBandName( i );
myRasterBandStats.bandNumber = i;
myRasterBandStats.statsGathered = false;
- myRasterBandStats.histogramVector = new QgsRasterBandStats::HistogramVector();
+ myRasterBandStats.histogramVector->clear();
//Store the default color table
//readColorTable( i, &myRasterBandStats.colorTable );
QList<QgsColorRampShader::ColorRampItem> ct;
diff --git a/src/providers/gdal/qgsgdalprovider.cpp b/src/providers/gdal/qgsgdalprovider.cpp
index 51fb786..57d1851 100644
--- a/src/providers/gdal/qgsgdalprovider.cpp
+++ b/src/providers/gdal/qgsgdalprovider.cpp
@@ -1320,8 +1320,16 @@ void QgsGdalProvider::populateHistogram( int theBandNo, QgsRasterBandStats & t
for ( int myBin = 0; myBin < theBinCount; myBin++ )
{
- theBandStats.histogramVector->push_back( myHistogramArray[myBin] );
- QgsDebugMsg( "Added " + QString::number( myHistogramArray[myBin] ) + " to histogram vector" );
+ if ( myHistogramArray[myBin] < 0 ) //can't have less than 0 pixels of any value
+ {
+ theBandStats.histogramVector->push_back( 0 );
+ QgsDebugMsg( "Added 0 to histogram vector as freq was negative!" );
+ }
+ else
+ {
+ theBandStats.histogramVector->push_back( myHistogramArray[myBin] );
+ QgsDebugMsg( "Added " + QString::number( myHistogramArray[myBin] ) + " to histogram vector" );
+ }
}
}