Sesión Teórico-Práctica

INTRODUCCIÓN

Para poder usar imagenes de Matlab (en Linux), hay algunas disponibles en:

> <directorio donde reside Matlab>/toolbox/images/imdemos

Más adelante usaremos otras imágenes y siempre podremos copiarlas o enlazarlas en directorios locales. Matlab debe ser capaz de encontrar imagenes en el directorio anterior.

Podemos cargar una imagen en Matlab con:

>> a = imread('onion.png');
>> b = imread('cameraman.tif');

y mostrarlas en pantalla con:

>> figure(1),imshow(a),figure(2),imshow(b)

Para mostrar una imagen de reales hay primero que reescalarla al rango [0,1] (Esto es exactamente lo que hace im2double). También se puede utilizar la función imagesc.

Funciones básicas sobre imágenes: im2uint8, im2uint16, im2double, im2bw, imwrite, impixel, imresize, imrotate, imcrop.

OPERACIONES ARITMÉTICAS

imadd, imsubtract, imabsdiff, imlincomb, immultiply, imdivide

OPERACIONES LÓGICAS

se realizan con operaciones de matrices


TRANSFORMACIONES DE INTENSIDAD

Tambien llamadas transformación de histograma, que se calcula en Matlab como:

[hb,g] = imhist(b);
bar(g,hb)

o directamente visualizarse con

imhist(b)

Las transformaciones lineales y polinómicas (gamma) en un subrango de grises se calculan con la función

c = imadjust(b);
c = imadjust(b,stretchlim(b),[]);
c = imadjust(b,[.50 .7],[]);

para visualizar los efectos en el histograma:

figure(1),imshow(b),figure(2),imshow(c)
figure(3),imhist(b),figure(4),imhist(c)

O, si quieres ver los histogramas con rangos normalizados:

figure(3),imhist(im2double(b)),figure(4),imhist(im2double(c))


Se puede visualizar el histograma acumulado con:

[hb,g] = imhist(b);
bar(g,cumsum(hb))

Con este pequeña función, puedes visualizar imagen, histograma y histograma acumulado en una figura.

close all; figure(1),imaghist(b),figure(2),imaghist(c);

Se puede trabajar con transformadas de gris de manera implícita (LUTs) con:

[X, map] = gray2ind(b,256); %imagen indexada con RGBmap
newmap = histeq(X, map);
T = uint8(newmap(:,1)*255); %transformada en el rango 0..255
figure(4),imaghist(b,T) % X=b en este caso