Está en la página 1de 8

Universidad Nacional Autónoma de México

Laboratorio de Procesamiento Digital de Imágenes Médicas


M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

Ojeda Perez Guadalupe Michelle

Practica 4 ; “Ecualización del histograma”


1
a) Lee y visualiza la imagen de intensidad
Resumen— En la siguiente practica se realizara la ecualización “neuronarat.jpg” así como su histograma.
de diferentes imágenes , en paletas de colores RGB, gris y HSI,
obtenidas en ese orden , se anexan imágenes y códigos en Matlab. Código en MatLab
close all
Índice de Términos— Ecualización, Histograma, re-escalada, clear all
densidad, población.
clc
I. INTRODUCCIÓN
A=imread('neuronarat.jpg');
mapa=gray(256);
En los campos procesamiento de imagen y fotografía, un
histograma de color es una representación anterior de la figure;image(A);colormap(mapa);
distribución del color en una imagen. En las imágenes figure; imhist(A)
digitales, un histograma de color representa el número de
píxeles que tienen colores en cada una de las listas fijas de En el siguiente par de imágenes se puede observar la imagen
rangos de colores, que se extienden sobre el espacio de color que se pide cargar y debajo de esta el histograma
de la imagen, es decir, el conjunto de todos los posibles correspondiente.
colores.

El histograma de color puede ser construido para cualquier


tipo de espacio de color, aun cuando el término es usado más
frecuentemente en espacios tridimensionales como RGB o
HSV. Para imágenes monocromáticas, el término histograma
de intensidad puede ser usado en su lugar. Para imágenes
multiespectrales, donde cada pixel es representado por un
número arbitrario de medidas (además de las tres medidas en
RGB), el histograma de color es N-dimensional, con N siendo
el número de medidas tomadas. Cada medida tiene su propio
rango de longitud de onda del espectro de luz, algunos de los
cuales pueden estar fuera del espectro visible.[1]

II. METODOLOGÍA
La siguiente practica se realizara con ayuda del manual de
practicas de la materia de Imagenologia Medica y lo visto en
clase, se utilizo el software matlab.
En la primer parte de la practica se realizan ejercicios para
relacionarse con el tema , en el primer punto se pide el
histograma de una imagen ya ecualizada , en el segundo
ejemplo realizaremos el histograma de una imagen en la
paleta de colores RGB, para después en el punto 4 realizarse
en diferentes niveles de gris, por ultimo el ejercicio 5 nos pide
el histograma de una imagen obtenida en el modelo de colores
HSI.

III. RESULTADOS
Ejemplo 1
Ecualización del Histograma en Imágenes de Intensidad

1 b) Realiza una función para ecualizar uniformemente la


imagen.
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

c) Muestra la imagen ecualizada y su histograma.

Código en MatLab
function B= ecualiza(A);
%A.- OIMAGEN DE ENTRADA
%B IAMGEN ECUALIZADA

A=uint8(A);

h=imhist(A);
h=h';

A=double (A);
[m n]=size(A);
H=h/(m*n);
d) Lee y visualizar la imagen “antraxgris.jpg” y su
histograma.
Pf=zeros(1,256); e) Ecualiza la imagen y muestra el histograma y la imagen
suma=0; resultante.
for j =1:256;
suma=suma+H(j); Codigo MatLab
Pf(j)=suma;
end close all
f=0:255; clear all
g=255*Pf(f+1); clc
B=255*Pf(A+1); A=imread('antraxgris.jpg');
A=imresize(A,0.5);

A Continuación se muestra la imagen ecualizada, se observa figure; image(A);


una imagen mucho más clara , así también se muestra su B=zeros(size(A));
histograma , a comparación del ejercicio uno se observa un
histograma que se encuentra repartido entre distribuido el for i=1:3
rango de color que se esperaba.<y no solo en el rango de B(:,:,i)=ecualiza(A(:,:, i));
oscuros. figure
imhist(uint8(B(:,:,i)))
figure
image(B(:,:,i))
colormap(gray(256))
end

figure
image(uint8(B));
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

a) Lee y visualiza la imagen RGB “antrax.jpg” y sus tres


histogramas.

close all
clear all
clc
A=imread('antrax.jpg');
A=imresize(A,0.5);

figure; image(A);

figure; imhist(A(:,:,1)); title('Histograma en R');


figure; imhist(A(:,:,2)); title('Histograma en G');
figure; imhist(A(:,:,3)); title('Histograma en B');

A continuación se encuentra la imagen original, así como tres


histogramas con filtro RGB cada histograma de cada filtro.

Ejemplo 2
Ecualización del Histograma en Imágenes RGB
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

A Continuación se muestran las imágenes obtenidas de


ecualizar la imagen con sus tres filtros y el resultado de
unirlas.

b) Ecualiza la imagen y muestra los tres histogramas y la


imagen resultante ecualizada.

close all
clear all
clc
A=imread('antrax.jpg');
A=imresize(A,0.5);

figure; image(A);
B=zeros(size(A));

for i=1:3
B(:,:,i)=ecualiza(A(:,:, i));
figure
imhist(uint8(B(:,:,i)))
figure
image(B(:,:,i))
colormap(gray(256))
end
figure
image(uint8(B));
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

observan mejoras entre más niveles de color más definida se


ve nuestra imagen

Imagen a dos niveles

Imagen a 4 niveles

Ejemplo 3
Ecualización con Diferentes Niveles de Gris
a) Ecualiza la imagen “cancer_pulmon.jpg” usando histeq
para 256, 128, 64, 32, 16, 8, 4 y 2 niveles de gris, desplegar Imagen a 8 niveles.
la imagen ecualizada y su histograma.

close all
clear all
clc
A=imread('cancer_pulmon.jpg');
mapa=gray(256);
J = histeq(A,2);
figure; imhist(J)
figure; image(J);;colormap(mapa);

A Continuación se analiza la imagen cáncer pulmón la cual la


primera imagen es la imagen original, seguida de imagenes
ecualizadas a diferentes niveles de valor empezando de dos
niveles hasta 256 niveles en cada una de las imágenes se
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

Imagen a 16 niveles

Ejemplo 4
Especificación del Histograma
Imagen a 32 niveles a) Visualiza las imágenes “chest_x_ray.jpg” y
“cancer_pulmon.jpg” así como su histograma.

close all
clear all
clc
mapa=gray(256);
A=imread('cancer_pulmon.jpg');
B=imread('chest_x_ray.jpg');

figure; imhist(A)
figure; image(A);colormap(mapa);
figure; imhist(B)
figure; image(B);colormap(mapa);
Imagen a 64 niveles

A Continuación se muestran las imágenes..

Imagen a 128 niveles

b) Guarda el histograma de la imagen “chest_x_ray.jpg”


en la variable pz.
Imagen a 256 niveles c) Usar pz como“cancer_pulmon.jpg”. función
ecualizadora para modificar el histograma de la imagen.
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

den(den == 0) = eps;
close all S = 1 - 3.*num./den;
clear all H(S == 0) = eps;
clc I = (R + G + B)/3;
mapa=gray(256); % combinacion de cada resultado en la imagen hsi
A=imread('cancer_pulmon.jpg'); hsi = cat(3, H, S, I);
B=imread('chest_x_ray.jpg'); end

pz=imhist(B); Despues se coloca el codigo para que se convierta la imagen y


J=histeq(A,pz); se muestre la intensidad en escala de grises.

close all
figure; imhist(A) clear all
figure; image(A);colormap(mapa); clc

figure; imhist(J) mapa=gray(256);


A=imread('antrax.jpg');
En la siguiente imagen se observa la imagen y el histograma B= hsi(A);
original , así también el nuevo histograma resultante del figure; image(A);
codigo hecho en matlab. figure;image(B);colormap(mapa);
figure;image(B(:,:,1));colormap(mapa);

Se muestran las trs imagenes obtenidas, la imagen original, la


imagen obtenida en HSI y por ultimo la imagen con solo la
variable intensidad en gris,.

Ejercicio 1 (Ejercicio a realizar)


Ecualización del Histograma usando el Modelo de Color
HSI
a) Realiza la conversión RGB a HSI de la imagen
antrax.jpg y muestra en una escala de grises la
componente de intensidad.

Primero se tomó una de las funciones de mathWorks que


convierten al modelo HSI[2]

function [hsi]=convertionRgb2Hsi(image)
%HSI: Tono, Saturaci�n e Intensidad
%RGB: Matriz num�rica Rojo, Verde y Azul
%Extraer componentes componentes individuales de color
rgb = im2double(image);
R = rgb(:,:,1);
G = rgb(:,:,2);
B = rgb(:,:,3);
%ecuacion conversion
num = 0.5*((R - G)+(R - B));
den = sqrt((R - G).^2 + (R - B).*(G - B));
angulo = acos(num./(den + eps));
H = angulo;
H(B > G) = 2*pi - H(B > G);
H = H/(2*pi);
num = min(min(R,G),B);
den = R + G + B;
Universidad Nacional Autónoma de México
Laboratorio de Procesamiento Digital de Imágenes Médicas
M. en I. Juan Carlos Muñoz Torres
Dr. Ernesto Moya Albor

[1] http://en.wikipedia.org/wiki/Histograma_de_color
[2]https://la.mathworks.com/matlabcentral/fileexchange/
b) Ecualiza la componente de intensidad en el modelo HSI 40966-conversion-de-una-imagen-rgb-a-hsi.
de la imagen mostrando en una escala de niveles de gris la
componente resultante.

close all
clear all
clc

mapa=gray(256);
A=imread('antrax.jpg');
B= hsi(A);
for i=1:3
C(:,:,i)=ecualiza(B(:,:, i));
end
figure;image(uint8(C));
figure; image(A);
figure;image(B);
figure;image(C(:,:,1));colormap(mapa);

IV. CONCLUSIONES
La practica cumplio con el objetivo de realizar el histograma
de las imágenes y realizar su correcta ecualización,
definitivamente se vieron y reforzaron los conceptos vistos en
clase se entendieron mejor y se pudo comprobar la eficiencia
del ecualizar una imagen, también se cambiaron a diferentes
modelos y se obtuvo su ecualización, la práctica resultó
interesante sobre todo en el manejo del software Matlab el
cual resulta muy útil para la materia, y ver cómo se manejan
las imágenes.

V. REFERENCIAS

También podría gustarte