Practica No. 3
PRESENTA:
Laura Pamela lvarez Hernndez
PROFESOR DE ASIGNATURA
M.C. Jimena Olveres
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
CONTENIDO
1. INTRODUCCIN .....................................................................................................................................................1
1.1 OBJETIVOS Y ALCANCE ...................................................................................................................................1
1.2 PREPARACIN DEL REPORTE............................................................................................................................1
2. MARCO TERICO ..................................................................................................................................................2
2.1 ECUALIZACIN DEL HISTOGRAMA: ....................................................................................................................2
2.2 ESPECIFICACIN DEL HISTOGRAMA: ..................................................................................................................2
2.3 DISTANCIA DE HISTOGRAMA CHI-SQUARE: ........................................................................................................3
3. Procedimiento ..................................................................................................................................................3
3.1 PARTE 1 ......................................................................................................................................................3
3.2 PARTE 2 ......................................................................................................................................................3
3.3 PARTE 3 ......................................................................................................................................................4
4. RESULTADOS.....................................................................................................................................................4
4.1 PARTE 1. .....................................................................................................................................................4
4.2 PARTE 2. .....................................................................................................................................................8
4.3 PARTE 3. .................................................................................................................................................. 15
5. CONCLUSIONES.............................................................................................................................................. 18
6. REFERENCIAS ................................................................................................................................................. 18
APNDICE A.- CDIGO FUENTE EN MATLAB .............................................................................................................I
APNDICES
i
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
LISTA DE FIGURAS
ii
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
1. INTRODUCCIN
Uno de los realces ms sencillos que puede aplicarse a una imagen es el que se refiere a la modificacin de su
histograma o funcin de densidad. El principal efecto de esta transformacin es el cambio del contraste de la imagen;
debido a esto es necesario revisar primero qu se entiende por contraste en una imagen digital. En cualquier caso el
contraste se refiere siempre a la relacin de brillantez de un objeto con su entorno, es decir, que a travs de un modelo
se relaciona el valor de un pixel o una clase de pixels con los vecinos prximos. En una apreciacin cualitativa por
medios visuales, el contraste puede depender de las condiciones especficas de iluminacin y de factores particulares
en la respuesta del sistema opto-neuronal del ser humano.
La ecualizacin del histograma es un mtodo que consiste en la variacin del histograma de una zona de una imagen
(o de la imagen entera) a otra de otra forma. Es una transformacin que pretende obtener para una imagen
un histograma con una distribucin uniforme Es decir, que exista el mismo nmero de pixeles para cada nivel de gris de
una imagen. La aplicacin de esta operacin debera transformar el histograma en otro con una forma perfectamente
uniforme sobre todos los niveles de gris. El anlisis estadstico derivado del histograma puede servir para comparar
contrastes e intensidades entre imgenes. El histograma podra ser alterado para producir cambios en la imagen.
Cuando el rango de niveles de gris que toma la imagen se encuentra concentrado en una zona del intervalo, la imagen
posee poco contraste. Para aumentar el contraste, podemos expandir el histograma o bien realizar una ecualizacin
del mismo.
1
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
2. M ARCO TERICO
En versiones digitales:
Claramente, las funciones de densidad pu(u) y pv(v) son idnticas pues representan ambos histogramas normalizados
a densidad uniforme, ya que el resultado de u es independiente del integrando. Por tanto, la relacin inversa r = G-1(v)
dara los niveles buscados, aunque esto no es posible, puesto que la imagen buscada no se conoce. Sin embargo,
recordemos que pu(u) = pv(v), de tal forma que en lugar de emplear los niveles uniformes v empleamos los u, por lo
que la relacin r = G-1(v) proporciona los niveles correspondientes a la funcin de densidad especificada.
2
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
3. PROCEDIMIENTO
3.1 PARTE 1
1. Ecualizacin del histograma de una imagen de bajo contraste (puede ser la imagen de pinos):
c) Ecualizar el histograma usando 128, 64, 32, 16, 8 y 2 niveles de cuantizacin. Desplegar las imgenes e
histogramas resultantes.
3.2 PARTE 2
2. Generar un mosaico a partir de dos imgenes satelitales utilizando la tcnica de especificacin de histograma
procurando que la unin entre las dos imgenes satelitales sea imperceptible. El histograma de referencia se toma
como el histograma correspondiente a una zona de traslape, que es comn para ambas imgenes, de una de las
imgenes.
a) Desplegar las imgenes satelitales cortando o eliminando las zonas donde la informacin es nula. Desplegar
adems el histograma correspondiente a cada una de ellas.
b) Desplegar el mosaico que resulta de unir las dos imgenes satelitales sin el uso de la tcnica de especificacin
del histograma.
d) Desplegar las imgenes satelitales recortadas, cuyos histogramas han sido especificados con el histograma
del inciso anterior. Desplegar adems el histograma correspondiente a cada una de ellas.
e) Desplegar el mosaico que resulta de unir las dos imgenes satelitales despus de la especificacin del
histograma. Desplegar tambin el histograma del mosaico.
f) Especificar el histograma del mosaico usando 128, 64, 32, 16, 8 y 2 niveles de cuantizacin.
3
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
NOTA: Recordando que la funcin imhist puede tener los argumentos (im, MAP) y el resultado puede ser
asignado a una variable. MAP es el mapa de colores o niveles de cuantizacin. Ejemplo: J=imhist(im,128)
significa que el histograma de im es guardado en J con 128 niveles de cuantizacin. Este ltimo histograma
puede ser usado para especificar el histograma de otra imagen; usado como segundo parmetro en la funcin
histeq. Ejemplo: imEspec = histeq (im2,J).
3.3 PARTE 3
3. Generar un reconocimiento mediante el anlisis del histograma, de la imagen proporcionada, se reconocer una
regin especfica. Se obtendr un promedio de la regin parche de la imagen, realizando lo siguiente:
a) Se comparar de manera local contra una ventana de barrido la cual ser determina con el tamao de las
ventanas de la regin parche.
b) Se generar una nueva imagen, en la cual el error de distancia se ir graficando.
4. RESULTADOS
4.1 PARTE 1.
a) La imagen original con la cual se trabaj esta primera parte es: pinos.bmp cuyo histograma es:
4
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
c) Ecualizacin de histograma a:
a. 128 niveles de gris.
5
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
b. 64 niveles de gris.
c. 32 niveles de gris.
6
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
d. 16 niveles de gris.
e. 8 niveles de gris.
7
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
4.2 PARTE 2.
d) Imgenes satelitales, cuyos histogramas son:
8
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
e) Ambas imgenes fueron unidas dejando la Ilustracin 12, la cual se muestra como un Mosaico Robusto.
f) A dicha Ilustracin 12 se seleccion la zona de traslape con un ancho de ventana de ventana de pixeles (75
pixeles por lado a partir de la lnea de unin de ambas zonas). Resultando la Ilustracin 13.
9
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
Como se observa en la Ilustracin 14 la lnea que une a ambas imgenes an es notoria, es por ello que se
opt por especificar la imagen A con respecto a la zona B , al igual que la zona de traslape.
h) Al aplicar la Especificacin de histograma a la Zona A (Ilustracin 15) con respecto a la zona B, y la Zona B con
respecto a la zona A; se calcula una zona de traslape de ambas especificaciones y nuevamente se especifica la
anterior zona de traslape con respecto al histograma de la zona de traslape de la anterior imagen (Ilustracin
13) y realizando nuevamente el mosaico (Vase IV), cuyo fragmento se muestra en el siguiente prrafo.
Realizando lo anterior descrito se obtiene la Ilustracin 16:
lineT=zeros([1500 4]);
lineT(1:1500,1:2)=AimEsp(1:1500,1687:1688);
lineT(1:1500,3:4)=BimEspt(1:1500,1:2);
LineTesp=histeq(lineT,Htrasl);
LineTesp=histeq(LineTesp,Htrasl);
Btras=BimEspt(1:1500,3:812);
Btrasl=histeq(Btras,Htrasl);
Image4=zeros([1500,2500]);
Image4(1:1500,1:1686)=AimEsp(1:1500,1:1686);
10
Image4(1:1500,1687:1690)=LineTesp;
Image4(1:1500,1691:2500)=BimEsp(1:1500,3:812);
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
11
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
Cuyo resultado se muestra satisfactorio. Ahora bien, en la siguiente seccin se muestra la especificacin del siguiente
mosaico a:
b. 64 niveles de gris.
12
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
c. 32 niveles de gris.
d. 16 niveles de gris.
13
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
e. 8 niveles de gris.
14
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
4.3 PARTE 3.
La Imagen e histograma a tratar en la presente seccin ser:
15
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
16
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
A dicha imagen se le calculo un histograma local, cuya ventana corresponde a una ventana promedio de 15 x 15.
Este histograma se aplicar a la imagen inicial y a travs del mtodo de Chi-cuadrada (vase Distancia de Histograma
Chi-Square), con el cual se obtuvo la siguiente imagen (Ilustracin 28):
Si repetimos el mismo procedimiento pero ahora con una ventana de 5x5, se obtiene:
17
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
5. CONCLUSIONES
Para muchas tareas de Procesamiento Digital de Imgenes es necesario el uso del Histograma, ste mtodo es
bastante eficiente para que las imgenes que posean bajo contraste, se realice una imagen la ecualizacin del
histograma lo que permitir un aumento en el contraste de tal forma que se puedan ver los detalles que no estn a
nuestro alcance. Analizando la chaqueta se observa cmo se obtienen los detalles en la imagen.
La tcnica de Especificacin de Histograma es una herramienta muy eficiente para homogeneizar diferentes
imgenes y con ello construir un mosaico, sin embargo sal aplicar especificaciones de dicha imagen a diferentes
nmeros de cuantificacin la lnea de empalme es evidente como se muestra en las (ilustraciones 17 a 22).
Ahora bien, las herramientas de medicin de distancia de histogramas son muy tiles, en el ejercicio empleado en
sta prctica se us la frmula de Distancia de Histograma Chi-Square, con el cual se obtuvo una imagen pre
segmentada (Ilustracin 28, Ilustracin 29.):
6. REFERENCIAS
18
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
I
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
figure(p);
subplot(2,1,1);imshow(A);title('Imagen Original');
subplot(2,1,2);imhist(A);title('Histograma');p=p+1;
Img=imread('pinos512.bmp');
A=im2double(A);
[fil,col] = size(Img);
total_pixels = fil * col;
Imgeq = zeros(fil,col);
hist = imhist(Img);
Img = double (Img);
probabilidad = zeros (1,256);
acumulada = zeros(1,256);
ecualizador= zeros(1,256);
for k=1:256
probabilidad(k)=hist(k)/total_pixels;
end
acumulada(1) = probabilidad(1);
for k = 2:256
acumulada(k) = acumulada(k-1) + probabilidad(k);
end
for k=1:256
ecualizador(k) = acumulada(k)*256;
end
for i=1:fil
for j=1:col
k = Img(i,j);
Imgeq(i,j)=ecualizador(k+1);
end
end
Img = uint8(Img);
Imgeq = uint8(Imgeq);
figure(p);
subplot(2,2,1);imshow(Img,[0,255]);title('Imagen Original');
subplot(2,2,2);imhist(Img);title('Histo.Im.Orig');
subplot(2,2,3);imshow(Imgeq,[0,255]);title('Imagen Ecualiz.');
II
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
subplot(2,2,4);imhist(Imgeq);title('Histo.Im.Ecualiz.');p=p+1;
imgOut=Image0;
figure(p);
subplot(2,1,1);imshow(Image1);title('Imagen Ecualizada a 128');
subplot(2,1,2);imhist(Image1);title('Histograma');p=p+1;
figure(p);
subplot(2,1,1);imshow(Image2);title('Imagen Ecualizada a 64');
subplot(2,1,2);imhist(Image2);title('Histograma');p=p+1;
figure(p);
subplot(2,1,1);imshow(Image3);title('Imagen Ecualizada a 32');
subplot(2,1,2);imhist(Image3);title('Histograma');p=p+1;
figure(p);
subplot(2,1,1);imshow(Image4);title('Imagen Ecualizada a 16');
subplot(2,1,2);imhist(Image4);title('Histograma');p=p+1;
figure(p);
subplot(2,1,1);imshow(Image5);title('Imagen Ecualizada a 8');
subplot(2,1,2);imhist(Image5);title('Histograma');p=p+1;
figure(p);
subplot(2,1,1);imshow(Image6);title('Imagen Ecualizada a 2');
subplot(2,1,2);imhist(Image6);title('Histograma');p=p+1;
III
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
figure(i);
subplot(2,1,1);imshow(Acrop); title('Zona A cortada');
subplot(2,1,2);imhist(Acrop); title('Histograma');
i=i+1;
B=imread('zonaB_b5.tif');
B=im2double(B);
B=B/(max(max(B)));
largoB= 1500;
anchoB= 1688;
Bcrop=zeros([1500,812]);
Bcrop=B(1:1500,1689:2500);
histB=imhist(Bcrop);
figure(i);
subplot(2,1,1);imshow(Bcrop); title('Zona B cortada');
subplot(2,1,2);imhist(Bcrop); title('Histograma');
Image1=zeros([1500,2500]);
Image1(1:1500,1:1688)=Acrop;
Image1(1:1500,1689:2500)=Bcrop;i=i+1;
imwrite(Image1,'Mosaico1.tif');
imwrite(Acrop,'Acrop.tif');
imwrite(Bcrop,'Bcrop.tif');
figure(i);
subplot(2,2,1);imshow(Acrop);title('Zona A Cortada');
subplot(2,2,2);imhist(Acrop);title('Histograma Zona A');
subplot(2,2,3);imshow(Bcrop);title('Zona B Cortada');
subplot(2,2,4);imhist(Bcrop);title('Histograma Zona B');i=i+1;
i=i+1;
figure(i);
subplot(2,1,1);imshow(Image1);title('Mosaico Robusto');
subplot(2,1,2);imhist(Image1);title('Histograma');i=i+1;
IV
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
figure(i);
imshow(Image1);title('Mosaico Robusto');i=i+1;
figure(i);
subplot(2,2,1);imshow(Bcrop);title('Imagen Original');
subplot(2,2,2);imhist(Bcrop);title('Histograma Imagen Original');
subplot(2,2,3);imshow(BimEsp);title('Zona B Especificada con respecto a
zona A');
subplot(2,2,4);imhist(BimEsp);title('Histograma Imagen
Especificada');i=i+1;
figure(i);
imshow(BimEsp);title('Imagen Especificada');i=i+1;
Image2=zeros([1500,2500]);
Image2(1:1500,1:1688)=Acrop;
Image2(1:1500,1689:2500)=BimEsp;
imwrite(Image2,'Mosaico2.tif');
figure(i);
subplot(2,1,1);imshow(Image2);title('Mosaico: Zona B especificado con
respecto a Zona A');
subplot(2,1,2);imhist(Image2);title('Histograma'); i=i+1;
figure(i);
imshow(Image2);title('Mosaico: Zona B especificado con respecto a Zona
A');i=i+1;
figure(i);
subplot(2,2,1);imshow(Acrop);title('Imagen Original');
subplot(2,2,2);imhist(Acrop);title('Histograma Imagen Original');
subplot(2,2,3);imshow(AimEsp);title('Zona A Especificada con respecto a
zona B');
subplot(2,2,4);imhist(AimEsp);title('Histograma Imagen
Especificada');i=i+1;
figure(i);
imshow(AimEsp);title('Imagen Especificada');i=i+1;
Image3=zeros([1500,2500]);
Image3(1:1500,1:1688)=AimEsp;
Image3(1:1500,1689:2500)=Bcrop;
imwrite(Image3,'Mosaico3.tif');
figure(i);
subplot(2,1,1);imshow(Image3);title('Mosaico: Zona A especificado con
respecto a Zona B');
subplot(2,1,2);imhist(Image3);title('Histograma'); i=i+1;
figure(i);
V
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
%zona de Traslape
Atraslap=zeros([1500,150]);
Btraslap=zeros([1500,150]);
Atraslap=Acrop(1:1500,1539:1688);
Btraslap=Bcrop(1:1500,1:150);
Image0(1:1500,1:150)=Atraslap;
Image0(1:1500,151:300)=Btraslap;
figure(i);
pos1 = [0.1 0.15 0.4 0.7];
subplot('Position',pos1);imshow(Image0);title('Zona de Traslape');
pos2 = [0.5 0.15 0.4 0.7];
subplot('Position',pos2);imhist(Image0);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(Image3);title('Mosaico: Zona A especificado con
respecto a Zona de Traslape');
subplot(2,1,2);imhist(Image3);title('Histograma'); i=i+1;
figure(i);
imshow(Image3);title('Mosaico: Zona A especificado con respecto a Zona de
Traslape');i=i+1;
lineT=zeros([1500 4]);
lineT(1:1500,1:2)=AimEsp(1:1500,1687:1688);
lineT(1:1500,3:4)=BimEspt(1:1500,1:2);
LineTesp=histeq(lineT,Htrasl);
LineTesp=histeq(LineTesp,Htrasl);
Btras=BimEspt(1:1500,3:812);
Btrasl=histeq(Btras,Htrasl);
Image4=zeros([1500,2500]);
Image4(1:1500,1:1686)=AimEsp(1:1500,1:1686);
Image4(1:1500,1687:1690)=LineTesp;
Image4(1:1500,1691:2500)=BimEsp(1:1500,3:812);
figure(i);
subplot(2,1,1);imshow(Image4);title('Mosaico Mejorado');
subplot(2,1,2);imhist(Image4);title('Histograma'); i=i+1;
figure(i);
VI
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
imshow(Image4);title('Mosaico Semifinal');i=i+1;
Image5=histeq(Image4,HB);
figure(i);
imshow(Image4);title('Mosaico Mejorado');i=i+1;
imwrite(Image3,'MosaicoFinal.png');
clc
clear all;
clearvars;
A=imread('MosaicoFinal.png');
A=im2double(A);
A=A/(max(max(A)));
Image1=histeq(A,128);
Image2=histeq(A,64);
Image3=histeq(A,32);
Image4=histeq(A,16);
Image5=histeq(A,8);
Image6=histeq(A,2);
i=1;
figure(i);
subplot(2,1,1);imshow(Image1);title('Mosaico Especificado a 128');
subplot(2,1,2);imhist(Image1);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(Image2);title('Mosaico Especificado a 64');
subplot(2,1,2);imhist(Image2);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(Image3);title('Mosaico Especificado a 32');
subplot(2,1,2);imhist(Image3);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(Image4);title('Mosaico Especificado a 16');
subplot(2,1,2);imhist(Image4);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(Image5);title('Mosaico Especificado a 8');
subplot(2,1,2);imhist(Image5);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(Image6);title('Mosaico Especificado a 2');
subplot(2,1,2);imhist(Image6);title('Histograma');i=i+1;
VII
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
figure(i);
imshow(Cw);title('localizacion de los vectores');i=i+1;
figure(i);
subplot(2,1,1);imshow(vec1);title('Vector1');
subplot(2,1,2);imhist(vec1);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(vec2);title('Vector2');
subplot(2,1,2);imhist(vec2);title('Histograma');i=i+1;
figure(i);
subplot(2,1,1);imshow(vec3);title('Vector3');
subplot(2,1,2);imhist(vec3);title('Histograma');i=i+1;
haver=((hv1)+(hv3)+(hv2))./3;
[x, y]=size(C);
imerror=zeros([x+k,y+l]);
A=zeros([x+k,y+l]);
A(6:176,3:153)=C(1:171,1:151);
[mf, nf]=size(A);
VIII
PROCESAMIENTO DIGITAL DE IMGENES
Proyecto No.3 .- Ecualizacin, Especificacin y Distancia de Histograma
for n=1:nf-k
for m=1:mf-l
barrido=A(m:(m+14),n:(n+14));
n_exp=imhist(barrido);
chi2=sum((n_exp -haver).^2./(haver+n_exp+1));
imerror(m,n)=chi2;
end
end
imf=imerror(1:171,1:151);
imf=imf./max(imf(:));
figure(i);
subplot(2,1,1);imshow(imf);title('x');
subplot(2,1,2);imhist(imf);title('Histograma');i=i+1;
IX