newData = setEnhancedChannelData( newData, rasutil, redIndex, 0, channels.channelContrastEnhancements.get( "red" ) ); rasutil.precomputeContrastEnhancements( greenIndex, channels.channelContrastEnhancements.get( "green" ) ); newData = setEnhancedChannelData( newData, rasutil, greenIndex, 1, channels.channelContrastEnhancements.get( "green" ) ); rasutil.precomputeContrastEnhancements( blueIndex, channels.channelContrastEnhancements.get( "blue" ) ); newData = setEnhancedChannelData( newData, rasutil, blueIndex, 2, channels.channelContrastEnhancements.get( "blue" ) ); data.getDataInfo().interleaveType, false ); newData = setEnhancedChannelData( newData, rasutil, grayIndex, 0, channels.channelContrastEnhancements.get( "gray" ) );
/** * Performs contrast enhancement on all bands of a raster and returns the modified raster. * * @param raster * initial raster * @param contrastEnhancement * @return the enhanced raster */ private AbstractRaster performContrastEnhancement( AbstractRaster raster, ContrastEnhancement contrastEnhancement ) { if ( contrastEnhancement == null ) return raster; LOG.trace( "Enhancing contrast for overall raster..." ); RasterData data = raster.getAsSimpleRaster().getRasterData(), newData = data; RasterDataUtility rasutil = new RasterDataUtility( raster ); rasutil.setContrastEnhancement( contrastEnhancement ); rasutil.precomputeContrastEnhancements( -1, contrastEnhancement ); for ( int band = 0; band < data.getBands(); band++ ) newData = setEnhancedChannelData( newData, rasutil, band, band, contrastEnhancement ); AbstractRaster newRaster = new SimpleRaster( newData, raster.getEnvelope(), raster.getRasterReference(), null ); return newRaster; }