Procesamiento De Imagenes
MANEJO BÁSICO
DE IMÁGENES
CON MATLAB
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
●
Imagen tamaño NxM píxeles
●
En Matlab: Imagen = Matriz/es
Cada elemento de la matriz el
tono de gris para imágenes en B/N
●
Si la imagen es en color, existen
3 matrices, cada una representa el
valor de un tono de color
●
1
2341
N
2
3
4
Los índices de la matriz son (r,c),
donde r representa la fila (row) y c
la columna (column)
●
M
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
Leyendo imágenes de disco:
>> f = imread('chestxray.jpg')
>> f = imread('D:\imagenes\chestxray.jpg')
>> f = imread('/home/user/chestxray.jpg')
Esto lo que hace es que parauna imagen en blanco y
negro, nos crea una matriz f, donde cada elemento tendrá un
valor de nivel de gris:
f=
f(1,1) f(1,2) ... f(1,N)
f(2,1) f(2,2) ... f(2,N)
f(M,1) f(M,2) ... f(M,N)
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
Obteniendo información de f:
Para determinar el tamaño de la imagen:
>>size(f)
ans =
1024 1024
Si loqueremos almacenar en una variable:
>>[M, N] = size(f)
Si lo que queremos es obtener información más detallada
de la imagen:
>>whos f
Name Size
Bytes
Class
f
249x500
373500 uint8 array
Grand total is 373500 elements using 373500 bytes
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
Mostrando Imágenes:
imshow(f,G)
donde f es la imagen a mostrar y Ges el número de niveles
de intensidad a mostrar. Si G se omite, se usa 256. La sintáxis
es la siguiente
imshow(f,[low high])
imshow(f)
Grupo de Visión Artificial
imshow(f,[0 50])
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
Una utilidad interesante de imshow es:
imshow(f,[])
esto lo que hace es expandir el rango dinámico de la imagen,
pone como límite inferior, elvalor mínimo de intensidad de la
imagen y como límite superior su valor máximo
imshow(f)
Grupo de Visión Artificial
imshow(f,[])
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
Dos apuntes más sobre imshow(f):
pixval: Si se ejecuta pixval en la consola de Matlab, en la
última figura abierta, se podrá ver el valor de intensidad
cuando el ratón pasa sobre un píxel concreto. Ytambién se
puede medir la distancia euclídea entre dos puntos.
Matlab usualmente cuando dibuja una nueva figura,
sobreescribe la ventana de la figura anteriormente mostrada.
Para mostrar la segunda figura en una ventana independiente,
ejecutar lo siguiente
>> figure, imshow(f)
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
Guardando imágenes endisco:
>> imwrite(f, 'nombre_fichero')
donde f es la matriz que almacena la imagen y filename es
el nombre de fichero donde vamos a guardar la imagen.
filename tiene que tener una extensión que reconozca
Matlab, o usar este otro formato:
>> imwrite(f, 'nombre_fichero', 'tif)
En estas prácticas trabajaremos con formato tiff y/o jpeg. En
el caso de jpeg también se puede especificar la calidadde
la imagen:
>> imwrite(f, 'nombre.jpg', 'quality', q)
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
donde q es un numero de 0 a 100 que especifica la calidad de
la imagen:
menor compresión
mayor calidad
mayor compresión
menor calidad
0
...
50
...
100
Obteniendo información de un fichero imagen almacenado en
disco:
>>imfinfo nombre_fichero
Grupo de Visión Artificial
David García Pérez
MANEJO BÁSICO DE IMÁGENES CON MATLAB
>> imfinfo prueba.jpg
ans =
Filename: 'prueba.jpg'
FileModDate: '08-feb-2005
17:18:13'
FileSize: 6125
Format: 'jpg'
FormatVersion: ''
Width: 600
Height: 494
BitDepth: 8
ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
CodingMethod: 'Huffman'
CodingProcess:...
Regístrate para leer el documento completo.