Professional Documents
Culture Documents
Representacin de imgenes en MATLAB Matlab almacena las imgenes como vectores bidimensionales (matrices), en el que cada elemento de la matriz corresponde a un slo pixel.
Trabajar con imgenes en matlab es equivalente a trabajar con el tipo de dato matriz
3
1 2
R 0 0.06 0.29
G 0 0.6 0.06
B 0 0.03 0.06
R
63 65 61 59 63 66 67 63 29 30 62 63 65 10 63 62
G
34 34 10 50 36 38 65 63 40 62 65 50
B
45 18 63 53 34 29 63 68 38 32 66 70
int16 Enteros de 16 bits en el rango de [32768, 32767] (2 bytes por elemento) int32 Enteros de 32 bits en el rango de [2147483648,2147483647] (4 bytes por elemento) logical Los valores son 0 1 (1 bit por elemento)
Comando
im2uint8 Im2uint16
Convierte a
uint8 uint16
Im2double Im2bw
double logical
f = [0 0.5; 0.75 g = [0 0.3; 0.7 0.9]; 1.0]; gb = im2bw(g, 0.6) g = im2uint8(f) gb = [0 0 ;1 1] g =[0 128 ;191 255] Nota: Se pueden utilizar tambin las funciones de conversin de tipo, pero el resultado es diferente
col
92 90 56 78 23 150 150 150 180 155 150 180 150
valor = imagen(fil,col)
78 0
fil
0 0 0
34 6 5
10 6 4
9 8 9
150 150 0
imagen
31 41 51 61
b = imresize(a,0.5))
11 21 31
12 22 32
13 23 33
Ms funciones bsicas
Para girar una imagen:
B = IMROTATE(A,ANGLE,METHOD,BBOX) b= imrotate(a,45,bilinear,crop);
Ms funciones..
Cortar un trozo de imagen:
I2= IMCROP(I,RECT) RECT =[xmin,ymin,anchura, altura] b= imcrop(a,[20,30,100,100]); b=imcrop(a)
recorte interactivo
Acceder a un elemento:
valor = A(fil,col)
Manipular matrices
Seleccionar un trozo de la matriz: B=A(i:j,n:m) crear una matriz B compuesta por los elementos en las filas [i,j] y las columnas [m,n] Operador : selecciona toda una fila o toda una columna (permite tambin pasar de matriz a vector columna)
88 78 0 92 90 56 78 23 150 150 150 180 155 150 180 150
B= A(2:4,2:5)
0 0 0
34 6 5
10 6 4
9 8 9
150 150 0
B= A(:,6)
Se pueden aplicar los operadores relacionales sobre una matriz (> < == ~=)
B = A > umbral; B = A == umbral; B es de tipo logical
10