Revision 2438 org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/convolution/ConvolutionDoubleFilter.java

View differences:

ConvolutionDoubleFilter.java
22 22
package org.gvsig.raster.impl.grid.filter.convolution;
23 23

  
24 24
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
25
import org.gvsig.fmap.dal.coverage.exception.FilterAddException;
25 26
import org.gvsig.raster.impl.DefaultRasterManager;
26 27
import org.gvsig.raster.impl.buffer.RasterBuffer;
27 28
import org.gvsig.raster.impl.datastruct.Kernel;
......
34 35

  
35 36
public class ConvolutionDoubleFilter extends ConvolutionFilter {
36 37

  
37
	public ConvolutionDoubleFilter(){
38
	public ConvolutionDoubleFilter() {
38 39
		super();
39 40
	}
40 41
	/** 
41 42
	 * @param Kernel a aplicar. En caso de que no se trate de un kernel definido en ConvolutionFilter, se puede pasar como 
42 43
	 * parametro el kernel se pretende aplicar.
43 44
	 * **/
44
	public ConvolutionDoubleFilter(Kernel k){
45
	public ConvolutionDoubleFilter(Kernel k) {
45 46
		super();
46
		super.kernel=k;
47
		super.kernel = k;
47 48
	}
48 49
	
49 50
	
50
	public void pre(){
51
	public void pre() throws FilterAddException {
51 52
		super.pre();
52 53
		rasterResult = DefaultRasterManager.getInstance().createBuffer(Buffer.TYPE_DOUBLE, raster.getWidth(), raster.getHeight(), raster.getBandCount(), true);
53 54
	}
......
58 59
		
59 60
		int lado= kernel.getLado();
60 61
		int semiLado = (lado - 1) >> 1;
61
		double ventana[][]= new double[lado][lado];
62
		double ventana[][] = new double[lado][lado];
62 63
		double resultConvolution=0;
63
		for (int band = 0; band < raster.getBandCount(); band++) {	
64
		for (int band = 0; band < numberOfBandsToProcess(); band++) {	
64 65
			if ((col - semiLado >= 0) && (line - semiLado >= 0) && (col + semiLado < width) && (line + semiLado < height)){
65 66
				for (int j = -semiLado; j <= semiLado; j++)
66 67
					for (int i = -semiLado; i <= semiLado; i++)
......
88 89
	public int getOutRasterDataType() {
89 90
		return RasterBuffer.TYPE_DOUBLE;
90 91
	}
91

  
92
	/**
93
	 * @return  buffer resultante tras aplicar el filtro
94
	 * */
95
	public Object getResult(String name) {
96
		if (name.equals("raster"))
97
			return this.rasterResult;
98
		return null;
99
	}
100 92
	
101 93
}

Also available in: Unified diff