Statistics
| Revision:

root / trunk / libraries / libRaster / src / org / gvsig / raster / grid / filter / histogramMatching / HistogramMatchingByteFilter.java @ 21803

History | View | Annotate | Download (2.82 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
         *
3
         * Copyright (C) 2006 Instituto de Desarrollo Regional and Generalitat Valenciana.
4
         *
5
         * This program is free software; you can redistribute it and/or
6
         * modify it under the terms of the GNU General Public License
7
         * as published by the Free Software Foundation; either version 2
8
         * of the License, or (at your option) any later version.
9
         *
10
         * This program is distributed in the hope that it will be useful,
11
         * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
         * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
         * GNU General Public License for more details.
14
         *
15
         * You should have received a copy of the GNU General Public License
16
         * along with this program; if not, write to the Free Software
17
         * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
         *
19
         * For more information, contact:
20
         *
21
         *  Generalitat Valenciana
22
         *   Conselleria d'Infraestructures i Transport
23
         *   Av. Blasco Iba?ez, 50
24
         *   46010 VALENCIA
25
         *   SPAIN
26
         *
27
         *      +34 963862235
28
         *   gvsig@gva.es
29
         *      www.gvsig.gva.es
30
         *
31
         *    or
32
         *
33
         *   Instituto de Desarrollo Regional (Universidad de Castilla La-Mancha)
34
         *   Campus Universitario s/n
35
         *   02071 Alabacete
36
         *   Spain
37
         *
38
         *   +34 967 599 200
39
         */
40
package org.gvsig.raster.grid.filter.histogramMatching;
41

    
42

    
43
import org.gvsig.raster.buffer.RasterBuffer;
44

    
45
/**
46
 * Filtro para la aplicaci?n de HistogramMatching a un raster de tipo byte.
47
 * 
48
 * @author aMu?oz (alejandro.munoz@uclm.es)
49
 * @version 27-5-2008
50
 * 
51
 * */
52

    
53
public class HistogramMatchingByteFilter extends  HistogramMatchingFilter {
54

    
55
        int progreso= 0;
56
        
57
        /** 
58
         * Filtro de Histogram Matching par imagenes de tipo byte
59
         * */        
60
        public HistogramMatchingByteFilter (){
61
                super();        
62
        }
63

    
64
        /**
65
         * Ejecucion del filtro tipo byte
66
         * */
67
        public void execute() {
68
        
69
                super.pre();
70
                
71
                int index=0;
72
                
73
                /// Proceso construccion de la nueva imagen
74
                for(int band=0; band<rasterResult.getBandCount();band++)
75
                for(int j=0;j<raster.getHeight();j++)
76
                        for(int i=0; i<raster.getWidth();i++){
77
                                int data= (int) (raster.getElemByte(j,i,band));
78
                                index = data & 0xff;
79
                                rasterResult.setElem(j,i,band,(byte)tableAsign[band][index]);
80
                                progreso=(int) j*100*band/(raster.getHeight()*rasterResult.getBandCount());
81
                        }
82
                
83
                super.post();
84
        }
85

    
86
        /**
87
         * @return  tipo de dato del buffer de entrada
88
         * */
89

    
90
        public int getInRasterDataType() {
91
                return RasterBuffer.TYPE_BYTE;
92
        }
93

    
94

    
95
        /**
96
         * @return tipo de dato del buffer de salida
97
         * */
98
        public int getOutRasterDataType() {
99
                return RasterBuffer.TYPE_BYTE;
100
        }
101

    
102
        
103
        /**
104
         * @return  buffer resultante tras aplicar el filtro
105
         * */
106
        public Object getResult(String name) {
107
                if (name.equals("raster"))
108
                        return rasterResult;
109
                return null;
110
        }
111
        
112
        
113
        public int getPecent(){
114
                return progreso;
115
        }
116
        
117
} // Fin de la clase