Académique Documents
Professionnel Documents
Culture Documents
= 660um,
= 560um,
= 500um).
La imagen es ubicada segn la orientacin mostrada en la fig. 2. As, las filas se encuentran en
el eje X y las columnas en el eje Y.
Figura 2. Orientacin del plano de coordenadas utilizado en MATLAB. [1]
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
1.1 Lectura de imgenes
Para la lectura de una imagen se utiliza el comando imread. El parmetro de entrada es la
ubicacin del archivo el cual puede tener formato jpg, bmp, tiff, entre otros. Una imagen en
escala de grises como ejem1.jpg dar la siguiente informacin al usar los comandos size y
whos.
>> I = imread('ejem1.jpg');
>> size(I)
ans = 500 500
>> whos I
Name Size Bytes Class
I 500x500 250000 uint8
En este caso, se indica que la informacin de un pxel est almacenada en un byte (uint8), es
decir, puede tener 256 valores distintos de intensidad.
* En este laboratorio adems de la lectura, se utilizar la escritura de imgenes que es
realizada con el comando imwrite, usar el comando help para analizar los parmetros.
1.2 Visualizacin de imgenes
Para la visualizacin de las imgenes se utiliza el comando imshow. Se muestra as la imagen
en tamao real, si la imagen es demasiado grande para ser mostrada esta es automticamente
reducida en un porcentaje para que pueda ser visualizada en la pantalla.
figure, imshow(I),
Figura 3. Resultado comando imshow.
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
1.3 Operaciones con imgenes
Al trabajar con el software MATLAB, las imgenes son almacenadas en arreglos cuyos datos
pueden ser fcilmente extrados, asimismo puede ser parte de operaciones matemticas.
Una de las operaciones comunes es la conversin de una imagen a colores en escala de grises,
para ello se utiliza la siguiente frmula:
Figura 4. Resultado escala de grises.
Para acceder a cada capa de una imagen de color se sigue el siguiente cdigo:
I = imread('ejem2_7M2.jpg');
Ired = I(:,:,1) %Red Layer
Igreen = I(:,:,2) %Green Layer
Iblue = I(:,:,3) %Blue Layer
2. Histograma de una imagen
El histograma de una imagen digital es una funcin definida por:
Donde
] y
es el nmero
de pixeles en la imagen con nivel de intensidad
= 255.
Mayormente es necesario trabajar con el histograma normalizado (ser til en este
laboratorio) y se consigue con la siguiente formula:
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
En la siguiente grfica se presenta el resultado de hallar el histograma y el histograma
normalizado de una imagen de prueba (Figura 3).
Figura 5. Histograma e histograma normalizado de la figura 3.
Para hallar el histograma y el histograma normalizado se utiliza el siguiente pseudocdigo.
I, % Imagen es escala de grises
[F,C] = size(I); % F = cantidad de filas, C = cantidad de columnas
hist = zeros(1,256); %Inicializo vector histograma
Para ff de 1 a F
Para cc de 1 a C
hist(1, (Valor de I en ff,cc)) = hist(1,(Valor de I en ff,cc))+1;
fin Para
fin Para
% Recordar que en MATLAB un vector no puede recibir como argumento el valor
% 0, histograma(0) generar un error.
Nhist = hist/(Total Filas * Total Columnas);
3. Funciones de transformacin de intensidad
Dentro del procesamiento de imgenes es muy til realizar transformaciones de intensidad
que permitan mejorar el contraste de una imagen, obtener la inversa (o complemento a 255),
entre otros efectos.
Se define la ecuacin:
Donde:
r es una intensidad de una imagen de entrada en el rango de [0,255]
T es la funcin de transformacin.
s es la intensidad de la imagen de salida en el rango de [0,255]
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
* En nuestro caso trabajamos con pixeles definidos por 8 bits por lo tanto los valores de
intensidad quedan definidos dentro de [0,255] siendo 0 el color negro, 255 el color blanco y los
valores intermedios estn dados por una escala de grises.
Figura 6. Funcin de transformacin de intensidad gamma.
En este laboratorio las transformaciones se utilizar la funcin de transformacin gamma
expuesta en la figura 6 cuya formulacin est en la ecuacin () y el pseudocdigo en MATLAB
se muestra en recuadro siguiente.
Donde:
r es la intensidad de un pxel de la imagen de entrada.
s es la intensidad transformada de un pxel de la imagen de salida.
LI low_input
HI high_input
LO low_output
HO low_output
g gamma
I, %Imagen en escala de grises
[F,C] = size(I)
LI = ; % Low input
HI = ; % High input
LO = ; % Low output
HO = ; % High output
gamma = ; % gamma
Isalida = zeros(F,C);
I = double(I); % Double para realizar operaciones matemticas
Para j de 1 a F
Para i de 1 a C
Isalida(j,i) = redondear(T(I(j,i))); % T definda en la ecuacin( )
fin Para
fin Para
figure,imshow(uint8(I))
figure,imshow(uint8(Isalida))
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
4. Ecualizacin de Histograma
La ecualizacin de histograma es una transformacin de intensidad de imgenes dominada por
las siguientes ecuaciones.
Bsicamente, las frmulas indican que la funcin de transformacin a utilizar es la funcin de
suma acumulada de la funcin histograma normalizado. Esta transformacin genera una
imagen con un incremento en el rango dinmico, es decir que se tendr mayor cantidad de
diferentes valores de pixeles o intensidades. En resumen, el contraste mejorar. El
procedimiento para hallar la funcin de ecualizacin de histograma se grafica con las
siguientes figuras.
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
I, %imagen en escala de grises
hnorm = histogramaNormalizado(I); %Histograma/Cantidad total de pixeles
cdf = cumsum(hnorm); %Suma acumulada de hnorm
Inew = zeros(size(I)); %Inew es la salida de la transformacion
[F,C] = size(Inew);
I = double(I);
Para i de 1 a F
Para j de 1 a C
Inew(i,j) = redondear(cdf(I(i,j)+1)*255);
fin Para
fin Para
Inew = uint8(Inew);
5. Fuentes
[1] Rafael Gonzalez et al, Digital Image Processing using Matlab, 2004
[2] Kodak Datashhet, Kodak KAC-9618 CMOS IMAGE SENSOR, Septiembre 2004
Pontifica Universidad Catlica del Per
Ingeniera Mecatrnica 2014-1
PREGUNTAS LABORATORIO
1. Utilice la imagen a colores ejem3_7M2.jpg y halle la escala de grises utilizando la ecuacin
(1), muestre la imagen original y la resultante utilizando el comando imshow.
2. Utilice la imagen ejem3_7M2.jpg y convirtala en escala de grises. Realice la
implementacin del pseudocdigo para hallar el histograma e histograma normalizado,
muestre las imgenes y comente su resultado.
3. Utilice la imagen ejem3_7M2.jpg use la capa verde.
Realice la implementacin del pseudocdigo para hallar la funcin de transformacin
propuesto.
Utilice valores [HI=255,LI=0,HO=255,LO=0, g=0.3] [HI=255,LI=0,HO=255,LO=0, g=3]
[HI=128,LI=0,HO=255,LO=128, g=1]
Realice el histograma de cada imagen resultante. Comente las diferencias
encontradas.
Para el ltimo caso: [HI=128,LI=0,HO=255,LO=128, g=1] utilice el comando imadjust y
compare visualmente si los resultados tienen o no diferencia.
Que combinacin utilizara para incrementar el contraste. Elija valores de gamma,
HI,LI,HO,LO adecuados y fundamente su respuesta.
4. Utilice la imagen ejem2_7M2.jpg obtenga la imagen en escala de grises.
Realice la implementacin del pseudocdigo para hallar la ecualizacin de histograma
propuesto.
Muestre las imgenes originales y finales, las grficas de histograma inicial y final y la
funcin de transformacin.
Utilice el comando histeq y compare sus resultados.