• No se han encontrado resultados

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
39
0
0

Texto completo

(1)

1

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

1

Guía de

Laboratorio

MatLab R2009b

&

Octave

(2)

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

(3)

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

(4)

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.

(5)

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;

(6)

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);

(7)

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;

(8)

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;

(9)

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;

(10)

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;

(11)

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;

(12)

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

(13)

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

(14)

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,

(15)

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.

(16)

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’);

(17)
(18)

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:

(19)

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(:,:,:)

(20)

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 NewM-Files

(21)

21

(22)

22

D. Para ejecutar presiones F5 o el icono espere los resultados como se muestra en la figura No.1:

(23)

23

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

9. Para ajustar la imagen de contraste , usamos la función imadjust

(24)

24

10. Para ecualizar un histograma , usamos la función histeq como se

(25)

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

(26)

26

(27)
(28)
(29)

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.

(30)

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(FileSave

Asnombre del archivo, por defecto debe grabar en la carpeta work ) y ejecutar(presione el botón ) veamos la muestra en la figura siguiente:

(31)

31

Para abrir el EDITOR de trabajo desde MatLab (FileNewM-File)

(32)
(33)

33

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

a. Como se muestra la figura

(34)

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

(35)
(36)

36

(37)

37

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

(38)

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:

(39)

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

El nuevo Decreto reforzaba el poder militar al asumir el Comandante General del Reino Tserclaes de Tilly todos los poderes –militar, político, económico y gubernativo–; ampliaba

De acuerdo con Harold Bloom en The Anxiety of Influence (1973), el Libro de buen amor reescribe (y modifica) el Pamphihis, pero el Pamphilus era también una reescritura y

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)