SISTEMA DE APOYO PARA IDENTIFICACIÓN Y ESTIMACIÓN DE VOLUMETRÍA DE... PULMONARES. MANUAL DE ADMINISTRADOR

Anuncio
SISTEMA DE APOYO PARA IDENTIFICACIÓN Y ESTIMACIÓN DE VOLUMETRÍA DE NÓDULOS
PULMONARES.
MANUAL DE ADMINISTRADOR
Pontificia Universidad Javeriana
José Alejandro León Andrade
Ingeniería de Sistemas
2015
1
Contenido
Tabla de ilustraciones.................................................................................................................... 2
1.
CONTEXTO ............................................................................................................................. 3
2.
LIMITACIONES, RESTRICCIONES Y SUPOSICIONES ................................................................ 3
3.
ORGANIZACIÓN DEL CODIGO FUENTE .................................................................................. 3
4.
a.
CONTROLADOR ................................................................................................................. 3
b.
MODELO ............................................................................................................................ 4
c.
VISTA ................................................................................................................................. 7
Typedef usados: .................................................................................................................... 9
Tabla de ilustraciones
Ilustración 1: Estructura del Controlador ...................................................................................... 3
Ilustración 2: Estructura del Modelo ............................................................................................. 4
Ilustración 3: Vista ......................................................................................................................... 7
Ilustración 4: Componente Resources .......................................................................................... 8
2
1. CONTEXTO
En este documento se detallan datos importantes para poder realizar cambios en el sistema en
caso que se requiera.
En caso de querer modificar, eliminar o agregar elementos de software por favor ver antes
(Anexo SRS, SDD, Manual de instalación).
2. LIMITACIONES, RESTRICCIONES Y SUPOSICIONES
-
El sistema actual, está desarrollado con las siguientes versiones de software de
desarrollo:
o
ITK : InsightToolkit-4.7.1
o
VTK: VTK-6.1.0
o
QT: qt-opensource-4.8.6-1
o
Software adicional (Ver Anexo Manual de instalación).
-
Se recomienda usar QT creator para realizar cualquier cambio o actualización.
-
El archivo CmakeList no debería cambiar, siempre y cuando se siga la convención de
organización de los códigos fuentes tal cual está el sistema.
3. ORGANIZACIÓN DEL CODIGO FUENTE
El código fuente está organizado de acuerdo a la arquitectura de Modelo –Vista –Controlador
(MVC). Al ser un proyecto realizado en C++, para cada componente de la arquitectura se tienen
los encabezados (headers) o fuentes (Sources). Cabe recordar que si quiere realizar cambios en
algún método o algún parámetro de una clase debe dirigirse primero a la carpeta Headers (.h)
donde está la clase que desea cambiar y agregar el nuevo método o atributo. Todo lo
relacionado con la lógica debe realizarlo en su respectivo Source (.cpp)
a. CONTROLADOR
Ilustración 1: Estructura del Controlador
3
Está compuesto principalmente por el Coordinator y el main. Tenga en cuenta que para realizar
cambios en el controlador, es porque previamente debió haber hecho un cambio en el modelo.
Además, si se agrega alguna nueva funcionalidad en la vista, se deben agregar los métodos
necesarios en el coordinador con el fin de manejar las nuevas funcionalidades.
La clase main únicamente inicia la aplicación, generalmente los cambios y actualizaciones deben
hacerse sobre el coordinador.
b. MODELO
Ilustración 2: Estructura del Modelo
Está compuesto por las clases que usan exclusivamente filtros de ITK, si desea realizar algún
cambio en la lógica del sistema, debe dirigirse primero al modelo y realizar los cambios que sean
necesarios.
Solamente debe hacer cambios en el modelo si requiere agregar o actualizar funcionalidades
relacionadas con el procesamiento de imágenes médicas.
A continuación se muestran los filtros que se utilizan en cada uno de los métodos de las clases,
con el fin que sea sencillo modificarlas en caso que requiera actualizar la aplicación.

BinaryFilters:
-
orFunction:
o
-
andFunction:
o
-
itk::OrImageFilter
itk::AndImageFilter
closingFilter:
4
-
-
o
itk::BinaryBallStructuringElement
o
itk::BinaryMorphologicalClosingImageFilter
openingFilter:
o
itk::BinaryBallStructuringElement
o
itk::BinaryMorphologicalOpeningImageFilter
notImage:
o
-
-
-

erodeGrayScaleFilter:
o
itk::BinaryBallStructuringElement
o
itk::GrayscaleErodeImageFilter
dilateGrayScaleFilter:
o
itk::BinaryBallStructuringElement
o
itk::GrayscaleDilateImageFilter
dilateFilter:
o
itk::BinaryBallStructuringElement
o
itk::BinaryDilateImageFilter
BoumaMethos:
-
rowWiseMethod:
o
-

typedef itk::ImageDuplicator
clearSmallRegions:
o
itk::BinaryImageToLabelMapFilter
o
itk::LabelMapToLabelImageFilter
o
itk::LabelStatisticsImageFilter
DICOMIOManage:
-
castImage:
o

itk::BinaryNotImageFilter
itk::ImageToVTKImageFilter
DICOMProperties:
-
-
loadValues:
o
itk::ImageSeriesReader
o
itk::GDCMImageIO
o
itk::GDCMSeriesFileNames
o
itk::MetaDataDictionary
o
itk::MetaDataObject
o
itk::MetaDataObjectBase
printMetadata:
5

o
itk::ImageSeriesReader
o
itk::GDCMImageIO
o
itk::GDCMSeriesFileNames
o
itk::MetaDataDictionary
o
itk::MetaDataObject
o
itk::MetaDataObjectBase
ImageFilters:
-
filtroMediana:
o
-
-
regionGrowing:
o
itk::CastImageFilter
o
itk::CurvatureFlowImageFilter
o
itk::ConnectedThresholdImageFilter
binaryThreshold:
o
-
-
-
-
o
itk::BinaryBallStructuringElement
o
itk::GrayscaleErodeImageFilter
dilateFilter:
o
itk::BinaryBallStructuringElement
o
itk::GrayscaleDilateImageFilter
distanceMap:
o
itk::ConnectedComponentImageFilter
o
itk::DanielssonDistanceMapImageFilter
o
itk::RescaleIntensityImageFilter
signedDistanceMap:
-
itk::SignedDanielssonDistanceMapImageFilter
subtractImage:
o
-
itk::MaskImageFilter
erodeFilter:
o
-
itk::BinaryThresholdImageFilter
maskImage:
o
-
itk::MedianImageFilter
itk::SubtractImageFilter
segmentVessels:
o
itk::HessianRecursiveGaussianImageFilter
o
itk::Hessian3DToVesselnessMeasureImageFilter
eigenValuesAnalysis:
6

o
itk::HessianRecursiveGaussianImageFilter
o
itk::SymmetricEigenAnalysisImageFilter
o
itk::ImageDuplicator
o
itk::CastImageFilter
o
itk::RescaleIntensityImageFilter
ImageProcessingUtils:
-
getMaximumValue:
o
-
getMinimumValue:
o
-
-
-
itk::MinimumMaximumImageCalculator
itk::MinimumMaximumImageCalculator
histogram:
o
itk::Statistics::ImageToHistogramFilter
o
itk::Statistics::MaskedImageToHistogramFilter
histogramFilterToVector:
o
itk::Statistics::ImageToHistogramFilter
o
itk::Statistics::MaskedImageToHistogramFilter
getImageEdge:
o
itk::BinaryContourImageFilter
c. VISTA
Ilustración 3: Vista
7
Compuesto exclusivamente por las clases que usan filtros de QT-VTK, si desea realizar algún
cambio en la interfaz gráfica debe realizar primero los cambios que sean necesarios en una de
estas clases.
Si desea modificar elementos a la interfaz gráfica como botones, textos, etc. Debe modificar el
archivo *.ui de la forma que quiera cambiar, mediante el software QT Designer.
Un elemento importante de la vista es el componente “Resources”, donde se guardan y
administran los iconos e imágenes propias de la interfaz gráfica.
Ilustración 4: Componente Resources
8
4. Typedef usados:
Dada la dificultad en los nombres de las variables usadas en ITK y VTK, se suele usar dichas
variables con un nombre alternativo, para ello se usa la palabra reservada en c++ “typedef”
Los typedef usados en el proyecto son principalmente:

Definición de imagen DICOM ITK.
typedef signed short PixelType;
const unsigned int
Dimension = 3;
typedef itk::Image< PixelType, Dimension > ImageType;

Definicion de imagen Binaria
typedef unsigned char PixelBinaryType;
typedef itk::Image<PixelBinaryType, Dimension> ImageBinaryType;

Definicion de imagen de tipo float (para algoritmo de Tubularidad, mapa de distancias
y valores propios)
typedef itk::Image<float, Dimension> ImageFloatType;

Definición de imagen de valores propios.
typedef itk::Vector<double, Dimension> E_PixelType;
typedef itk::Image<E_PixelType, Dimension > E_ImageType;

Definicion de mapa de etiquetas.
typedef itk::BinaryImageToShapeLabelMapFilter<ImageBinaryType>
BinaryImageToShapeLabelMapFilterType;
9
Documentos relacionados
Descargar