Revision 11714 trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/LinearEnhancementFilter.java
LinearEnhancementFilter.java | ||
---|---|---|
24 | 24 |
import org.gvsig.raster.dataset.properties.DatasetListStatistics; |
25 | 25 |
import org.gvsig.raster.grid.filter.RasterFilter; |
26 | 26 |
|
27 |
|
|
28 | 27 |
/** |
29 | 28 |
* Clase base para los filtros de realzado lineal. Lee el m?nimo y m?xmo de la clase |
30 | 29 |
* Statistic que ser?n calculados por PercentTailTrimFilter o ComputeMinMaxFilter dependiendo |
... | ... | |
34 | 33 |
* removeExtrema est? a true. |
35 | 34 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
36 | 35 |
*/ |
37 |
public abstract class LinearEnhancementFilter extends RasterFilter {
|
|
36 |
public class LinearEnhancementFilter extends RasterFilter { |
|
38 | 37 |
public static String genericName = "enhanced"; |
39 | 38 |
|
40 | 39 |
protected double[] scale = new double[3]; |
... | ... | |
68 | 67 |
stats = (DatasetListStatistics) params.get("stats"); |
69 | 68 |
removeEnds = ((Boolean) params.get("remove")).booleanValue(); |
70 | 69 |
tailTrim = ((Double) params.get("tailTrim")).doubleValue(); |
71 |
renderBands = (int[])params.get("renderBands"); |
|
72 | 70 |
height = raster.getHeight(); |
73 | 71 |
width = raster.getWidth(); |
74 | 72 |
|
75 |
if(tailTrim != 0) { //Max y Min con recorte de colas
|
|
73 |
if(tailTrim != 0){ //Max y Min con recorte de colas |
|
76 | 74 |
double[][] tailTrimByBand = (double[][])stats.getTailTrimValue(tailTrim); |
77 | 75 |
scale = new double[tailTrimByBand.length]; |
78 | 76 |
offset = new double[tailTrimByBand.length]; |
79 | 77 |
minBandValue = new double[tailTrimByBand.length]; |
80 | 78 |
maxBandValue = new double[tailTrimByBand.length]; |
81 |
for(int i = 0; i < tailTrimByBand.length; i++) {
|
|
79 |
for(int i = 0; i < tailTrimByBand.length; i++){ |
|
82 | 80 |
minBandValue[i] = tailTrimByBand[i][0]; |
83 | 81 |
maxBandValue[i] = tailTrimByBand[i][1]; |
84 | 82 |
} |
85 |
} else {
|
|
83 |
}else{
|
|
86 | 84 |
scale = new double[stats.getMin().length]; |
87 | 85 |
offset = new double[stats.getMin().length]; |
88 | 86 |
if (removeEnds) { //Si est? activado eliminar extremos gastamos el 2? m?ximo/m?nimo |
... | ... | |
96 | 94 |
|
97 | 95 |
for (int i = 0; i < minBandValue.length; i++) { |
98 | 96 |
scale[i] = 255D / (maxBandValue[i] - minBandValue[i]); |
99 |
offset[i] = (255D * minBandValue[i]) / (minBandValue[i] - maxBandValue[i]); |
|
97 |
offset[i] = (255D * minBandValue[i]) / (minBandValue[i] - |
|
98 |
maxBandValue[i]); |
|
100 | 99 |
} |
101 | 100 |
|
102 | 101 |
nbands = stats.getBandCount(); |
... | ... | |
155 | 154 |
* @see org.gvsig.raster.grid.filter.IRasterFilter#getUIParams() |
156 | 155 |
*/ |
157 | 156 |
public Params getUIParams() { |
158 |
return null; |
|
157 |
Params params = new Params(); |
|
158 |
return params; |
|
159 | 159 |
} |
160 | 160 |
|
161 | 161 |
/* |
... | ... | |
181 | 181 |
|
182 | 182 |
} |
183 | 183 |
} |
184 |
|
|
185 |
/* |
|
186 |
* (non-Javadoc) |
|
187 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getInRasterDataType() |
|
188 |
*/ |
|
189 |
public int getInRasterDataType() { |
|
190 |
return 0; |
|
191 |
} |
|
192 |
|
|
193 |
/* |
|
194 |
* (non-Javadoc) |
|
195 |
* @see org.gvsig.raster.grid.filter.RasterFilter#getUIDefaultParams() |
|
196 |
*/ |
|
197 |
public Params getUIDefaultParams() { |
|
198 |
Params params = new Params(); |
|
199 |
return params; |
|
200 |
} |
|
201 |
|
|
202 |
/* |
|
203 |
* (non-Javadoc) |
|
204 |
* @see org.gvsig.raster.grid.filter.RasterFilter#process(int, int) |
|
205 |
*/ |
|
206 |
public void process(int x, int y) { |
|
207 |
} |
|
184 | 208 |
} |
Also available in: Unified diff