martes, 17 de febrero de 2009

Ecualización

import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;

public class Filtro_Ecualizacion implements PlugInFilter
{
ImagePlus imp;

public int setup(String arg, ImagePlus imp)
{
this.imp = imp;
return DOES_ALL;
}

public void run(ImageProcessor ip)
{
int [] vec= ip.getHistogram();
int I=255;
for (int k=1; k< vec.length; k++)
{
vec[k]=vec[k-1]+vec[k];
}

int w=ip.getWidth();
int h=ip.getHeight();
for(int i =0; i < w; i++)
{
for(int j= 0; j < h; j++)
{
int img =(int)(ip.getPixel(i, j));
img=vec[img]*((I-1)/(i*j));
ip.putPixel(i,j,i,img);
}
}
}

}

2 comentarios:

Juan Mena dijo...

Es de gran ayuda tu aporte pero solamente te aconsejaría que en la línea "ip.putPixel(i,j,i,img);" elimines la i que está antes del img; Por que esto provoca un error al momento de compilar el programa en el imageJ.

Pato Tapia dijo...

Adicionalmente te recomiendo igualmente como a los otros compañeros nos comenten el código esto nos ayudaría michísimo.