Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/raster/KernelFilter.java @ 813:79c1db3ca7cc
Added some more javadocs.
gnv-artifacts/trunk@897 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 09 Apr 2010 13:09:25 +0000 |
parents | d766fe2d917a |
children | f953c9a559d8 |
line wrap: on
line source
package de.intevation.gnv.raster; import org.apache.log4j.Logger; import org.w3c.dom.Element; /** * An implemenation of raster filters based on given kernels. * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> */ public class KernelFilter implements Filter { private static Logger log = Logger.getLogger(KernelFilter.class); /** * Implemens a factory which produces KernelFilters with Gauss kernels. */ public static class GaussFactory implements Filter.Factory { /** * Default sigma of Gauss kernel: {@value} */ public static final double DEFAULT_SIGMA = 1.0d; /** * Default radius of Gauss kernel: {@value} */ public static final int DEFAULT_RADIUS = 5; /** * Configured sigma. */ protected double sigma; /** * Configured radius. */ protected int radius; /** * Default constructor. */ public GaussFactory() { sigma = DEFAULT_SIGMA; radius = DEFAULT_RADIUS; } public void init(Element element) { String s = element.getAttribute("sigma"); String r = element.getAttribute("radius"); if ((s = s.trim()).length() > 0) { try { sigma = Math.abs(Double.parseDouble(s)); } catch (NumberFormatException nfe) { log.warn("gauss sigma '" + s + "' not a valid float value."); } } if ((r = r.trim()).length() > 0) { try { radius = Math.min(3, Math.abs(Integer.parseInt(r))); } catch (NumberFormatException nfe) { log.warn("gauss radius '" + r + "' not a valid integer value."); } } } public Filter create() { return new KernelFilter(Raster.Kernel.createGauss(sigma, radius)); } } // class GaussFactory /** * The kernel used by this filter. */ protected Raster.Kernel kernel; /** * Default constructor. */ public KernelFilter() { } /** * Constructor to create a filter with a given kernel. * @param kernel The kernel to be used. */ public KernelFilter(Raster.Kernel kernel) { this.kernel = kernel; } public Raster filter(Raster raster) { return raster.create(kernel); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :