Binarizar una Imagen

Iniciado por Choclito, 30 Agosto 2011, 21:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Choclito

Hola a todos lo que encontre este codigo donde lo cambia a esclas de grises , peroa hora como hago para cambiar a blanco ynegro (binarizar) , pq creo que primero se cmbia a escala de grises si alguien pudiera ayudar seria de mucho agradecimiento .

Código (java) [Seleccionar]
public boolean escalaDeGrises()
{
     boolean estado = true;
  int p, promedio, rojo, verde, azul;
  int a = imagenBase.getWidth(this);  //Ancho
     int h = imagenBase.getHeight(this); //Alto
     int totalDePixeles = a * h;
  int pixeles[] = new int[totalDePixeles];   //Arreglo de pixeles
  PixelGrabber pg = new PixelGrabber(imagenBase,0,0,a,h,pixeles,0,a);
  try
  {
   pg.grabPixels();
   for(int i = 0; i < totalDePixeles; i++)
   {
    p = pixeles[i]; //Valor de un pixel
    rojo = (0xff & (p>>16));  //Desplaza el entero p 16 bits a la derecha y aplica la operacion AND a los primeros 8 bits
    verde = (0xff & (p>>8));  //Desplaza el entero p 8 bits a la derecha  y aplica la operacion AND a los siguientes 8 bits
    azul = (0xff & p) ;        //Aplica la operacion AND a los siguientes 8 bits
    promedio = (int) ((rojo+verde+azul)/3);
    pixeles[i]=(0xff000000|promedio<<16|promedio<<8|promedio);
   }
   imagenModificada  = createImage(new MemoryImageSource(a,h,pixeles,0,a));
  }catch(InterruptedException e)
  {
   //JOptionPane.showMessageDialog((Component)null,"Error del sistema : "+e.getMessage(),"Error de Imagen",JOptionPane.OK_OPTION);
   estado = false;
   this.mensajeDeError = e.getMessage();
  }
  return estado;
}