CAPÍTULO 1: FUNDAMENTOS DE LA RADIOTERAPIA.
2.3 Arquitectura del Software ATW Image
El sistema de tratamiento de imágenes desarrollado en esta Tesis es una aplicación estándar de Windows® , diseñada para funcionar en la familia
de versiones Windows 9x, por lo que es utilizable en la mayoría de los ordenadores existentes actualmente.
Está basada en un formato de aplicación MDI (Multiple Document Interface), de tal manera que la aplicación se ocupa del manejo y distribución de todas sus ventanas filiales (imágenes) dentro de una ventana principal de aplicación.
La aplicación está programada desde su origen en lenguaje Pascal orientado a objetos utilizando el compilador de 16 bits Borland Pascal With Objects® versión 7 [Borland-1992a], junto con las librerías Objectwindows® [Borland-1992b] de programación del API (Application Programming Interface) de Windows. El sistema está siendo migrado actualmente a un entorno de 32 bits, programado con el compilador visual Borland Delphi® 4.
El sistema no impone ninguna limitación en cuanto al número de imágenes mostradas simultáneamente ni a su tamaño individual. El único límite a este respecto es la memoria del ordenador donde se ejecuta.
ATW gestiona imágenes monocromas de 8 y 16 bits por píxel e imágenes de color de 24 bytes (RGB). Adicionalmente se ha definido un tipo de imagen propio de números complejos con 64 bits por píxel.
Las estructuras de datos empleadas para cada tipo de imagen son:
• 8 bits por píxel: array[0..N,0..M] of Byte (valores 0..255)
• 16 bits por píxel: array[0..N,0..M] of word (valores 0..65535)
• Números complejos: Array[0..N,0..M] of complex
Siendo Complex un tipo de dato definido como
Type Complex=array[1..2] of single
El primer elemento del array Complex contiene la parte real del número complejo y el segundo elemento la parte imaginaria. El tipo single
admite valores reales entre 1.5e-45..3.4e38, con 7-8 dígitos de precisión y ocupa 4 bytes.
Siendo RGB un tipo definido como
Type RGB=Array[1..3] of byte
con el valor Rojo en el primer elemento de matriz, el color Verde en el segundo y el Azul en el tercero, codificados a 8 bits por pixel.
Las imágenes monocromas deben convertirse obligatoriamente a 8 bits para su representación gráfica. Esto es debido a que los sistemas de visualización sólo admiten 256 niveles simultáneos de intensidad lumínica por canal de color.
Para acomodar 10 o más bits en una representación de 8 bits, ATW degrada la imagen a 8 bits para su visualización, manteniendo una copia íntegra de la imagen en memoria. De esta forma no se pierde información, aunque no se puede visualizar todo el rango de la imagen simultáneamente. La visualización de estas imágenes debe realizarse a tramos, utilizando sistemas de selección de nivel y entorno de visualización sobre el rango completo de 16 bits.
El software admite lectura de varios formatos de ficheros estándar (TIFF, BMP y JPEG). Las imágenes de 16 bits se leen como ficheros raw1 o como TIFF modificado, debido a la práctica inexistencia de formatos estándar de 16 bits [Kay-1992]. Se ha realizado una implementación original del estándar DICOM 3 para imágenes médicas. Debido a la importancia de este formato en medicina, se dedica la sección 2.4 a su descripción e implementación. Las imágenes se pueden adquirir también directamente de digitalizadores tipo escáner utilizando el estándar TWAIN (http://www.twain.org).
A nivel de programación, el núcleo del sistema está constituido por un objeto descendiente del objeto genérico TWindow del API de Windows, encargado del manejo de todas las propiedades visibles de la ventana (tamaño y color del bitmap, fuentes de texto, manejo de impresora etc [Adams-1993]).
1
Se trata de un fichero binario sin cabeceras, en el que los valores de los píxeles se escriben de forma secuencial, fila a fila.
De este objeto, denominado BasicWin, descienden otros objetos que dan forma a los distintos tipos de imágenes que soporta ATW.
Objeto
BASICWIN
(gestión del Bitmap)
Twindow (API) Objeto Win8bits (imagen 8 bits) Objeto Win16bit (imagen 16 bits) Objeto WinComp (imagen complejos) Objeto WinRGB (imagen True Color)
Figura 2-5. Estructura y herencia de los objetos de imágenes definidos en ATW Image.
El sistema aprovecha las propiedades de herencia de los objetos [Alfonseca-1992], por lo que los descendientes carecen de utilidades de manejo de ventana, ya que de esas tareas se encarga su antecesor BASICWIN. Los métodos de los objetos descendientes contienen las rutinas de cálculo adaptadas para cada tipo de imagen.
Esta filosofía de programación facilita la inclusión de cualquier tipo nuevo de imagen de manera sencilla y rápida, y por tanto el sistema mantiene una estructura evolutiva.
La aplicación principal consta de aproximadamente 53.000 líneas de código compiladas, junto con otras 2.000 líneas compiladas en forma de librerías de enlace dinámico (Dynamic Link Libraries, DLL).
Una descripción exhaustiva de este software resultaría excesivamente voluminosa, por lo que se ha decidido incluir el software completo en formato ejecutable en el CD-ROM adjunto como apéndice en el Libro 2 de esta memoria. Se incluye asimismo una copia escrita del fichero de ayuda en línea de la aplicación, en la que se puede consultar todas las funciones disponibles en el sistema.
El software completo está a disposición de la comunidad científica en términos de freeware a través de la dirección de internet
De forma esquemática, la aplicación de tratamiento de imágenes consta de las siguientes áreas:
Lectura y escritura de ficheros.
• Formatos estándar de lectura: TIFF, BMP, JPEG, DICOM 3.
• Formatos estándar de escritura: TIFF, BMP, JPG.
Utilidades de edición.
• Exploración en tiempo real del valor de la imagen píxel a píxel a medida que se desplaza el cursor por la imagen. Visualización de un entorno de valores alrededor de un punto central (vecindad).
• Definición y superposición de rejillas
rectangulares definibles por el usuario.
• Definición de marcadores (localizadores) gráficos superpuestos a la imagen.
• Cálculo de isolíneas.
• Definición, grabación, extracción y recuperación de Regiones de Interés (ROI) rectangulares o poligonales dentro de las cuales se realizan los procesados de imagen.
Estadística.
• Estadística básica de la imagen o de la ROI (máximo, mínimo, media etc.).
• Características de ROI poligonales (área y perímetro).
• Cálculo y visualización del histograma de la imagen. Visualización dinámica en la imagen de los puntos correspondientes a los distintos niveles del histograma. Cálculo del histograma acumulado.
• Perfiles de valores de la imagen representados en tiempo real, en direcciones perpendicular, horizontal u oblicuos con angulación libre. El valor de los perfiles se puede inspeccionar punto a punto.
• Exportación de datos a ficheros ASCII compatibles con hojas de cálculo y paquetes estadísticos.
Operaciones con imágenes.
• Operaciones aritméticas punto a punto entre imágenes del mismo tipo y tamaño (suma, resta, multiplicación, superposición, operaciones lógicas).
• Operaciones aritméticas punto a punto de una imagen con una constante (suma, multiplicación, operaciones lógicas).
• Operaciones geométricas o Giro libre,
o Traslación en dos ejes,
o Inversión horizontal y vertical, o Trasposición,
o Corrección geométrica genérica (spatial warping).
• Remuestreo (cambio de tamaño interpolado).
• Normalización del histograma.
• Conversión entre tipos de imágenes o 8 bits a 16 bits y vv,
o 8 bits a complejos y vv, o 16 bits a complejos y vv, o RGB a 8 bits (tonos de gris).
• Morfología matemática en tonos de gris o Erosión,
o Dilatación,
o Apertura (opening), o Cierre (closing),
o Gradiente morfológico.
• Filtros lineales (máscaras de convolución para realce y extracción de bordes, suavizado etc.).
• Filtros no lineales o Promedio (average), o Mediana,
o Moda,
• Operaciones con imágenes de complejos o Transformada Rápida de Fourier (FFT), o Transformada inversa de Fourier,
o Normalización,
o Cálculo del conjugado,
o Multiplicación de imágenes de complejos.
• Lenguaje de scripts.
Funciones de visualización (Tablas).
• Inversión.
• Establecimiento dinámico de umbrales.
• Modificación del rango y pendiente de la función de visualización (Tablas rampa).
• Modificación libre de la forma de la función de visualización (Tablas variables).
• Ecualización del histograma.
• Seudocolor automático y manual.
• Modificación basada en histograma del nivel y ventana en las imágenes de 16 bits y complejos.
Miscelánea.
• Impresión de imágenes con escala exacta.
• Adquisición de imágenes de escáner utilizando el protocolo estándar TWAIN.
• Información completa de los Tags DICOM.
• Menús multilingües (Castellano, Inglés y
Valenciano).