Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/raster/KernelFilter.java @ 780:c4156275c1e1
Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
gnv-artifacts/trunk@857 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 29 Mar 2010 09:35:44 +0000 |
parents | b1f5f2a8840f |
children | 6cff63d0c434 |
line wrap: on
line source
package de.intevation.gnv.raster; import org.apache.log4j.Logger; import org.w3c.dom.Element; /** * @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); public static class GaussFactory implements Filter.Factory { public static final double DEFAULT_SIGMA = 1.0d; public static final int DEFAULT_RADIUS = 5; protected double sigma; protected int radius; 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 protected Raster.Kernel kernel; public KernelFilter() { } 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: