laboratorio guía de 1 matlab r2009b octave · pdf file1 prof.: ulises román c...

39
1 Prof.: Ulises Román C FISI-UNMSM 1 Guía de Laboratorio MatLab R2009b & Octave

Upload: trankien

Post on 06-Feb-2018

240 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

1

Prof.: Ulises Román C – FISI-UNMSM

1 Guía de

Laboratorio

MatLab R2009b

& Octave

Page 2: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

2

MatLab & Octave

Uso de Funciones y Procesamiento de Imágenes

RESUMEN

La presente guía enseña a generar gráficos y procesamiento de imágenes usando las funciones de MatLab(software propietario) y Octave(software libre) , que a continuación se muestra el código y su respectiva grafica ,Es necesario tener las siguientes consideraciones para poder trabajar con los primeros programas:

1. Copie los siguientes archivos del CD a la carpeta de trabajo

del Matlab c:\matlab\work (si tiene problemas consulte con el profesor)

p1.m

p2.m

p3.m

p4.m

p5.m

p6.m

p7.m

p8.m

p9.m

p10.m

p11.m

Page 3: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

3

2. Cargue el Matlab y aparecerá la LINEA DE COMANDO con el símbolo >> en una pantalla similar a esta:

3. Para ejecutar el Programa P1 escriba en la LÍNEA DE

COMANDO y presione ENTER y apreciara el siguiente resultado.

4. Para editar y hacer cambios en el programa, presione el icono de ABRIR ARCHIVO como se muestra en la figura

LÍNEA DE COMANDO

ABRIR ARCHIVO

Page 4: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

4

5. Aparecerá la siguiente ventana, allí seleccionar P1 y luego presionar ABRIR

6. En una ventana nueva aparecerá el conteniendo del programa P1.m tal como se puede apreciar.

Realice los cambios deseados, por ejemplo la función y = 2

* x + 3 cámbiela a 20 * x - 5 . Luego GRABE el programa y

ejecute nuevamente, según lo señalado en la opción 3.

7. Siga los mismos pasos para ejecutar y hacer los cambios deseados en todos los programas desde P1.m hasta P9.m.

Page 5: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

5

Programas Modelo para el Aprendizaje del MatLab

Programa P1:

clear; clc; close all; x=-3:0.01:3; y=2*x+3; figure(1); plot(x,y); grid;

Programa P2:

clear;

clc;

close all;

A=20;

f=2;

fi=90*pi/180;

t=0:0.01:4;

y=A*sin(2*pi*f*t+fi);

figure(1);

plot(t,y);

grid;

Page 6: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

6

Programa 3: clear; clc; close all; x=-3:0.01:3; y1=2*x+3; A=5; f=1; fi=45*pi/180; t=0:0.005:4; y2=A*sin(2*pi*f*t+fi); figure(1); subplot(2,1,1); plot(x,y1); grid; subplot(2,1,2); plot(t,y2); grid;

Programa 4:

clear; clc; close all; x1=-3:0.01:3; y1=2*x1+3; x2=-4:0.01:4; y2=x2.*x2+4; x3=-5:0.02:5; y3=-4*x3+5; A=5; f=1; fi=45*pi/180; t=0:0.005:4; y4=A*sin(2*pi*f*t+fi); figure(1); subplot(2,2,1);

Page 7: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

7

plot(x1,y1); grid; subplot(2,2,2); plot(x2,y2); grid; subplot(2,2,3); plot(x3,y3); grid; subplot(2,2,4); plot(t,y4); grid;

Programa 5:

clear;

clc;

close all;

A = input('Introducir amplitud A : ');

f = input('Introducir frecuencia f en Hz : ');

fi = input('Introducir frecuencia en grados : ');

fi=fi*pi/180;

t=0:0.01:2;

y=A*sin(2*pi*f*t+fi);

figure(1);

plot (t,y);

grid;

Page 8: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

8

Programa P6:

// Permite ubicar punto de intersección de dos funciones clear;

clc;

close all;

x1 = input('Introducir mínimo valor del dominio de la primera función : ');

x2 = input('Introducir máximo valor del dominio de la primera función : ');

a1 = input('Introducir mínimo valor del dominio de la segunda función : ');

a2 = input('Introducir máximo valor del dominio de la segunda función : ');

x = x1:1:x2;

y = sin((x*pi)/180);

a = a1:1:a2;

b = sin(a+1);

figure(1);

plot(a,b,x,y);

grid;

Programa 7 //Grafica de una Hélice

clear;

clear;

clc;

close all;

x=input('Numero de vueltas: ');

t=linspace(0,2*x*pi,2000);

plot3(sin(t),cos(t),t);

grid on;

Page 9: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

9

Programa 8 // Grafica de la circunferencia

Programa 9 //Aplicación de la función exponencial a la deformidad de una

elevación

Programa 10 //Aplicación de la función exponencial

clear; clc; close all; x=-4:0.01:4; a=input('Ingrese el valor de a: '); b=input('Ingrese el valor de b: '); c=input('Ingrese el valor de c: '); y=a*(x.^x)+b*x+c; plot(x,y); grid;

clear;

clc;

close all;

a=input('Introduzca el índice de deformidad

(par): ');

[ x , y ]=meshgrid(-2:0.01:2);

z =exp(-x.^a-y.^a);

mesh(x,y,z);

clear;

clc;

close all;

r=input('introducir el radio: ');

x=-r:0.0001:r;

y=sqrt(r^2-x.^2);

plot(x,y,'r',x,-y,'r');

grid;

Page 10: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

10

Programa 11 //Aplicación de la función circunferencia

Uso de Octave:

Para este modelado decidimos utilizar una alternativa al matlab un

programa llamado OCTAVE que cumple con la mayoría de las

funciones del matlab y además es software libre por lo que no

tendremos problemas con la licencia.

Ejemplo 1:

Para este caso se va a modelar lo que seria un movimiento armónico cuando ocurre el fenómeno llamado la resonancia en la que empieza a aumentar la amplitud del movimiento de manera que puede ocurrir algo similar a lo que paso con el puente de Tacoma en Estados Unidos que poco después de inaugurado el viento lo hizo entrar en resonancia y termino por colapsar.

Para esto la función mas aproximada seria x.sen(x) así que vamos a modelare l grafico de esta función. los comandos empleados para la gráfica son estos son:

clear;

clc;

close all;

h=input('Ingrese el valor de h: ');

k=input('Ingrese el valor de k: ');

r=input('Ingrese el radio: ');

x=-5:0.01:5;

y1=sqrt(r^2-(x-h).^2)+k;

y2=-sqrt(r^2-(x-h).^2)+k;

plot(x,y1,x,y2);

grid;

Page 11: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

11

Descargar Octave de internet y luego instalar , se mostrara la siguientes pantallas para edición y ejecución del programa del ejemplo 1. La funcionalidad es lo mismo que matlab, solo con la diferencia de este software es limitado no tiene todas las funciones. clear; clc; x=0:0.1:20; y=x.*(sin(x*pi)/180); plot(x,y); grid;

Page 12: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

12

Parte de Procesamiento de Imágenes

El Matlab tiene funciones predefinidas para procesamiento de

imágenes así como para trabajos con redes neuronales, algoritmos

genéticos y otros.

PROCESAMIENTO DE IMÁGENES (PI): Transformar imágenes para

obtener nuevas imágenes.

Existen 3 tipos de Imágenes:

a) RGB

b) GRIS

28 Bits (0 – 255)

c) BINARIO

20 Bits( 0,1)

R

G

B

Page 13: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

13

Formato de Imágenes

a. Mapas de Bits

b. Vectores

c. Mixtos

Formato de Entradas/Salidas

a. Imagen D Procesamiento Imagen D’

b. Imagen 2D Procesamiento Imagen 2D’

c. Imagen2D Procesamiento Patrones

d. Imagen3D Procesamiento Imagen 3D’

Identificar los objetos existentes en una imagen: PATRONES

Reconstrucciones de Imagen 3D desde 2D

REPRESENTACIÓN DE IMÁGENES: Una imagen digital es una

representación de una imagen analógica, mediante una matriz 2D

Page 14: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

14

f(x,y) , cada elemento de la matriz es una muestra llamada pixel . Las

imágenes son capturadas mediante cámaras (sensores de luz) para

ser convertidas en imágenes digitales.

• Una imagen está representado por un conjunto de píxeles o

matriz de puntos que tienen una dimensión determinada.

• Cada píxel puede representar una “gama de colores” que está

relacionada con el número de bits que tenga cada píxel.

Formato de Imágenes

a) Mapa de bits. matriz de puntos que al unirse forman la imagen,

se habla también de formatos de trama (raster).

Page 15: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

15

b) Vectores. ecuación matemática que representa una imagen y

que ofrece una muy alta calidad, ya que permite ser ampliada

sin perder resolución.

El formato como se almacena la imagen influye en el tiempo de

acceso y procesamiento de la imagen.

Page 16: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

16

EJERCICIOS

1. Crear una carpeta de trabajo llamado PROC_IMAGENES, en ella deberá

guardar (03) imágenes descargadas de internet o fotos de personas o

plantas o edificios o vehículos o animales

2. Los archivos deberán tener el formato de JPG, cuyos nombres son:

Imagen1,Imagen2,Imagen3

3. Leer y mostrar la imagen desde el matlab: La imagen deberá estar en la

carpeta de PROC_IMAGENES, como se muestra la pantalla siguiente:

>> I = imread(‘imagen1.jpg’);

>> imshow(I); % Probrar con >>imshow(I,[])

Page 17: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

17

Page 18: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

18

4. Determinar el tamaño de la imagen

>> size(I) Salida: 648 (filas) 1152(columnas) 3(componentes)

5. Muestra la información del archivo de imágenes:

>> imfinfo imagen1.jpg % que sucede al usar >> whos I

Page 19: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

19

6. Extraer los componentes de color

>> R = I(:,:,1)

>> G = I(:,:,1)

>> B = I(:,:,1)

7. Extraer los componentes de color- que pasa con :?

R = I(:,:,:)

G = I(:,:,:)

B = I(:,:,:)

Page 20: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

20

8. Editar , Abrir (Archivo Abrir) y ejecutar(F5 o presionar el

icono ) un archivo en Matlab, cuya extensión es (*.m), veamos

un ejemplo:

PARA EDITAR Y GRABAR:

A. Hacer doble clic en:

B. File NewM-Files

Page 21: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

21

C. Para guardar : Files Save As: mostrar_imagen

Page 22: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

22

D. Para ejecutar presiones F5 o el icono espere los resultados

como se muestra en la figura No.1:

Page 23: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

23

E. Para abrir un archivo guardado en extension *.m :

9. Para ajustar la imagen de contraste , usamos la función imadjust como se muestra en figura siguiente el código y salida:

Page 24: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

24

10. Para ecualizar un histograma , usamos la función histeq como se muestra en figura siguiente el código y salida:

Page 25: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

25

11. Para ajustar dos imágenes , usamos la función imadjust como se

muestra el código y el grafico en la siguiente:

12. Para generar histogramas de las imágenes , usamos la función

imhist como se muestra el código y el grafico en la siguiente:

Page 26: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

26

ANEXOS DE PROCESAMIENTO DE IMÁGENES:

Page 27: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

27

Page 28: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

28

Page 29: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

29

SEGMENTACION DE IMÁGENES

La segmentación subdivide una imagen en sus partes constituyentes u

objetos, con el fin de separar las partes de interés del resto de la imagen

de acuerdo al tipo del problema que se va resolver. Existen varias

técnicas para la detección de imágenes como: Líneas, Puntos y Bordes,

umbralizacion y regiones. La función que se usa en matlab es edge – asi

como las técnicas de: Sobel, Prewitt, Canny, Roberts,

Laplacian/Gaussian(LoG) y Zero crossing.

Ejercicios:

1.

Page 30: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

30

GRAFICOS Y VISUALIZACION EN 2-D, 3-D

MatLab ofrece una gama de gráficos(curvas planas y superficies) como:líneas,barras,curvas,polares,histogramas,sectores,y gráficos con múltiples ejes,mallas de datos multidimensionales,etc .a continuación veamos dichos graficos:

PROCEDEMIENTOS:

1. INSTALAR EL MATLAB VERSION 7 (2 CDs) 2. EDICION MODO CONSOLA O USO DEL EDITOR/PROPIEDADES 3. GUARDAR EL PROGRAMA (MODO EDITOR) CUYA EXTENSION (*.m) 4. EJECUTAR EL PROGRAMA 5. EJERCICIOS

Ejercicio 1: Usando modo consola, editar y ejecutar el siguiente código como se muestra en la figura:

CÓDIGO RESULTADO

Ejercicio 2: Usando modo editor, editar(escribir el código), guardar(FileSave Asnombre del archivo, por defecto debe grabar en la carpeta work

) y ejecutar(presione el botón ) veamos la muestra en la figura siguiente:

Page 31: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

31

Para abrir el EDITOR de trabajo desde MatLab (FileNewM-File)

EDITE SU CODIGO DEL EJERCICIO 1 Y GUARDE COMO PROG2:

Page 32: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

32

Page 33: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

33

Ejercicio 3: Editar el siguiente código y visualizar:

a. Como se muestra la figura

RESULTADO

Page 34: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

34

b. Usando la función rótate 3d del editor genere la figura

Ejercicio 4: Genere los siguientes gráficos usando funciones predefinidas del MatLab, como se muestra en las siguientes figuras:

Page 35: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

35

Page 36: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

36

EJERCIO: Genere la siguiente grafica usando la función rótate 3d:

Page 37: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

37

EJERCICIOS: Generar gráficos con sus respectivos códigos, usando las siguientes funciones : mesh, meshc, meshz, surf, surfc, surfz

Page 38: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

38

GENERACION DE MOVIMIENTOS(PELICULAS)

Para generar una figura en movimiento se usa las siguientes funciones :

Función getframe, función moviein(n), reserva memoria para almacenar n frames, devuelve un vector columna con la información recogida.

M=moviein (n)-> inicializa una matriz para contener los cuadrados de la animación.

EJERCIO: codifica y ejecuta el siguiente programa, has modificaciones y explica que ocurre.

EJERCICIO: usando como ejemplo el ejercicio anterior, genere una curva en movimiento como se muestra en la figura siguiente:

Page 39: Laboratorio Guía de 1 MatLab R2009b Octave · PDF file1 Prof.: Ulises Román C – FISI-UNMSM Guía de 1 Laboratorio MatLab R2009b & Octave

39