Está en la página 1de 22

Anexo A.

Manual de usuario
CIMAHIS CIMAHIS (Caracterizacin de IMAgenes HIStolgicas) es una aplicacin para experimentacin de mtodos de caracterizacin y apoyo al diagnstico y pronstico en imgenes de cortes histolgicos de lesiones mamarias. En la siguiente ilustracin se muestran las partes de CIMAHIS

Figura A.1 Ventana principal CIMAHIS Fuente: Hernndez (2011)

96

Configuracin de Plantilla Wavelet Discreta:


Esta opcin se utiliza para Cargar una Plantilla Wavelet y configurar los parmetros necesarios para visualizar la Transformada Wavelet Discreta de una imagen. Para configurar una plantilla de Transformada Wavelet debe hacer lo Siguiente: Abrir la imagen a la que desea aplicarle la Transformada Wavelet. Haga clic en el men Procesamiento y, a continuacin, haga clic en el

submen Textura y seguidamente en el submen Wavelets, haga clic en Configurar Wavelet, tal como se muestra en la Figura A.2, tambin puede acceder a esta opcin presionando Shift+Ctrl+C, otra opcin sera pulsando el botn que encuentra en la barra de herramientas. Luego se abrir la

ventana de configuracin, tal como muestra la Figura A.3

Figura A.2 Jerarqua de mens para realizar Configurar Wavelet. Fuente: Datos del Autor (Florio, 2011)

97

Figura A.3 Ventana para Configurar Wavelet. Fuente: Datos del Autor (Florio, 2011) Donde: 1.- Es el Botn para Cargar la Plantilla. 2.- Es la Ruta de la Plantilla que se Carg. 3.- Son los Niveles de descomposicin que se desean realizar a la imagen. 4.- Es el Modo de Escalamiento para observar la imagen. 5.- Redimensionar la imagen a una imagen Cuadrada. 6.- Muestra el estatus de la Plantilla

98

7.- Muestra una Vista Previa de la Plantilla Cargada. 8.- Botn para Guardar la Transformada Wavelet Discreta de una imagen. 9.- Ruta del Archivo de Salida 10.- Tipo de Codificacin de la Plantilla (para indicar como se visualizaran los nmeros decimales de los resultados, ya sea un punto decimal o una coma decimal, esto con el fin de adaptarse a las distintas configuraciones de separador decimal y separador de miles.) 11.- Vista Previa de la Codificacin. Seleccionar Cargar (1), buscar la Plantilla de su preferencia y configurar los dems parmetros a conveniencia (Niveles (3), Escalado (4) y Redimensionamiento (5)). Despus de hacer todos los ajustes, se selecciona el botn Aceptar para guardar la configuracin.

Transformada Wavelet Discreta


Para obtener la Transformada Wavelet Discreta siguiente: Previamente Cargar una imagen y Configurar la Plantilla de la de una Imagen debe hacer lo

Wavelet.

99

Seleccionar la ventana con la imagen a la cual desea obtener su

Transformada Wavelet Discreta. Haga clic en el men Procesamiento, a continuacin, haga clic en el

submens Textura y seguidamente en el submen Wavelets, finalmente en Transformada Wavelet Discreta, tal como se muestra en la Figura A.4, tambin puede acceder a esta opcin presionando Shift+Ctrl+W, otra opcin sera pulsando el botn que encuentra en la barra de herramientas

(adicionalmente, este botn, crea una nueva ventana en la aplicacin con la Transformada Wavelet Discreta de la imagen seleccionada)

Figura A.4 Jerarqua de mens para realizar Transformada Wavelet Discreta. Fuente: Datos del Autor (Florio, 2011)

Transformada Wavelet Discreta Inversa

100

Para obtener la Transformada Wavelet Discreta Inversa de una imagen debe hacer lo siguiente: Previamente obtener la Transformada Wavelet Discreta a una Imagen. Seleccionar la ventana de la Transformada Wavelet a la cual queremos

realizarle la Transformada Wavelet Discreta Inversa. Haga clic en el men Procesamiento y, a continuacin, haga clic en el

submens Textura y seguidamente en el submen Wavelets y finalmente en Transformada Wavelet Discreta Inversa, tal como se muestra en la Figura A.5, tambin puede acceder a esta opcin presionando Shift+Ctrl+I, otra opcin sera pulsando el botn que encuentra en la barra de herramientas

(adicionalmente, este botn, crea una nueva ventana en la aplicacin con la Transformada Wavelet Discreta de la imagen seleccionada).

Figura A.5 Jerarqua de mens para realizar Transformada Wavelet Discreta Inversa. Fuente: Datos del Autor (Florio, 2011)

101

Guardar Archivo de Salida de la Transformada Wavelet Discreta


Para guardar la Transformada Wavelet Discreta de una Imagen debe hacer lo siguiente: Seleccionar la ventana de la Transformada Wavelet la cual queremos guardar. Haga clic en el men Procesamiento y, a continuacin, haga clic en el

submens Textura, seguidamente en el submen Wavelets y finalmente en Configurar Wavelet, tal como se muestra en la Figura A.2, tambin puede acceder a esta opcin presionando Shift+Ctrl+C, otra opcin sera pulsando el botn que

encuentra en la barra de herramientas. Luego se abrir la ventana de configuracin, tal como muestra la Figura A.3. Seleccionar la opcin de la Representacin Decimal (Coma Decimal o Punto

Decimal (10). Luego Hacer clic en Guardar (8), y proceder a buscar la ubicacin, nombre de preferencia y hacer clic nuevamente en Guardar, espere mientras se guarda la Transformada y en lo que aparece el nombre en el cuadro de texto (9) puede Seleccionar Aceptar para cerrar la ventana.

Calcular Rasgos de Textura de la Transformada Wavelet


Para Calcular los Rasgos de Textura de la Transformada Wavelet Discreta se debe hacer lo siguiente:

102

Seleccionar la Ventana de la Transformada Wavelet a la cual le queremos

calcular los Rasgos de Textura. Haga clic en el men Anlisis y, a continuacin, haga clic en el submens

Rasgos de Textura y seguidamente en el submen Wavelets y finalmente en Calcular Rasgos de Textura, tal como se muestra en la Figura A.6, tambin puede acceder a esta opcin presionando Shift+Ctrl+R, otra opcin sera pulsando el botn que encuentra en la barra de herramientas.

Figura A.6 Jerarqua de mens para realizar Calcular Rasgos de Textura. Fuente: Datos del Autor (Florio, 2011)

Guardar Rasgos de Textura de la Transformada Wavelet


Para guardar los Rasgos de Textura de la Transformada Wavelet Discreta se debe hacer lo siguiente:

103

Seleccionar la ventana de la Transformada Wavelet a la cual previamente

se le realizado Calcular Rasgos de Textura. Haga clic en el men Anlisis y, a continuacin, haga clic en el submens

Rasgos de Textura y seguidamente en el submen Wavelets y finalmente en Guardar Rasgos de Textura, tal como se muestra en la Figura A.7, tambin puede acceder a esta opcin presionando Shift+Ctrl+G, otra opcin sera pulsando el botn que encuentra en la barra de herramientas de la

Transformada Wavelet. NOTA: Las opciones Punto Decimal y Coma Decimal (por defecto) que se observan en la Figura A.7 son para determinar el tipo de decimal con al cual se desea guardar los Rasgos de Textura.

Figura A.7 Jerarqua de mens para realizar Guardar Rasgos de Textura. Fuente: Datos del Autor (Florio, 2011)

104

Anexo B. Manual del programador Clase AreaImagen


Clase en la que se almacenan datos de inters (por ejemplo: los puntos para calcular ROI, distancia en pixeles y micras, booleanos para realizar validaciones, la imagen original en formato IplImage y QImage, entre otras) y como su nombre lo dice para construir el rea en la que se mostrara la imagen. Protegidos: void paintEvent (QPaintEvent *) Descripcin: Controla el evento que maneja la imagen. Se utiliza para repintar (refrescar) la imagen cuando se realizan cambios sobre ella. Este procedimiento se redefini para repintar la imagen cuando se realice una ampliacin o reduccin de la imagen, para dibujar un rectngulo de la ROI cuando se cumplan las condiciones necesarias y de igual manera se redefini para trazar la recta de medicin en pixeles y micras. Adicionalmente tambin se usa para ver el Valor de la Transformada Wavelet. Parmetros: Recibe como parmetro un evento QPaintEvent. Retorna: No retorna valores.

105

void mouseMoveEvent (QMouseEvent *event) Descripcin: Controla el evento de mover el mouse. Este procedimiento se redefini para capturar las coordenadas del mouse correspondientes al segundo punto que define el rectngulo utilizado, el cual es utilizado para seleccionar la ROI o para trazar la recta de medicin de distancia entre dos (2) puntos en pixeles o micras dependiendo de las condiciones que se cumplan. Adicionalmente tambin se usa para capturar las coordenadas de un pixel de una imagen de una Transformada Wavelet. Parmetros: Recibe como parmetro un evento QMouseEvent. Retorna: No retorna valores. void mousePressEvent (QMouseEvent *event) Descripcin: Controla el evento de presionar el botn izquierdo del mouse. Este procedimiento se redefini para capturar las coordenadas del mouse correspondientes al primer punto que define el rectngulo utilizado, el cual es utilizado para seleccionar la ROI o para trazar la recta de medicin de distancia entre dos puntos en pixeles o micras dependiendo de las condiciones que se cumplan. Tambin se usa para al mantener presionado el botn izquierdo del mouse se pueda desplazar por una imagen Transformada Wavelet y as capturar las coordenadas. Parmetros: Recibe como parmetro un evento QMouseEvent.

106

Retorna: No retorna valores. Variables de la clase AreaImagen Privados: QPoint posMouse Descripcin: Variable donde se almacenan las coordenadas del Mouse cuando se hace clic sobre una imagen de una Transformada Wavelet. Pblicos: bool isWavelet Descripcin: Variable usada para saber si la imagen es una imagen de una Transformada Wavelet Discreta. bool tieneRasgosTextW Descripcin: Variable usada para saber si la imagen posee calculados los Rasgos de Textura mediante Transformada Wavelet Discreta. double **transWavelet Descripcin: Apuntador usado para referenciar a la matriz de la Transformada Wavelet Discreta de una imagen a la cual se le clculo dicha Transformada (en caso contrario la Variable esta referenciada a NULL)

107

int transW, transH, niveles Descripcin: Variables para indicar el ancho, alto y nmero de niveles de descomposicin respectivamente de la Matriz de la Transformada Wavelet. rasgos *rasgosTextura Descripcin: Apuntador que referencia todos los rasgos de textura de una imagen con Transformada Wavelet (en caso contrario la variable esta referenciada a NULL) QString nombrePlantillaWavelet Descripcin: Variable para guardar el nombre de la Plantilla Wavelet que se le aplic a la Transformada Wavelet Discreta.

Clase Cimahis
Clase que construye la interfaz grfica principal de la aplicacin (mens, mens dinmicos, barras de herramientas, barras de estado, MDI etc.), se crean las reas en las que se muestran las imgenes y se crean todas las acciones de la aplicacin. Slots Privados: void dwt() Descripcin: Se utiliza para calcular la Transformada Wavelet Discreta de una Imagen haciendo uso de Plantillas Wavelet.

108

Parmetros: No recibe parmetros. Retorna: No retorna valores. void idwt() Descripcin: Se utiliza para calcular la Transformada Wavelet Discreta Inversa de una imagen haciendo usos de Plantillas Wavelet. Parmetros: No recibe parmetros. Retorna: No retorna valores. void abrirConfiguracionWavelet() Descripcin: Abre la ventana para cargar la plantilla wavelet, y guardar la matriz de la Transformada Wavelet Discreta. Parmetros: No recibe parmetros. Retorna: No retorna valores. void calcularRasgosTextWavelet() Descripcin: Calcula los Rasgos de Textura de la Transformada Wavelet de una Imagen. Parmetros: No recibe parmetros.

109

Retorna: No retorna valores. void guardarRasgosTextWavelet() Descripcin: Guarda los Rasgos de Textura de la Transformada Wavelet de una Imagen. Parmetros: No recibe parmetros. Retorna: No retorna valores. void guardarRTW(QTextStream *out, QLocale decimal) Descripcin: Guarda los Rasgos de Textura de la Transformada Wavelet indicando el archivo de salida y el tipo de decimal (punto o coma). Parmetros: Recibe como parmetros el archivo de salida indicado por *out donde se guardaran los Rasgos de Textura de la Transformada Wavelet y el tipo de representacin decimal que viene dada en decimal. Retorna: No retorna valores.

110

Variables de la clase Cimahis Privados: QActionGroup *grupoDecimal Descripcin: Se utiliza para crear un grupo de los tipos de decimales. QMenu *menuTextura, *menuTexturaWavelet, *menuRasgos,

*menuRasgosWavelet Descripcin: Se utilizan para crear los mens de la interfaz. QAction *actionDWT, *actionIDWT, *actionConfWave,

*actionRasgosTextWavelets, *actionPuntoDecimal, *actionComaDecimal. Descripcin: Se utilizan para crear las acciones que sern asignadas posteriormente a los mens y las barras de herramientas.

Librera Wavelet
Esta librera contiene las funciones de utilidad para realizar las Transformadas Wavelet Discreta y Wavelet Discreta Inversa, los modelos de representacin de las mismas como imgenes.

111

Se cre un tipo de dato llamado rasgos el cual contiene los rasgos de textura que hasta el momento han sido incorporados al CIMAHIS, el cual contiene la siguiente estructura: typedef struct { double *energia; double *entropia; } rasgos; void scalingImageRelativeMode( double **trans, IplImage *img, int height, int width ) Descripcin: Toma la matriz de la Transformada Wavelet Discreta y la escala usando Escalamiento Proporcional. El Escalado Relativo significa que en cada nivel de descomposicin se va a escalar la matriz de la transformada Wavelet a una imagen perceptible por el usuario, siguiendo las siguientes reglas: 1.- Se calcula el intervalo de valores en la matriz de la transformada (min, mx). 2.- Ese intervalo se escala relativamente al intervalo de 0 a 255.

112

Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, la cual tiene un tamao dado por los parmetros height y width y la imagen escalada se guarda en img. Retorna: No retorna valores. void scalingImageAbsoluteMode( double **trans, IplImage *img, int height, int width, int detail ) Descripcin: Toma la matriz de la Transformada Wavelet Discreta y la escala usando Escalamiento Absoluto. El Escalado Absoluto significa que en cada nivel de descomposicin se va a escalar la matriz de la transformada Wavelet a una imagen perceptible por el usuario, siguiendo las siguientes reglas: 1.- Se toma el mximo valor absoluto [absmax = max (|mx|,|min|)] 2.- Los coeficientes de la matriz son tomados en valor absoluto en el intervalo (0, absmax) para ser mapeados en una escala de grises de 0 255. Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, la cual tiene un tamao dado por los parmetros height y width y la imagen escalada se guarda en img. Retorna: No retorna valores.

113

double **dwtConPlantilla(IplImage *img, IplImage *img_Output, int nLevels, double **filters, int nFilters, int scl) Descripcin: Calcula la Transformada Wavelet Discreta de una imagen, haciendo uso de una Plantilla. Parmetros: Se le pasa la imagen a realizarle la Transformada Wavelet Discreta img, y obtiene la imagen de a Transformada Wavelet Discreta en img_Output, haciendo nLevels de descomposicin y aplicando la plantilla filters que contiene nFilters de filtros, con el escalamiento dado en scl (1 = Absoluto, 0 = Proporcional). Retorna: La matriz con la Transformada Wavelets de la imagen img. void idwtConPlantilla( double **trans, IplImage *img, int nLevels, double **filters, int nFilters, int scl) Descripcin: Calcula la Transformada Wavelet Discreta Inversa de una imagen haciendo uso de una plantilla. Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, la cual guarda la imagen de la Transformada Wavelet Discreta Inversa en una imagen dada como img, haciendo los nLevels de descomposicin y se aplicando la plantilla filters que contiene nFilters de filtros, muestra la imagen con el escalamiento dado en scl (1 = Absoluto, 0 = Proporcional).

114

Retorna: No retorna valores. double calcNorm2( double **trans, int beginH, int beginW, int topH, int topW ) Descripcin: Calcula el Promedio de valores en la matriz trans en el intervalo (beginH, beginW) a (topH, topW). Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, y se le calcula el promedio de valores dados entre la fila beginH y columna beginW hasta la fila topH y la columna topW. Retorna: El valor promedio entre los intervalos. Vector de Rasgos de Textura El vector de rasgos de textura es llenado de la siguiente manera: La posicin 1 del vector es para el rea de aproximacin del ultimo nivel de descomposicin, las siguiente posicin son para el rea horizontal, vertical y diagonal de todos los niveles desde el ultimo hasta el primero. Lo cual hace que para n niveles en la Transformada Wavelet Discreta, el vector de rasgos de textura posee (n*3)+1 posiciones. Para el caso de 3 niveles de descomposicin, como se observa en la Figura 8, el vector de un rasgo de textura es creado de la siguiente manera:

A3

H3

V3

D3

H2

V2

D2

H1

V1

D1

115

double *calcularEnergia( double **trans, int h, int w, int nNiveles ) Descripcin: Calcula la energa en todas las subimgenes en la matriz de la Transformada Wavelet Discreta, generando el vector de energa que se almacenara en la estructura rasgos. Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, el alto y ancho de la misma dados por h y w respectivamente y los nNiveles niveles de descomposicin que se aplic en la Transformada Wavelet Discreta Retorna: El vector de energa para todas las subimgenes de la Transformada Wavelet Discreta. double *calcularEntropia( double **trans, int h, int w, int nNiveles ) Descripcin: Calcula la entropa en todas las subimgenes en la matriz de la Transformada Wavelet Discreta, generando el vector de entropa que se almacenara en la estructura rasgos. Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, el alto y ancho de la misma dados por h y w respectivamente y los nNiveles niveles de descomposicin que se aplic en la Transformada Wavelet Discreta Retorna: El vector de entropa para todas las subimgenes de la Transformada Wavelet Discreta.

116

rasgos *calcRasgTextura( double **trans, int w, int h, int nNiveles ) Descripcin: Calcula los Rasgos de Textura en una Transformada Wavelet Discreta de una imagen. Parmetros: Se le pasa la Transformada Wavelet Discreta dada por trans, la cual es de tamao hxw y calcula los rasgos de textura de todas las sub imgenes en todos los nNiveles niveles de la transformada. Retorna: Una estructura con todos los rasgos de textura de la Transformada Wavelet Discreta de una Imagen.

Como Agregar un Nuevo Rasgo de Textura


1. Buscar el Archivo Wavelet.h la definicin de la estructura de rasgos de

textura (rasgos). 2. 3. Agregar el nuevo rasgo de textura que requiere agregar. Agregar la funcin para el clculo del nuevo rasgo de textura en el

archivo Wavelet.h en la funcin calcRasgTextura.

117

También podría gustarte