martes, 17 de febrero de 2009

Filtro Umbralización

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

public class Filter_Umbralizacion implements PlugInFilter
{
ImagePlus imp;

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

public void run(ImageProcessor ip)
{
int w=ip.getWidth();
int n=ip.getHeight();
for(int i =0; i < w;i++)
{
for(int j= 0; j < n;j++)
{
int p =ip.getPixel(i,j);
//p = (int)(p*2+50);
if (p < 50){
p=0;
}else if(p > =50){
p=255;
}
ip.putPixel(i,j,p);
}
}
}

}

3 comentarios:

Gaby Fiallo dijo...

Sería conveniente que comentes ciertas lìneas de código de tu algoritmo.

Pato Tapia dijo...

Estoy completamente de acuerdo con Gabyta, estimado Juanito, nos ayudarías muchísimo comentando tu código.comp por ejemplo que pasa si en la línea p<50 , colocas p<10 o p<200

johana mendoza dijo...

un metodo que se puede seguir es el de Kittler e Illingworth, que busca minimizar la Información H dada por:

i
H=-∑ p(i)log(f(i))
i=0
donde P(i) son las probabilidades de los niveles de gris, calculadas como el cociente entre los pixels con nivel de gris i (conocidos a partir del histograma) con i=1..255sobre el total de pixels de la imagen.