Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Choclito en 30 Agosto 2011, 21:12 pm



Título: Binarizar una Imagen
Publicado por: Choclito en 30 Agosto 2011, 21:12 pm
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
  1. public boolean escalaDeGrises()
  2. {
  3.     boolean estado = true;
  4.  int p, promedio, rojo, verde, azul;
  5.  int a = imagenBase.getWidth(this);  //Ancho
  6.     int h = imagenBase.getHeight(this); //Alto
  7.     int totalDePixeles = a * h;
  8.  int pixeles[] = new int[totalDePixeles];   //Arreglo de pixeles
  9.  PixelGrabber pg = new PixelGrabber(imagenBase,0,0,a,h,pixeles,0,a);
  10.  try
  11.  {
  12.   pg.grabPixels();
  13.   for(int i = 0; i < totalDePixeles; i++)
  14.   {
  15.    p = pixeles[i]; //Valor de un pixel
  16.    rojo = (0xff & (p>>16));  //Desplaza el entero p 16 bits a la derecha y aplica la operacion AND a los primeros 8 bits
  17.    verde = (0xff & (p>>8));  //Desplaza el entero p 8 bits a la derecha  y aplica la operacion AND a los siguientes 8 bits
  18.    azul = (0xff & p) ;        //Aplica la operacion AND a los siguientes 8 bits
  19.    promedio = (int) ((rojo+verde+azul)/3);
  20.    pixeles[i]=(0xff000000|promedio<<16|promedio<<8|promedio);
  21.   }
  22.   imagenModificada  = createImage(new MemoryImageSource(a,h,pixeles,0,a));
  23.  {
  24.   //JOptionPane.showMessageDialog((Component)null,"Error del sistema : "+e.getMessage(),"Error de Imagen",JOptionPane.OK_OPTION);
  25.   estado = false;
  26.   this.mensajeDeError = e.getMessage();
  27.  }
  28.  return estado;
  29. }