Revision 25599
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/BrightnessFilter.java | ||
---|---|---|
19 | 19 |
package org.gvsig.raster.grid.filter.enhancement; |
20 | 20 |
|
21 | 21 |
import org.gvsig.raster.buffer.RasterBuffer; |
22 |
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer; |
|
22 | 23 |
import org.gvsig.raster.dataset.IBuffer; |
23 | 24 |
import org.gvsig.raster.dataset.Params; |
24 | 25 |
import org.gvsig.raster.grid.filter.RasterFilter; |
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/LinearStretchEnhancementFilter.java | ||
---|---|---|
19 | 19 |
package org.gvsig.raster.grid.filter.enhancement; |
20 | 20 |
|
21 | 21 |
import org.gvsig.raster.buffer.RasterBuffer; |
22 |
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer; |
|
22 | 23 |
import org.gvsig.raster.dataset.FileNotOpenException; |
23 | 24 |
import org.gvsig.raster.dataset.IBuffer; |
24 | 25 |
import org.gvsig.raster.dataset.Params; |
... | ... | |
44 | 45 |
protected DatasetListStatistics stats = null; |
45 | 46 |
protected double[] minBandValue = null; |
46 | 47 |
protected double[] maxBandValue = null; |
47 |
protected int nbands = 3; |
|
48 | 48 |
protected int[] renderBands = null; |
49 | 49 |
public static String[] names = new String[] {"enhanced_stretch"}; |
50 | 50 |
private boolean removeEnds = false; |
... | ... | |
115 | 115 |
|
116 | 116 |
loadStretchList(); |
117 | 117 |
|
118 |
nbands = stats.getBandCount(); |
|
118 |
if(raster instanceof RasterReadOnlyBuffer) |
|
119 |
((RasterReadOnlyBuffer) raster).addDrawableBands(renderBands); |
|
120 |
|
|
119 | 121 |
rasterResult = RasterBuffer.getBuffer(IBuffer.TYPE_BYTE, raster.getWidth(), raster.getHeight(), raster.getBandCount(), true); |
120 | 122 |
} |
121 | 123 |
|
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/EqualizationShortFilter.java | ||
---|---|---|
45 | 45 |
p = (short) minBandValue[renderBands[iBand]]; |
46 | 46 |
|
47 | 47 |
int pos = (int)(((p + dto[iBand]) * nClasses) / distance[iBand]); |
48 |
int ecualizationPositive = (int)(lahe[renderBands[iBand]][pos]);
|
|
49 |
int ecualizationNegative = (int)(lahe[renderBands[iBand]][nElements - pos]);
|
|
48 |
int ecualizationPositive = (int)(lahe[iBand][pos]);
|
|
49 |
int ecualizationNegative = (int)(lahe[iBand][nElements - pos]);
|
|
50 | 50 |
double value = ((nElements - ecualizationNegative) + ecualizationPositive) / 2; |
51 | 51 |
|
52 | 52 |
rasterResult.setElem(line, col, iBand, (short)value); |
trunk/libraries/libRaster/src/org/gvsig/raster/grid/filter/enhancement/EqualizationByteFilter.java | ||
---|---|---|
39 | 39 |
continue; |
40 | 40 |
} |
41 | 41 |
|
42 |
//Las estad?sticas est?n calculadas para todas las bandas por lo que hay que seleccionar solo las que se renderiza |
|
42 | 43 |
if (p > maxBandValue[renderBands[iBand]]) |
43 | 44 |
p = (int) maxBandValue[renderBands[iBand]]; |
44 | 45 |
else if (p < minBandValue[renderBands[iBand]]) |
45 | 46 |
p = (int) minBandValue[renderBands[iBand]]; |
46 | 47 |
|
47 | 48 |
//M?todo lahe |
48 |
int ecualizationPositive = (int)lahe[renderBands[iBand]][p % histogram.getNumValues()];
|
|
49 |
int ecualizationNegative = (int)laheNegative[renderBands[iBand]][nElements - (p % histogram.getNumValues())];
|
|
49 |
int ecualizationPositive = (int)lahe[iBand][p % histogram.getNumValues()];
|
|
50 |
int ecualizationNegative = (int)laheNegative[iBand][nElements - (p % histogram.getNumValues())];
|
|
50 | 51 |
|
51 | 52 |
int value = ((nElements - ecualizationNegative) + ecualizationPositive) / 2; |
52 | 53 |
rasterResult.setElem(line, col, iBand, (byte)(value & 0x000000ff)); |
trunk/extensions/extRasterTools-SE/src/org/gvsig/raster/util/process/FilterProcess.java | ||
---|---|---|
28 | 28 |
import org.gvsig.raster.beans.previewbase.ParamStruct; |
29 | 29 |
import org.gvsig.raster.buffer.BufferFactory; |
30 | 30 |
import org.gvsig.raster.buffer.WriterBufferServer; |
31 |
import org.gvsig.raster.buffer.cache.RasterReadOnlyBuffer; |
|
31 | 32 |
import org.gvsig.raster.dataset.GeoRasterWriter; |
32 | 33 |
import org.gvsig.raster.dataset.IBuffer; |
33 | 34 |
import org.gvsig.raster.dataset.IRasterDataSource; |
... | ... | |
131 | 132 |
bufferFactory.setReadOnly(true); |
132 | 133 |
|
133 | 134 |
//Asignaci?n de bandas |
135 |
int[] renderBands = rendering.getRenderBands(); |
|
134 | 136 |
if (rendering != null) { |
135 |
int[] renderBands = rendering.getRenderBands(); |
|
136 | 137 |
// Si es gris, se reduce a una sola banda |
137 | 138 |
if ((renderBands.length == 3) && (renderBands[0] == renderBands[1]) && (renderBands[1] == renderBands[2])) |
138 | 139 |
renderBands = new int[] { renderBands[0] }; |
... | ... | |
141 | 142 |
bufferFactory.setAllDrawableBands(); |
142 | 143 |
|
143 | 144 |
bufferFactory.setAreaOfInterest(); |
145 |
|
|
146 |
IBuffer buff = bufferFactory.getRasterBuf(); |
|
147 |
if(buff instanceof RasterReadOnlyBuffer) |
|
148 |
((RasterReadOnlyBuffer) buff).addDrawableBands(renderBands); |
|
149 |
|
|
144 | 150 |
Grid grid = new Grid(bufferFactory, true); |
145 | 151 |
|
146 | 152 |
//Obtenemos la lista de filtros |
... | ... | |
167 | 173 |
if((rendering != null && rendering.existColorTable()) || buffer.getBandCount() > 1) |
168 | 174 |
colorInterpretation = new DatasetColorInterpretation(new String[] { DatasetColorInterpretation.RED_BAND, DatasetColorInterpretation.GREEN_BAND, DatasetColorInterpretation.BLUE_BAND }); |
169 | 175 |
else if(rendering != null && buffer.getBandCount() == 2) { |
170 |
int[] renderBands = rendering.getRenderBands();
|
|
176 |
renderBands = rendering.getRenderBands(); |
|
171 | 177 |
String[] ci = new String[renderBands.length]; |
172 | 178 |
for (int i = 0; i < renderBands.length; i++) { |
173 | 179 |
switch (renderBands[i]) { |
Also available in: Unified diff