Datrix es una app web desarrollada con Python y Streamlit, orientada estudiantes de Ingeniería, Física Médica, Diagnóstico por Imágenes.
Consta de 3 módulos principales:
Permite realizar:
- Operaciones con matrices
- Potencia, producto, suma por un escalar.
- Rango, transpuesta, determinante, inversa, autovalores y autovectores.
- Suma, resta, producto matricial. Producto, cociente bin a bin. Conmutador.
- Resolución de sistemas lineales, ajuste polnómico, ajuste exponencial, interpolación spline. Análisis de curvas, máximo y mínimo absoluto, integración, resolución de ecuaciones no lineales, análisis de Fourier.
Herramientas:
- Imagen con ventaneo (como en imágenes de tomografía).
- Imágenes freme por frame.
- Rotación.
- Brillo y contraste.
- Filtrado espacial: suavizado, realce de bordes, matriz personalizada.
- Filtrado frecuencial: pasa bajos, pasa altos, gaussiano, pasa altos gaussiano, rampa, Parzen, Shepp-Logan, Hann, Hamming, Butterworth.
- Operaciones morfológicas: erosión, dilatación, apertura, cierre.
- Ecualización: global, adaptativa.
- Permite ingresar manualmente el valor de milímetros por píxel.
- Permite trazar una línea sobre la imagen e ingresar a cuantos milímetros equivale la línea.
- Permite visualizar histograma por canales, todos juntos, promedio o escala de grises.
- Permite anaizar por canales.
- Largo del perfil
- Distancias
- FWHM
- Máximo absoluto en una región rectangular.
- Mínimo absoluto en una región rectangular.
- Máxima intensidad.
- Mínima intensidad.
- Media del perfil.
- Integral (área bajo la curva).
- Resolución de ecuación f(x)=p.
- Análisis de Fourier.
- Intensidad media en el ROI.
- Intensidad total en el ROI.
- Área del ROI.
- Diferencia de intensidad media entre ROIs.
- Diferencia de intensidad total entre ROIs.
- Operaciones entre imágenes, regiones: (fusión, intersección, sustracción).
- Permite establecer tiempo por frame.
- Máximo y mínimo absoluto en una región rectangular de la curva.
- Integral (área bajo la curva).
- Resolución de ecuación f(x)=p.
- Análisis de Fourier.
Simulador de reconstrución tomográfica de fantomas matemáticos.
- Filtered Back Projection (FBP)
- Maximum Likelihood Expectation Maximization (MLEM)
- Ordered Subset Expectation Maximization (OSEM)
- Simultaneous Algebraic Reconstruction Technique (SART).
- Computed Tomography (CT)
- Single Photon Emission Computed Tomography (SPECT).
- Ángulo inicial
- Ángulo final
- Paso angular
- Número de iteraciones
- Número de subsets
- Estimación inicial (FBP o imagen en blanco)
- Ruido
- Tratamiento del field of view (FOV)
- N-RMSE vs. número de iteración (con métodos iterativos)
- Log-likelihood vs. número de iteración (con MLEM y OSEM)
- Imagen original sin ruido
- Imagen original con ruido
- Imagen reconstruida
- Imágenes con ventaneo (en modo TC)
- Gif de la reconstrucción (proyección a proyección con FBP, iteración a iteración con métodos iterativos)
- Comparación entre la misma ROI marcada en la imagen original y reconstruida.
- Diferencia de intensidad media.
- Diferencia de intensidad total.
- Error relativo.
- Gráfico del porcentaje de recuperación, diferencia de intensidad media y diferencia de intensidad total en función del número de iteración.
Operaciones con matrices
Ajustes y análisis de curva
Visualizador
Editor
Calibrador
Análisis de Perfil
Curva ROI vs. tiempo
Ejemplo: modo SPECT, método FBP
- Descripción de cada módulo, tutoriales.
- Se añadirá efecto de dispersión a la reconstrucción SPECT.
- Opción para incorporar correción de la atenuación y dispersión a los algoritmos MLEM y OSEM.
- Corrección de la atenuación post-reconstrucción a partir de un mapa de atenuación determinado por FBP.
- Corrección de la atenuación por el método de Chang.
👉 [Ir a app]: https://datrix.streamlit.app/
Este proyecto fue desarrollado en Python utilizando las siguientes bibliotecas:
- Streamlit
v1.45.1
– Framework principal para crear la app web - NumPy – Álgebra lineal y operaciones matriciales
- Matplotlib – Gráficos 2D y visualizaciones
- SymPy – Cálculo simbólico
- SciPy – Métodos numéricos (interpolación, ajuste, resolución de ecuaciones)
- scikit-image – Procesamiento de imágenes
- OpenCV (headless) – Edición y filtrado de imágenes
- Pillow – Manejo de imágenes (carga, guardado, conversión)
- Pydicom – Lectura y análisis de archivos DICOM
- ImageIO – Lectura de imágenes multiformato
- Pandas – Análisis y manipulación de datos
- XlsxWriter – Exportación de datos a archivos Excel
.xlsx
- openpyxl – Lectura y edición de archivos Excel
- streamlit-drawable-canvas
v0.5.2
– Herramienta para dibujar ROIs y anotaciones
David Fernández Basti
Técnico Universitario en Diagnóstico por Imágenes
Estudiante de Ingeniería Nuclear.