/* * GeoTools - OpenSource mapping toolkit * http://geotools.org * (C) 2002-2006, GeoTools Project Managment Committee (PMC) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.styling; import org.opengis.filter.expression.Expression; /** * The ContrastEnhancement object defines contrast enhancement for a channel of * a false-color image or for a color image. Its format is: *
* <xs:element name="ContrastEnhancement"> * <xs:complexType> * <xs:sequence> * <xs:choice minOccurs="0"> * <xs:element ref="sld:Normalize"/> * <xs:element ref="sld:Histogram"/> * </xs:choice> * <xs:element ref="sld:GammaValue" minOccurs="0"/> * </xs:sequence> * </xs:complexType> * </xs:element> * <xs:element name="Normalize"> * <xs:complexType/> * </xs:element> * <xs:element name="Histogram"> * <xs:complexType/> * </xs:element> * <xs:element name="GammaValue" type="xs:double"/> ** In the case of a color image, the relative grayscale brightness of a pixel * color is used. ?Normalize? means to stretch the contrast so that the * dimmest color is stretched to black and the brightest color is stretched to * white, with all colors in between stretched out linearly. ?Histogram? means * to stretch the contrast based on a histogram of how many colors are at each * brightness level on input, with the goal of producing equal number of * pixels in the image at each brightness level on output. This has the * effect of revealing many subtle ground features. A ?GammaValue? tells how * much to brighten (value greater than 1.0) or dim (value less than 1.0) an * image. The default GammaValue is 1.0 (no change). If none of Normalize, * Histogram, or GammaValue are selected in a ContrastEnhancement, then no * enhancement is performed. * * @author iant * @source $URL$ */ public interface ContrastEnhancement { public void setType(Expression type); public Expression getType(); public void setGammaValue(Expression gamma); public Expression getGammaValue(); public void setNormalize(); public void setHistogram(); public void setLogarithmic(); public void setExponential(); public void accept(StyleVisitor visitor); }