PROCESAMIENTO DE SEÑALES
UNIVERSIDAD NACIONAL TECNOLÓGICA DEL CONO SUR DE LIMA INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
LABORATORIO I
MANEJO BÁSICO DE IMÁGENES CON MATLAB CURSO: PROCESAMIENTO DIGITAL DE SEÑALES ALUMNO: YANAC HUAMAN DAVID JOSUE ELIAS DOCENTE: ING. GUSTAVO PAZ PURIZACA
2014-I
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
1. MARCO TEÓRICO MATLAB es un lenguaje de programación, puede ser usado en muchas aplicaciones, como: control, comunicaciones, procesamiento de imágenes, modelado y análisis. MATLAB posee una gran variedad de funciones especializadas que extienden su capacidad para resolver problemas particulares en muchas áreas. En este laboratorio se tendrá que tener conocimientos básicos, en la creación y manejo de vectores y matrices, y conocer algunas funciones que nos ofrece MATLAB. Vectores Un vector se puede definir introduciendo sus coordenadas, separadas por espacios o por comas, entre corchetes. >>
x=[1 23 ]
x=¿
12 3 Si se quiere definir un vector columna, se separan las filas por punto y coma, o bien se calcula el transpuesto de un vector de fila con >> X’. Otra manera de crear vectores es la siguiente: ≫ x=1 :0.5 :3
x=¿ 1.0 1.52.0 2.5 3.0
Que genera un vector que va desde 1 hasta 3 con un paso de 0.5 unidades.
Matrices Para introducir una matriz, se separa cada fila con un punto y como.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
≫ A=[3 2 1;6 5 4 ;9 8 7] A=¿
3 21 654
9 8 7
1. Generar matrices: A. Generar un vector v ascendente de 1 a 10. (v=[1:1:10]) B.
C. Generar un vector w descendente de 10 a 1. (w=[10:-1:1])
D. . Generar una matriz diagonal con el vector v como diagonal. (diag)
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
E. Generar una matriz simétrica de diagonal constante con v como primera fila y primera columna. (toeplitz)
F. . Generar una matriz simétrica de diagonal constante con w como primera columna y v como primera fila. (toeplitz)
G. . Generar una matriz de 10 × 10 con todos los valores iguales a uno. (ones)
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
H. . Generar una matriz de 10 × 10 con todos los valores iguales a cero. (zeros)
I. Generar una matriz identidad de 10 × 10. (eye)
J. Matriz de 3x3 con valores comprendidos entre 52 y 71. (52+(71-52)*rand(3))
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
K. Medir el tamaño de la matriz anterior con la función size() L.
II.
Generar matrices de forma lineal:
A. Matriz de 8x8 con todas las filas iguales y valores crecientes de 0 a 150
B. Matriz de 8x8 con el elemento de la esquina superior izquierda = 10, el elemento de la esquina inferior derecha = 100 y crecimiento lineal.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
C. Redondear la matriz anterior, tomar la parte entera y comparar ambas.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
2. Generar matrices de forma aleatoria: A. Matriz de 5x5 con valores aleatorios entre 0 y 20. B.
C. Matriz una de 6x6 con valores aleatorios entre 5 y 25
D. Repetir los dos apartados anteriores redondeando valores.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
3. Generar matrices mayores basándose en matrices más pequeñas: A. Partiendo de una matriz de 3x4, y colocando ésta en la esquina superior izquierda, generar una nueva de tamaño 5x6, rellenando el resto con ceros.
B. Crear una matriz A de 3x4, otra B de 3x10, otra C de 5X6 y otra D de 5x8, para finalmente componer una nueva matriz: A B CD
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
4. Extrae una matriz mas pequeña de otra mas grande:
Partiendo de una matriz de 8x8, extraer las cuatro matrices de 4x4 que se pueden formar dentro de ella.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
5. Efectuar operaciones con matrices:
6. Visualizar una matriz como si fuese una imagen: A. Crear una matriz de tamaño 8x8 con valores enteros comprendidos entre 0 y 255, y luego visualizarla: - image(x); colormap(gray(255)). - imshow(x, [ ]). Con esto se ajustan niveles automáticamente. - Especificar directamente el escalado de ejes (axis)
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
7. Obtener una matriz a partir de una imagen: A. Preparar previamente una imagen en formato bmp en D:\... B. Utilizar para leer la imagen el comando imread. C. Comprobar que la matriz obtenida al leer una imagen es formato uint8. D. Pasarlo a formato doublé. E. Visualizar el contenido de la matriz como si fuese una imagen.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
8. Crear una imagen *.bmp a partir de una matriz de datos: a) Reutilizar la matriz del apartado 2.a, y emplear el comando imwrite, comprobando todas sus variantes. b) Verificar que la imagen grabada se puede visualizar con un programa "comercial", por ejemplo Adobe Photoshop.
Profesor: Gustavo Paz Purizaca
PROCESAMIENTO DE SEÑALES
OBSERVACIONES Y CONCLUSIONES
Concluimos que matlab es una potente herramienta de la cual disponemos para realizar cálculos, y crear matrices para mas adelante poder ver las imágenes generando solo matrices. Con la función whos podemos ver los datos de la imagen guardada y ver sus dimensiones. Se debe tener cuidado al momento de crear una matriz o un vector, los puntos y comas pueden variar los resultados y podemos obtener valores no deseados. Al variar la matriz 8x8 de la pregunta 2, y vemos la pregunta 9, nos damos cuenta que la imagen varia.
Profesor: Gustavo Paz Purizaca