Ecualización del histograma de una imagen
La ecualización del histograma consiste, en una expansión del histograma de la imagen, dotando al mismo de mayor linealidad y haciendo que éste ocupe el ancho del espectro de tonalidades grises por completo
Ventajas
- Al ecualizar el histograma, vemos como los tonos que antes estaban más agrupados, ahora se han separado, ocupando todo el rango de grises, por lo que la imagen se está enriqueciendo al tener niveles de gris más distintos entre sí, mejorando, por tanto, la apariencia visual de la imagen.
- Un aumento del contraste: esta ventaja es consecuencia del punto anterior, ya que si hacemos que el histograma de la imagen ocupe todo el rango de grises, estamos aumentando la distancia entre el tono más claro y el más oscuro, convirtiendo a éstos, en blanco y negro y consecuentemente aumentando el contraste de la imagen.
- Constituye una regulación óptima y automática del contraste de la imagen. Evitando ajustes manuales que no llegan a localizar el equilibrio exacto en una imagen del blanco y el negro.
Desventajas
-Pérdida de información: puede ocurrir que a algunos pixeles que en la imagen original tenían distintos niveles de gris se les asigne, tras la ecualización global, al mismo nivel de gris. Por otro lado, hay casos en los que dos niveles de gris muy próximos se separen, dejando huecos en el histograma.
-Las bandas horizontales debido a una deficiente digitalización pueden resultar intensificadas, resaltando aún más este error indeseado.
A continuacion el codigo fuente en Java:
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.filter.*;
public class Filtro_Equalizacion 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[k]=vec[k-1]+vec[k];
}
int w=ip.getWidth();
int h=ip.getHeight();
for(int i =0; 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); } } }
}
1 comentario:
Al momento de aplicar la ecualizacion de un histograma, debemos tener en cuenta las ventajas y desventajas del mismo, ya que nos pueda ayudar a mejorar la visualizacion de la imgaen pero puede provocar perdida de informacion de la imagen al mismo tiempo
Publicar un comentario