Revision 2308 org.gvsig.raster/branches/org.gvsig.raster_dataaccess_refactoring/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/grid/filter/correction/MedianByteFilter.java
MedianByteFilter.java | ||
---|---|---|
24 | 24 |
import java.util.Arrays; |
25 | 25 |
|
26 | 26 |
import org.gvsig.fmap.dal.coverage.dataset.Buffer; |
27 |
import org.gvsig.fmap.dal.coverage.exception.FilterAddException; |
|
27 | 28 |
import org.gvsig.raster.impl.DefaultRasterManager; |
28 | 29 |
import org.gvsig.raster.impl.buffer.RasterBuffer; |
29 | 30 |
/** |
... | ... | |
39 | 40 |
super(); |
40 | 41 |
} |
41 | 42 |
|
42 |
/* |
|
43 |
* (non-Javadoc) |
|
44 |
* @see org.gvsig.raster.grid.filter.correction.MedianFilter#pre() |
|
45 |
*/ |
|
46 |
public void pre() { |
|
43 |
public void pre() throws FilterAddException { |
|
47 | 44 |
super.pre(); |
48 | 45 |
window = new int[sizeWindow]; |
49 | 46 |
rasterResult = DefaultRasterManager.getInstance().createBuffer(Buffer.TYPE_BYTE, raster.getWidth(), raster.getHeight(), raster.getBandCount(), true); |
50 | 47 |
} |
51 | 48 |
|
52 |
/* |
|
53 |
* (non-Javadoc) |
|
54 |
* @see org.gvsig.raster.grid.filter.correction.MedianFilter#process(int, int) |
|
55 |
*/ |
|
56 | 49 |
public void process(int col, int line) { |
57 | 50 |
// Obtener el vector con la ventanas de muestras |
58 |
for (int band = 0; band < raster.getBandCount(); band++) {
|
|
51 |
for (int band = 0; band < numberOfBandsToProcess(); band++) {
|
|
59 | 52 |
int k = 0; |
60 | 53 |
for (int i = -halfSide; i <= halfSide; i++) |
61 | 54 |
for (int j = -halfSide; j <= halfSide; j++) { |
... | ... | |
70 | 63 |
// Extraer los elementos centrales y asignarselos al pixel (x,y) |
71 | 64 |
rasterResult.setElem(line, col, band, (byte) window[k >> 1]); |
72 | 65 |
} |
66 |
|
|
67 |
writeAlphaBand(line, col); |
|
73 | 68 |
} |
74 | 69 |
|
75 |
/* |
|
76 |
* (non-Javadoc) |
|
77 |
* @see org.gvsig.raster.grid.filter.correction.MedianFilter#getInRasterDataType() |
|
78 |
*/ |
|
79 | 70 |
public int getInRasterDataType() { |
80 | 71 |
return RasterBuffer.TYPE_BYTE; |
81 | 72 |
} |
82 | 73 |
|
83 |
/* |
|
84 |
* (non-Javadoc) |
|
85 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getOutRasterDataType() |
|
86 |
*/ |
|
87 | 74 |
public int getOutRasterDataType() { |
88 | 75 |
return RasterBuffer.TYPE_BYTE; |
89 | 76 |
} |
Also available in: Unified diff