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