viernes, noviembre 30, 2012

Detectores en mamografía digital

  Los detectores empleados en mamografía digital están compuestos generalmente por elementos discretos, llamados dels (que viene de detector element). Los dels tienen una zona activa y una zona muerta, esta última se emplea para realizar las conexiones entre los diferentes elementos o para colocar componentes adicionales. La dimensión del área activa de cada del define el "ancho de la apertura" y tiene un impacto en la resolución espacial del detector. El pitch o "intervalo de muestreo" entre dels también tiene un impacto en la resolución. En la Figura 1 se muestra un esquema de la apertura y el pitch de los dels que componen un detector digital. 



Figura 1. Apertura y pitch de los elementos discretos de un detector digital.


   En un detector ideal, la distancia entre dels es idéntica al ancho de la apertura, y a su vez, éste es igual al ancho del del. Esto equivale a decir que cada fotón es detectado completa y únicamente por un solo del. En un detector no ideal el ancho de la apertura es mayor que el ancho del del, por lo tanto un fotón es detectado por varios dels. De este modo, durante la adquisición de la imagen se dan dos procesos diferentes dominados (o limitados) ya sea por el ancho de la apertura o por el pitch:
  • El muestreo de la señal se realiza con una distancia de muestreo igual a la distancia entre los centros de cada del, es decir, el pitch
  • El promedio de la señal está determinado por el ancho finito de la apertura.

   El pitch (p) del detector determina la frecuencia más alta que puede ser muestreada. Este límite se conoce como límite Nyquist o frecuencia Nyquist: 

fNyq = 1/2p 

El teorema de muestreo de Nyquist establece que solamente frecuencias espaciales por debajo del límite Nyquist en la señal serán fielmente muestreadas (como se menciona en la entrada anterior). Si la señal contiene frecuencias más altas, ocurre aliasing debido a que el espectro de frecuencias de la señal más allá de la frecuencia Nyquist es reflejado alrededor de esa frecuencia y añadido al espectro de bajas frecuencias.  

Referencias: el Handbook y el Bushberg
1. Bushberg JT, Seibert JA, Leidholdt EM, Boone JM. The Essential Physics of Medical Imaging. Lippincott Williams and Wilkins. Second Edition. Philadelphia, 2002.
2. Yaffe MJ. “Digital Mammography”, in Handbook of Medical Imaging, Vol. 1, Physics and Psychophysics, edited by J. Beutel, H.L. Kundel y R.L. Van Metter, Bellingham, WA. SPIE Press, 2000; 329-372.

Más INFO

  • Si desean conocer un poco más sobre las diferentes tecnologías y equipos de mamografía digital disponibles, les dejo la siguiente referencia (muy completa): Chevalier M, Torres R. Mamografía Digital. Rev. Fís. Med., 2010; 11: 11-26.

Muestreo, aliasing y teorema de Nyquist

   Ya hemos hablado un poco sobre los tipos de imágenes, ahora vamos a centrarnos en el proceso de la adquisición, es decir, en el muestreo y en procesos asociados a éste, como el aliasing o "enmascaramiento". Aunque nos enfocamos en imágenes (sistemas espaciales 2D), los conceptos aquí discutidos aplican también para otro tipo de señales (temporales 1D, etc). 

Muestreo (sampling) y aliasing en imágenes digitales 

   En la formación de una imagen digital ocurre un proceso de muestreo (sampling), en el cual un objeto (identificado también como una función continua) es muestreado para obtener su imagen digital (obteniendo así una función discreta). El muestreo puede describirse a partir de la función delta de Dirac o función impulso. De este modo, el proceso de muestreo se realiza como se ejemplifica en la Figura 1. 

   En la parte izquierda de la Figura 1 se presentan las funciones en el dominio espacial y en la parte derecha se muestra la magnitud de la transformada de Fourier de cada función, en el dominio de la frecuencia. En la Figura 1a se muestra la señal de entrada, representada por la función continua ac(x), en la Figura 1b aparece la función discreta de muestreo i(x), la cual consiste en una serie de funciones delta escaladas; en la Figura 1c aparece la función discreta a(x) como resultado del proceso de muestreo. En la Figura 1e se muestra la señal reconstruida a partir del filtro de reconstrucción mostrado en la Figura 1d; se observa que la señal reconstruida es igual a la señal original. 

   
Figura 1. Proceso de muestreo sin aliasing. (a) Función continua ac(x), (b) función de muestreo discreta i(x), (c) función muestreada a(x), (e) señal reconstruida = señal original, (d) filtro de reconstrucción.


  La frecuencia a la cual se realiza el muestreo, ws, es importante ya que de ella depende que se presenten o no fenómenos espectrales como el aliasing. El aliasing ocurre cuando al muestrear la señal, la transformada de Fourier Ac(w) de la función original tiene componentes que se extienden más allá de ws/2, como se muestra en la Figura 2a y 2b. Esto ocasiona que las réplicas espectrales de la función muestreada se traslapen, como se observa en la Figura 2c. Por lo tanto, al reconstruir se obtiene una señal que es un alias de la señal original, como se muestra en la Figura 2e.


Figura 2. Proceso de muestreo con aliasing. (a) Función continua ac(x), (b) función de muestreo discreta i(x), (c) función muestreada a(x), (e) señal reconstruida = señal alias, (d) filtro de reconstrucción.


Teorema de muestreo de Nyquist

   Lo anterior da lugar al teorema de muestreo de Nyquist: 

Cualquier función limitada en banda, sin componentes en frecuencia que se extiendan más allá de Wmáx, puede ser completamente determinada a partir de un conjunto de muestras discretas si es muestreada a una frecuencia mayor que dos veces Wmáx.

  El teorema de muestreo establece así la condición que se debe de cumplir para que no exista aliasing: el muestreo debe realizarse a una frecuencia ws mayor o igual que el doble del máximo componente en frecuencia de la señal original. Es importante destacar que el muestreo, como se ha definido hasta aquí, no representa propiamente un proceso físico de medición, ya que en éste la función de muestreo asociada debe incluir una extensión espacial finita que refleje la resolución del detector empleado en la medición. La función delta empleada para el muestreo en las figuras anteriores puede ser interpretada como una función ideal de ancho infinitesimal, pero el muestreo físico es realizado usando funciones menos ideales. Para saber un poco más sobre la medición física en detectores digitales dar clic aquí.

Referencia: el handbook
Cunningham IA. “Applied Linear-Systems Theory”, in Handbook of Medical Imaging, Vol. 1, Physics and Psychophysics, edited by J Beutel, HL Kundel and RL Van Metter, Bellingham, WA. SPIE Press, 2000; 79-159.

miércoles, noviembre 28, 2012

Tipos de imágenes

  Para evaluar la calidad de imagen de manera objetiva se usan ciertas funciones matemáticas cuya expresión varía según el tipo de imagen a analizar, por esto es de suma importancia identificar el tipo de imagen con el que se va a trabajar para evaluar su calidad de manera correcta.

  En un sistema de adquisición de imágenes (una cámara fotográfica, telescopio o máquina de rayos X, por ejemplo) la información de entrada es una distribución de fotones; mientras que la información de salida (llamada imagen) puede ser de diferentes tipos. Si se emplea un sistema pantalla-película como receptor de imagen, como lo hacen los equipos de rayos X convencionales, la salida será una distribución de densidades ópticas en la película. Si se emplea un detector digital como en las cámaras fotográficas digitales, la salida será una matriz de valores digitales (números). De este modo, las imágenes tienen diferentes unidades y significado físico, por lo cual el tratamiento matemático es diferente para cada una de ellas.


Imagen analógica, imagen digital e imagen cuántica

   El término imagen analógica se usa para describir una función de muestreo que varía espacialmente, sus unidades son arbitrarias y el ejemplo característico es la densidad óptica de una película radiográfica. Una imagen digital consiste en un arreglo n-dimensional de valores numéricos discretos, el nivel de gris de un píxel en la imagen, por ejemplo. Una imagen cuántica se refiere a la distribución espacial de fotones, denominada fluencia, por lo cual sus unidades son 1/área. 

  Adicionalmente, es posible pasar de un tipo de imagen a otro. Lo único que se necesita es una función de transformación, que puede ser lineal o no. En radiodiagnóstico a esta función se le conoce como signal transfer property (STP), algunos ejemplos de esto son:

- STP en mamografía digital: Los valores de píxel se transforman a valores de fluencia mediante una STP del tipo:

MPV = a*DAK + b,

que relaciona linealmente el kerma en aire medido en la superficie del detector (DAK, detector air-kerma) y el valor medio de píxel (MPV, mean pixel value), las constantes a y b son parámetros de ajuste. De este modo, al aplicar la STP a la imagen digital obtenemos una imagen cuántica. 


- STP en tomografía computarizada (CT): En las imágenes de CT el valor de píxel está expresado en unidades Hounsfield, la STP empleada para obtenerlos es: 



HU representa las unidades Hounsfield y los otros dos términos corresponden a los coeficientes lineales de atenuación del agua y del medio X que atraviesa la radiación para la formación de la imagen.

  Por supuesto, cómo obtener la STP de un sistema de imagen depende del sistema y qué tipo de imagen se quiere obtener al final. Eso será discutido en otra entrada.


Referencia: el handbook
Cunningham IA. “Applied Linear-Systems Theory”, in Handbook of Medical Imaging, Vol. 1, Physics and Psychophysics, edited by J Beutel, HL Kundel and RL Van Metter, Bellingham, WA. SPIE Press, 2000; 79-159.

martes, noviembre 27, 2012

Matlab y Excel

   Esta mañana asistí a un webinar (seminario por internet) acerca del uso de Matlab y Excel. Me interesó porque Excel es una herramienta que empleo comúnmente para almacenar y manejar datos, y uso Matlab para su análisis, procesamiento y presentación. Aprendí algunas cosas útiles que me gustaría compartir. Antes de empezar les comento que la versión de Matlab que tengo es Matlab 7 (7.1.0.446 Release 14, SP3), y trabaja con archivos .xls (Excel 97-2003). Aunque son versiones no tan actuales son completamente funcionales. 

   El tema principal fue cómo importar a Matlab los datos guardados en una hoja Excel, para aprovechar las herramientas de análisis y visualización que ofrece el Matlab. Esto se hizo de dos maneras:
  • Importando directamente desde Matlab con "Import Data..."
  • Usando la función "putmatrix" del complemento Spreadsheet de Matlab para Excel, directamente desde Excel


   Lo interesante de escribir aquí mi experiencia es que en el webinar usan versiones mucho más recientes de estos programas y por tanto la interfaz es un poco diferente (probablemente las opciones son más avanzadas en su caso), pero sí es algo posible de realizar y por eso quiero compartirlo. Ojalá les sea útil. 


Datos de Excel a Matlab con "Import Data...", desde Matlab

   Iniciamos trabajando con un archivo Excel 97-2003. En este caso el archivo se llama datosMTF.xls y se muestra en la Figura 1. Las primeras 4 filas son los encabezados y tiene 7 columnas de datos. 


Figura 1. Archivo Excel 97-2003.


   El primer paso consiste en abrir Matlab y en la parte de arriba, en "Current Directory" ponemos la ubicación de la carpeta donde está guardado el archivo Excel (o copiamos el archivo Excel a la carpeta "Work" para trabajar en ella, eso es según su preferencia, yo elegí la primera opción). La ruta en mi caso es C:\Users\LIZ\Documents\divulgacion, como se muestra en la Figura 2. Esta figura es importante porque muestra el entorno de Matlab: la pestaña "Current Directory" de la izquierda muestra las carpetas y archivos contenidos en la ruta seleccionada, la pestaña "Workspace" muestra las variables que hayamos definido, la pestaña "Editor" muestra los scripts que tengamos abiertos, la pestaña "Array Editor" muestra las variables en forma de matrices o vectores, "Command History" da una lista de todos los comandos que hayamos empleado, los cuales se escriben en "Command Window". 

Figura 2. Entorno del Matlab.


   Ya que vemos que aparece el archivo datosMTF.xls debajo de "All files" en "Current Directory", el paso siguiente es seleccionarlo, dar clic con el botón derecho y seleccionar "Import Data...". Se abre una ventana como la mostrada en la Figura 3 y tenemos dos opciones: Crear variables igualando el preview que muestra Matlab, o Crear vectores de cada columna. La opción a elegir depende de lo que planeen hacer con los datos. Si elegimos la primera opción, como en la Figura 3, las variables que podemos importar son 3, pero sólo una tiene los datos numéricos que nos interesan: "data", de 21 filas y 7 columnas.


Figura 3. Importar variables igualando el preview.


   Elijamos la primera opción e importemos la variable "data". Debemos recordar que la primera columna corresponde a los valores de frecuencia y podemos extraerla (o guardarla) a una nueva variable llamada "frec", para esto se escribe lo siguiente en "Command Window" (sin >>):

>> frec = data(:,1);



Los dos puntos indican que se tomen todas las filas (sin importar cuántas sean), y el 1 indica que se tome únicamente la primera columna de "data". Para graficar las otras columnas que corresponden a los datos escribimos:

>> plot(frec,data(:,2:7))


donde frec representa los datos del eje X, y las columnas 2 a 7 de "data" son los valores del eje Y. Después de un poco de arreglo usando las "Plot Tools" (ícono rodeado por un recuadro rojo en la Figura 4) directamente desde la ventana de la figura, podemos obtener gráficas como la mostrada en la Figura 4.


Figura 4. Gráfica de los datos.


   Si quisieran extraer todas las columnas de datos de manera separada, el comando sería (para la tercera columna, por ejemplo):

>> datos84 = data(:,3); 



   Sin embargo, esto es mucho más fácil de realizar seleccionando la segunda opción del cuadro de diálogo en "Import Data", como se muestra en la Figura 5. De este modo tenemos los datos separados en 7 variables de tipo vector, cuyo nombre es el encabezado de cada columna en el archivo. 

Figura 5. Importar variables usando las columnas.

   En este caso se facilita el manejo y análisis de los datos por columna, pero si queremos graficarlos como en la Figura 4 necesitamos escribir más líneas que en el caso anterior, por ejemplo:

>> figure, plot(Frecuencia, x55MGy), hold on

>> plot(Frecuencia, x84MGy),
>> plot(Frecuencia, x112MGy),
 ...
>> plot(Frecuencia, x272MGy), hold off



   El comando "figure" abre una ventana nueva para la gráfica, plot(Frecuencia, x55MGy) es la primera gráfica que se realiza, el comando "hold on" indica que los nuevos datos se grafiquen en la primera gráfica y "hold off" se usa para indicar que ya no se añadan datos a la primera gráfica.
   Como ven, la opción que elijan para importar depende de qué quieran hacer con sus datos. La primera es ideal para graficar, la segunda ideal para analizar datos, pero a fin de cuentas las dos son equivalentes.

Datos de Excel a Matlab con "putmatrix", desde Excel

   Matlab cuenta con un componente llamado "Excel Link" que crea en las hojas de datos de Excel unos botones para importar datos a Matlab, entre otras cosas. Para activar este componente debemos hacer lo siguiente: primero abrir Excel, luego dar clic en el botón de Office ubicado en la esquina superior izquierda de la hoja, se abre un cuadro, dar clic en "Opciones de Excel" que se encuentra en la parte inferior del cuadro, seleccionar "Complementos" de la lista de la izquierda. En la parte de abajo aparece "Administrar", seleccionar "Complementos de Excel" y luego dar clic en "Ir". Dar clic en "Examinar" y seguir la siguiente ruta: Equipo> C> Archivos de programa> MATLAB> toolbox> exlink> excllink.xla
   Seleccionar el archivo excllink.xla, dar clic en aceptar, te regresa a la ventana Complementos y aparece "Excel Link 2.3 for use with MATLAB", dar clic en aceptar. En el archivo Excel aparece una nueva pestaña llamada Complementos, que incluye cuatro botones (ver Figura 6): startmatlab, putmatrix, getmatrix y evalstring.

Figura 6. Complemento de Matlab para Excel.

   En mi caso, los botones son muy simples (e incluso sin formato, diría yo), pero con la versión 2012 de Matlab se crea una imagen del ícono de Matlab que despliega un menú (con las mismas opciones) cuando se selecciona. 

  El botón "startmatlab" abre el programa de Matlab, aunque en mi caso (después de haber añadido el complemento), cada vez que abro un archivo Excel el Matlab se abre solito, pero puedo cerrarlo y seguir trabajando sólo con Excel. Sin embargo, cuando quiero empezar a usar los componentes me pide permiso para iniciar Matlab.

   El botón "putmatrix" sirve para exportar los datos de Excel a Matlab. Primero hay que seleccionar los datos, luego se da clic al botón y aparece un cuadro pidiéndonos ingresar el nombre de la variable que llevarán los datos a exportar. Esto nos da la libertad de seleccionar y exportar los datos como mejor nos acomode, como en el caso anterior con "Import Data", ya que podemos seleccionar todas las columnas (sólo los números) o podemos hacerlo fila por fila.

   El botón "getmatrix" nos permite importar datos de Matlab a Excel. Después de seleccionar este botón, se nos pide el nombre de la variable a importar, al dar aceptar copia los datos (vector o matriz) en la celda que esté seleccionada en ese momento. Y así se puede trabajar en Excel con datos de Matlab.

   El botón "evalstring" pide un comando de Matlab para "evaluar" en Matlab. Hasta ahora lo he probado poco y al menos el comando "clc" (que borra los comandos que aparecen en command window) sí funciona.

  Hasta aquí lo aprendido en el webinar. Considero que son herramientas útiles para manejar datos de manerá más dinámica, pero tampoco hay que olvidar los comandos "xlswrite" y "xlsread" (que uso con frecuencia) que podemos emplear para escribir y leer, respectivamente, hojas Excel desde Matlab. ¡Hasta pronto, y ojalá les sirva! 

Más INFO

L'essentiel est invisible pour les yeux.