¿Cómo normalizar un histograma en MATLAB?

La normalización del histograma es una técnica para distribuir las frecuencias del histograma en un rango más amplio que el rango actual. Esta técnica también se utiliza en el procesamiento de imágenes. Allí hacemos la normalización del histograma para mejorar el contraste de las imágenes con poco contraste. 

Fórmula:

 New intensity= ((Intensity - minimum)                /(maximum-minimum))                *255;      

Aquí ./ y .* significa que la operación debe realizarse por elementos.

Pasos:

  • Lee la imagen.
  • Convierta la imagen en color en escala de grises.
  • Mostrar histograma.
  • Observe las intensidades máxima y mínima del histograma.
  • Cambie el tipo de imagen de uint8 a doble.
  • Aplique una fórmula para la normalización de histogramas.
  • Convertir de nuevo en formato de unidad.
  • Mostrar imagen e histograma modificado.

Ejemplo: 

Matlab

% MATLAB code for
% Histogram normalisation.
% Read the image.
k=imread("lincoln.jfif");
 
% Convert into grayscale
k1=rgb2gray(k);
 
% Display the image and histogram.
imtool(k1,[]);
imhist(k1);
 
% Set the minimum and maximum
% Values from histogram.
min=45;
max=180;
 
% Convert image into double.
k2=double(k1);
 
% Apply the formula.
k3=(k2-min)./(max-min);
 
% Multiply with maximum possible value.
k4=k3.*255;
 
% Convert the final result into uint8.
k5=uint8(k4);
 
% Display the enhanced image and histogram.
imtool(k5,[]);
imhist(k5);

Producción:

Figura: histograma original

Figura: histograma normalizado

Figura: Imágenes antes y después de la normalización

Explicación del código: 

  • Primero, leemos la imagen usando la función imread().
  • Después de leer la imagen, la convertimos al formato de escala de grises.
  • Después de convertirlo a escala de grises, mostramos la imagen y su histograma.
  • La intensidad máxima y mínima se anota en el histograma.
  • El tipo de datos de la imagen se cambia de uint8 a double, para facilitar los pasos de cálculo.
  • Aplicar la fórmula de normalización.
  • El tipo de datos de la imagen se vuelve a cambiar a uint8.

Publicación traducida automáticamente

Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *