Está en la página 1de 5

Imagenes y gracas en MATLAB

Sistemas Conexionistas - Curso 08/09


1. Gracas
Para dibujar funciones de una variable, Matlab dispone de la funci on plot, con la siguiente
sintaxis:
plot(Y) Dibuja la gr aca que toma los ndices de Y como valores en el eje x y las
columnas de Y como valores en el eje y.
plot(x1,y1, ...) Une con una lnea todos los pares de la forma (xn,yn)
plot(X,Y) Si X e Y son vectores, dibuja las columnas/las de X con respecto a las
columnas/las de Y.
plot(M) Si M es una matriz, dibuja cada columna de M con respecto a su ndice.
plot dispone de argumentos opcionales que permiten especicar el tipo de lnea que se
dibuja, as como su color y el tipo de marcador para los puntos dibujados:
plot(X,Y, --r) Dibuja una lnea discontinua en rojo
plot(X,Y, s) Dibuja solo los puntos como cuadrados
plot(X,Y, +r) Dibuja solo los puntos como cruces en rojo
plot(X,Y, g) Dibuja una lnea continua en verde
Es posible congurar ciertos aspectos de las gr acas, entre otros:
title(string) Establece la cadena string como ttulo de la gr aca
xlabel(string) Establece la cadena string como etiqueta del eje x de la graca
ylabel(string) Establece la cadena string como etiqueta del eje y de la graca
axis Controla la apariencia y escala de los ejes. Presenta varias opciones
1.1. Manipulaci on de ventanas de gura
Al utilizar la funci on plot, Matlab abre autom aticamente una ventana de gura que se
sobreescribe si se vuelve a llamar a otra funcion de dibujo. El comando figure permite
abrir nuevas ventanas de gura. Su sintaxis es:
h = figure
figure devuelve un identicador que se utiliza para manipular la gura. As, si tenemos
varias ventanas de gura abiertas, con figure(h2) seleccionamos la gura relativa al iden-
ticador h2 y con close(h3) cerramos la ventana h3. close all cierra todas las ventanas
de gura abiertas.
1.2. Subguras
El comando subplot permite dibujar varias gr acas en una misma ventana de gura. Su
sintaxis es la siguiente:
subplot(m,n,p)
Con este comando, la ventana de gura actual se descompone en una matriz de m x n
subguras y se selecciona la subgura n umero p para ser utilizada.
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
subplot(2,1,1)
plot(x,y1)
title(y = sin(x));
subplot(2,1,2)
plot(x,y2)
title(y = cos(x));
2
1.3. Superposicion de gracas
Para dibujar varias gr acas en una misma gura/subgura, se utiliza la funcion hold on.
Para dejar de dibujar en la misma gura/subgura, se utiliza hold off.
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x,y1)
hold on;
plot(x,y2, r)
hold off;
2. Imagenes
Matlab dispone de comandos especiales para trabajar con imagenes de diversos formatos
(pgm, ppm, gif, png, . . . ).
imread Lee una imagen en color o escala de grises.
IM = imread(filename)
La imagen es almacenada en la matriz IM. Las im agenes en escala de grises se alma-
cenan en matrices bidimensionales del mismo tama no que la imagen, mientras que en
las im agenes en color, la matriz es tridimensional ya que cuenta con una submatriz
del mismo tama no que la imagen en cada canal RGB.
Si los colores de la imagen est an indexados (por ejemplo las imagenes con formato
gif), la lectura de la imagen se realiza de la siguiente forma:
[IM map] = imread(filename)
donde map es una matriz que almacena el mapa de colores de la imagen leda.
3
imwrite Escribe una imagen a chero.
imwrite(IM, filename)
Si el chero incluye la extensi on no es necesario indicar el formato de la imagen.
Para mostrar una imagen por pantalla, Matlab dispone de las funciones image e imagesc.
Su sintaxis es:
image(IM)
imagesc(IM)
donde IM se corresponde con una matriz que representa una imagen. Si no se especica
ning un mapa de colores, Matlab utilizara el mapa por defecto. Matlab dispone de varios
mapas de colores aunque tambien es posible utilizar un mapa de colores ledo en una
imagen o denido por el usuario. Para especicar el mapa de colores se utiliza el comando
colormap:
colormap(map)
imagesc es similar a image salvo que escala la imagen para utilizar el mapa de colores
completo.
3. Ejercicios
1. Dibujar la siguiente funcion denida por partes:
y =

x
2
x + 3 2 x < 2
2x + 1 2 x < 4
En la primera parte, x debe variar a intervalos de 0.05 y en la segunda parte, a
intervalos de 0.01.
2. Dibujar en una sola ventana con dos subventanas las funciones y = x
2
3x 2 y
z = x
3
2x+1 con x variando entre -5 y 5 a intervalos de 0.02. La primera en lneas
verdes continuas, la segunda en lneas azules discontinuas. Marcar con un + rojo el
punto (2,1) en ambas gr acas.
4
3. Leer las imagenes de ejemplo y mostrarlas gr acamente
lena1.bmp Imagen en color RGB.
Comprobar el tama no de la matriz de la imagen.
Modicar el aspecto de los ejes con los comandos axis off y axis image.
lena2.pgm Imagen en escala de grises.
Comprobar el tama no de la matriz de la imagen.
Comprobar las diferencias entre utilizar image y imagesc en la visualizacion.
Utilizar el mapa de colores gray para visualizar correctamente la imagen en
escala de grises.
lena3.bmp Imagen en color indexado.
Comprobar los tama nos de las matrices de la imagen y del mapa de colores.
Utilizar el mapa de colores de la propia imagen para representarla gr acamente.
5

También podría gustarte