LORENA HERNÁNDEZ VÁZQUEZ
INGENIERÍA BIOMÉDICA UPCI | PROFESORA: ROSALBA CHAVEZ
Procesamiento de imágenes
Contenido ¿Para qué sirve? .................................................................................................................................. 2 Características ..................................................................................................................................... 3 Gráficos e interfaces gráficas ..................................................................................................... 3 Simulink ...................................................................................................................................... 3 Toolboxes .................................................................................................................................... 3 Interfaz con otros lenguajes de programación .......................................................................... 4 Ventajas ............................................................................................................................................... 5 Tipos de datos que maneja MATLAB .................................................................................................. 6 Ambiente de trabajo de MATLAB........................................................................................................ 8
1
Procesamiento de imágenes
¿Para qué sirve? MATLAB es un entorno de cálculo técnico de altas prestaciones para cálculo numérico y visualización. Integra:
Análisis numérico Cálculo matricial Procesamiento de señales Gráficos
En un entorno fácil de usar, donde los problemas y las soluciones son expresados como se escriben matemáticamente, sin la programación tradicional. El nombre MATLAB proviene de ``MATrix LABoratory'' (Laboratorio de Matrices). MATLAB es un sistema interactivo cuyo elemento básico de datos es una matriz que no requiere dimensionamiento. Esto permite resolver muchos problemas numéricos en una fracción del tiempo que llevaría hacerlo en lenguajes como C, BASIC o FORTRAN. MATLAB ha evolucionado en los últimos años a partir de la colaboración de muchos usuarios. MATLAB también proporciona una serie de soluciones específicas denominadas TOOLBOXES. Estas son muy importantes para la mayoría de los usuarios de MATLAB y son conjuntos de funciones MATLAB que extienden el entorno MATLAB para resolver clases particulares de problemas como:
Procesamiento de señales Diseño de sistemas de control Simulación de sistemas dinámicos Identificación de sistemas Redes neuronales y otros.
2
Procesamiento de imágenes
Características Lenguaje Las aplicaciones de MATLAB se desarrollan en un lenguaje de programación propio. Este lenguaje es interpretado, y puede ejecutarse tanto en el entorno interactivo, como a través de un archivo de script (archivos *.m). Este lenguaje permite operaciones de vectores y matrices, funciones, cálculo lambda, y programación orientada a objetos. Gráficos e interfaces gráficas MATLAB provee funciones para visualizar datos en 2D y 3D. Simulink Simulink es un módulo que permite la simulación de sistemas dinámicos a través de una interfaz basada en bloques. Toolboxes Las funcionalidades de Matlab se agrupan en más de 35 toolboxes y paquetes de bloques (para Simulink), clasificadas en las siguientes categorías: MATLAB
Parallel Computing Math, Statistics, and Optimization Control Systems Signal Processing and Communications Image Processing and Computer Vision Test and Measurement Computational Finance Computational Biology Code Generation and Verification Application Deployment Database Connectivity and Reporting MATLAB Report Generator
3
Procesamiento de imágenes
SIMULINK
Event-Based Modeling Physical Modeling Control Systems Signal Processing and Communications Code Generation Real-Time Simulation and Testing Verification, Validation, and Test Simulation Graphics and Reporting
Interfaz con otros lenguajes de programación MATLAB puede llamar funciones y subrutinas escritas en C o Fortran. Se crea una función envoltorio que permite que sean pasados y devueltos tipos de datos de MATLAB. Los archivos objeto dinámicamente cargables creados compilando esas funciones se denominan "MEX-files", aunque la extensión de nombre de archivo depende del sistema operativo y del procesador.
Probablemente la característica más importante de MATLAB es su capacidad de crecimiento. Esto permite convertir al usuario en un autor contribuyente, creando sus propias aplicaciones. En resumen, las prestaciones más importantes de MATLAB son:
Escritura del programa en lenguaje matemático. Implementación de las matrices como elemento básico del lenguaje, lo que permite una gran reducción del código, al no necesitar implementar el cálculo matricial. Implementación de aritmética compleja. Un gran contenido de órdenes específicas, agrupadas en TOOLBOXES. Posibilidad de ampliar y adaptar el lenguaje, mediantes ficheros de script y funciones .m.
4
Procesamiento de imágenes
Ventajas Ventajas Amplio soporte matemático Alta precisión Amplio soporte de funciones ya desarrolladas Rápido prototipado Integración con dispositivos hardware Una comunidad muy extendida Magnífica ayuda Comercial • Operaciones con matrices y vectores
5
Procesamiento de imágenes
Funciones de librería Otros tipos de datos en MATLAB: cadenas, hipermatrices, estructuras, celdas Programación en MATLAB Generación de documentación HTML automáticamente Gráficos bidimensionales Gráficos tridimensionales Interfaces de usuario en MATLAB Generación de programas autónomos Interacción de MATLAB con Office y Visual Basic Librerías de interés práctico: optimización, análisis estadístico, redes neuronales, lógica difusa, ajuste de curvas, sistemas de control, control predictivo, análisis financiero, análisis de series temporales financieras, conexión a bases de datos, generación de informes, sistemas eléctricos de potencia, modelos cuantitativos de energía, etc.
Tipos de datos que maneja MATLAB
6
Procesamiento de imágenes
Cuando se ejecuta el comando help datatypes La respuesta es una lista de los comandos relacionados con todos tipos de datos y de las estructuras que se pueden manejar double y char. La clase double es adecuada para representar cantidades numéricas, que pueden ser números enteros o racionales. Obsérvese que, a diferencia de lo que ocurre en FORTRAN y otros lenguajes de programación, para los enteros no se hace uso de una clase de datos diferenciada. La equivalencia es la de doble precisión en FORTRAN. Además de identificar clases de datos. double y char son órdenes de MATLAB que sirven para convertir los datos de una clase a otra, como veremos más adelante. Existen tres parámetros que gobiernan la precisión del trabajo numérico de MATLAB: Realmin La más pequeña cantidad de punto flotante normalizada. 2.2251e-308 Realmax La más grande cantidad de punto flotante normalizada. 1.7977e+308 Eps Precisión relativa de punto flotante 2.2204e-016 Es posible obtener cantidades más pequeñas que realmin y más grandes que realmax , pero no se consideran numéricamente estables (normas IEEE). La cantidad eps se utiliza como tolerancia por defecto en diversas funciones de MATLAB. Con independencia de la representación interna de cada cantidad, se puede seleccionar el formato de visualización mediante el comando format, que permite, entre otras posibilidades, ver 4 dígitos después del punto decimal ( format short, que es la opción por defecto), 15 dígitos (format long) o dos dígitos después del punto decimal (format bank). Para cantidades muy grandes o muy pequeñas, la opción e fuerza la aparición de la notación exponencial (format short e, format long e). La clase char se usa para almacenar cadenas de caracteres.
7
Procesamiento de imágenes
Antes de seguir, conviene subrayar un concepto fundamental. La denominación MATLAB es un acrónimo de MATrix LABoratory. De aquí podríamos deducir que esta herramienta trabaja bien con matrices. Sin embargo, hay algo más: TODAS las clases de datos están organizadas como matrices. Por ejemplo, incluso en el caso de manejar una cantidad numérica, estamos manejando una matriz de una fila y una columna
La introducción de valores en variables double o char se efectúa atribuyéndoles un nombre y, eventualmente, por asignación. Para construir el nombre de una variable se escribe una cadena de caracteres, letras minúsculas y mayúsculas y números, evitando comenzar por un número: Como es habitual en otros lenguajes, los valores de las cadenas de caracteres se entrecomillan. En la sección siguiente veremos cómo MATLAB almacena, durante el tiempo que dure la sesión de trabajo, los nombres y los valores de estas variables. El conjunto de caracteres válidos para construir nombres de variables incluye el carácter ‘_’. Como en la mayoría de los lenguajes de programación, en MATLAB existe un cierto número de nombres reservados, que caracterizan funciones o valores uso frecuente.
Ambiente de trabajo de MATLAB Las ventanas que
forman parte del
entorno
de trabajo
de
Matlab
son:
Command Window Se utiliza para introducir órdenes directamente por el usuario (seguidas de enter). Los resultados de las órdenes introducidas se muestran en esta misma pantalla. Cuando las órdenes se envían desde un programa previamente escrito, que en Matlab recibe el nombre de M-file, los resultados también aparecen en esta ventana.
8
Procesamiento de imágenes
Command history: Las órdenes introducidas en la ventana command window quedan grabadas en esta ventana, de forma que, haciendo doble click sobre ellas, las podemos volver a ejecutar. De la misma forma, si nos situamos en la ventana command window, en el espacio reservado para introducir nuevas órdenes, i.e. inmediatamente después de >>, y presionamos la tecla ↑, podemos acceder a órdenes introducidas con anterioridad.
9
Procesamiento de imágenes
Workspace: Esta ventana contiene las variables (escalares, vectores, matrices, ...) creadas en la sesión de Matlab. La ventana workspace nos proporciona información sobre el nombre, dimensiones, tamaño y tipo de variable. Existen dos opciones para eliminar una variable: a) Introducir en command window el comando clear seguido del nombre de la variable. b) Seleccionar la variable en el workspace y borrarla directamente con la tecla delete.
Current directory: Las operaciones de Matlab utilizan el directorio seleccionado en current directory (a través del botón para explorar) como punto de referencia. Por ejemplo, si guardamos una serie de variables con el comando save, se guardan en el directorio en el que estemos trabajando. Lo mismo ocurre cuando cargamos datos con el comando load: el ordenador busca los datos en el fichero en el que estemos trabajando.
10
Procesamiento de imรกgenes
11