PanDiag::DataBase PanDiag::GUI PanDiag::ProcesamientoImagenes ShellNeuronal::ShellNeuronal RedNeuronal::RNA RNA::Entrenamiento RNA::FuncionesDeActivacion «uses» «uses» «uses» «uses» «uses» «uses»
APÉNDICE A
RNA::Neuron RNA::RedNeuronal RNA::RedNeuronalStrc FuncionesDeActivacion::FuncionEscalonada FuncionesDeActivacion::FuncionSigmoide «interface» FuncionesDeActivacion::FuncionDeActivacion «uses» -Conjunto 1 -Elemento * Entrenamiento::EntrenadorRetro -Entrenado * -Entrenador 1 «interface» Entrenamiento::ProgresoEntrenamientoListener ShellNeuronal::EditorVCGUI ShellNeuronal::FormMatrizDeConfusion ShellNeuronal::FormProgreso ShellNeuronal::FormResultado ShellNeuronal::ShellGUI «uses» «uses» «uses» «uses» -Contiene 1 -Es parte de 1 GUI::MainGUI GUI::ManejadorDeRepositoriosGUI GUI::OpenDirectoryDialog GUI::RepresentacionInternaGUI GUI::VisorSeleccion «interface» GUI::FilenameEventListener «uses» «uses» «uses» «uses» -Es parte de 1 -Contiene 1 -Contiene 1 -Es parte de 1 DataBase::RepositorioDeRegistros DataBase::RegistroDCM DataBase::RepositorioEnumerator «interface» DataBase::RepositiorioRegListener ProcesamientoImagenes::ExtractorDeCaracteristicas ProcesamientoImagenes::ExtractorPorVentanas ProcesamientoImagenes::MapaNormalizado AxezDICOMax::AxezDICOMX «uses» -Contiene 1 -Es elemento de * -Manejador 1
-Es manejado por 1 «uses» «uses» «uses» «uses» -Contiene 1 -Pertenece a 5 -Es contenido 1 -Contiene 1 1 *
+EditorVCGUI()
#Dispose(in disposing : bool) +Tabla() : DataTable -InitializeComponent()
-button1_Click(in sender : object, in e : EventArgs) -dataGrid1 : DataGrid
-button1 : Button -button2 : Button
ShellNeuronal::EditorVCGUI
+FormMatrizDeConfusion() #Dispose(in disposing : bool) -InitializeComponent()
-label2_Click(in sender : object, in e : EventArgs) -button1_Click(in sender : object, in e : EventArgs) +Valores() : double[,] -label1 : Label -label2 : Label -label3 : Label -label4 : Label -label5 : Label -panel1 : Panel -label0101 : Label -label1001 : Label -label0110 : Label -label1010 : Label -button1 : Button -label6 : Label -label7 : Label
-components : Container = null
ShellNeuronal::FormMatrizDeConfusion
+FormResultado(in salida_real : double[], in salidas_deseadas : double[][]) #Dispose(in disposing : bool)
-InitializeComponent()
-FormResultado_Load(in sender : object, in e : EventArgs) -crearTablaSalidasReales() : DataTable
-crearTablaSalidasDeseada(in salida_deseada : double[]) : DataTable -button1_Click(in sender : object, in e : EventArgs)
-dataGrid1 : DataGrid -dataGrid2 : DataGrid -label1 : Label -button1 : Button
-salida_real : double[] = null -salidas_deseadas : double[][] = null -labelDstEuclidiana : Label -components : Container = null
ShellNeuronal::FormResultado
Paquete ShellNeuronal. Contiene las clases que forman un ShellNeuronal. Cada una de las clases es un
componente visual y son mandadas a llamar por ShellGUI, el punto de inicio de la librería.
Clase EditorVCGui. Control visual que permite editar vectores de entrenamiento. Muestra una tabla donde se
pueden editar las entradas y las salidas de cada vector, agregar más vectores o eliminarlos. Los vectores que
muestre este control son con los que trabajará el ShellNeuronal. Utilizada por ShellGUI.
Clase FormMatrizDeConfusión. Control visual que muestra los resultados de hacer la evaluación de una red
neuronal. Los resultados de la evaluación se muestran en forma de una matriz de confusión. Utilizada por
ShellGUI.
Clase FormProgreso. Control visual que permite ver el progreso del entrenamiento del mismo. Muestra el error
total por cada iteración de la red, el tiempo requerido para cada iteración y el numero de iteraciones. Utilizada
por ShellGUI.
Clase FormResultado. Control visual que muestra el resultado de evaluar un vector de entrada. Realiza la
comparación de la salida real de la red con los vectores de salida deseados informando al usuario de cual es el
vector deseado más cercano al vector obtenido. Utilizada por ShellGUI.
Clase ShellGUI. Punto de entrada de la aplicación. Control visual que integra toda la funcionalidad de un Shell
neuronal sencillo. Utiliza las clases en el paquete ShellNeuronal para interactuar con el usuario.
+FormProgreso()
#Dispose(in disposing : bool) +Entrenador() : EntrenadorRetro +Iteracion() : int
+setMaxIteracion() : int
+TiempoPorIteracion() : TimeSpan -InitializeComponent()
-button1_Click(in sender : object, in e : EventArgs) -label1 : Label -progressBar1 : ProgressBar -label2 : Label -label3 : Label -label4 : Label -label5 : Label -label6 : Label -label7 : Label -labelError : Label -button1 : Button
-entrenador : EntrenadorRetro = null -labelTiempoTotal : Label
-label9 : Label -labelIteracion : Label -components : Container = null
ShellNeuronal::FormProgreso
+ShellGUI()
#Dispose(in disposing : bool) -InitializeComponent() -Main()
-CrearTablaEntrenamiento() : DataTable -CrearTablaEntrada() : DataTable
-button8_Click(in sender : object, in e : EventArgs) -buttonCrearRed_Click(in sender : object, in e : EventArgs) -buttonListo_Click(in sender : object, in e : EventArgs)
-buttonReiniciarPesos_Click(in sender : object, in e : EventArgs) -buttonGuardarRed_Click(in sender : object, in e : EventArgs) -guardarRedEnArchivo(in archivo : string)
-buttonCargarRed_Click(in sender : object, in e : EventArgs) +cargarRedDesdeArchivo(in archivo : string)
-buttonCambiarCoefAprend_Click(in sender : object, in e : EventArgs) -buttonAgregarVect_Click(in sender : object, in e : EventArgs) -importarVectorEntrenamiento(in archivo : string)
-exportarVectorEntrenamiento(in archivo : string) -buttonEvaluar_Click(in sender : object, in e : EventArgs) -buttonIniciarEntrena_Click(in sender : object, in e : EventArgs) -menuItemCrear_Click(in sender : object, in e : EventArgs) -menuItemReiniciar_Click(in sender : object, in e : EventArgs) -menuItemGuardar_Click(in sender : object, in e : EventArgs) -menuItemCargar_Click(in sender : object, in e : EventArgs) -menuItem10_Click(in sender : object, in e : EventArgs)
-menuItemModificarEntrenamiento_Click(in sender : object, in e : EventArgs) -menuItemIniciarEntrenamiento_Click(in sender : object, in e : EventArgs) -button1_Click(in sender : object, in e : EventArgs)
-button1_Click_1(in sender : object, in e : EventArgs) -menuItem2_Click(in sender : object, in e : EventArgs) +agregarVectorEntrenamiento(in vector : double[]) +agregarVectorPrueba(in vector : double[])
RNA
+Neuron(in nEntradas : int, in funcion : FuncionDeActivacion) +Neuron(in funcion : FuncionDeActivacion)
+agregarNeuronEntrada(in entrada : Neuron) +eliminarNeuronEntrada(in entrada : Neuron) +calcularSalida() : float
+reiniciarPesos(in r : Random)
+reiniciarPesos(in inferior : double, in superior : double, in r : Random) +OUT() : float
+IN() : float[] -salida : float = 0 +pesos : float[] = null +phi : float = 0 -entradas : float[] = null
+neurones_entradas : ArrayList = new ArrayList() +pesos_conexionistas : float[] = null
-funcion : FuncionDeActivacion = null -conexionista : bool = true
RNA::Neuron
+RedNeuronal(in numero_entradas : int, in cantidad_nodos : int[]) +reiniciarPesos()
+reiniciarPesos(in inferior : double, in superior : double) +calcularSalida() : float[] +Salida() : float[] +niveles : Neuron[][] +entradas : float[] -salida : float[] -neurones_salida : int = 0 RNA::RedNeuronal
+RedNeuronalStrc(in numero_entradas : int, in cantidad_nodos : int[]) +reiniciarPesos()
+reiniciarPesos(in inferior : double, in superior : double) +calcularSalida() : double[]
+Salida() : double[] +Entrada() : double[]
-calcularSalidaNeuron(in nivel : int, in neuron : int) : double +N_Entradas() : int
+N_Salidas() : int +NodosPorNivel() : int[]
+guardarEstado(in archivo : string) +cargarEstado(in archivo : string) +salidas : double[][]
+pesos : double[][][]
RNA::RedNeuronalStrc
Paquete RNA. Contiene las clases necesarias para crear y entrenar una RNA totalmente conectada y
alimentada hacia delante.
Clase Neuron. Contiene los métodos y propiedades que permiten crear un objeto que se comporta como un
Neuron en una RNA. Es utilizado por la clase ReNeuronal.
Clase RedNeuronal. Contiene los métodos y propiedades que permiten crear una red neuronal con una
programación orientada a objetos. Utiliza objetos de tipo Neuron para crear la red. El paquete RNA no contiene
clases o métodos para entrenar este tipo de red.
Clase RedNeuronalStrc. Permite crear RNAs con una programación estructurada. No depende de ninguna otra
clase para funcionar. Es posible entrenar una red de este tipo utilizando otras clases de este paquete.
RNA::FuncionesDeActivacion
+evalua(in suma : float) : float
+FuncionEscalonada(in bajo : int, in alto : int) -bajo : int
-alto : int = 0
FuncionesDeActivacion::FuncionEscalonada
+evalua(in suma : float) : float
FuncionesDeActivacion::FuncionSigmoide
+evalua(in suma : float) : float «interface»
FuncionesDeActivacion::FuncionDeActivacion
Paquete RNA.FuncionesDeActivacion. Contiene las clases que permiten definir diferentes tipos de
funciones de activación. Son utilizadas por la clase Neuron del paquete RNA.
Interfaz FuncionDeActivacion. Define las caracteríticas que debe tener una clase que servirá como
función de activación para un Neuron. Implementadas por FuncionEscalonada y FuncionSigmoide.
Clase FuncionEscalonada. Implementacion de la función de activación escalonada utilizando la interfaz
FuncionDeActivacion. Utilizada por la clase Neuron.
Clase FuncionSigmoide. Implementacion de la función de activación sigmoide utilizando la interfaz
FuncionDeActivacion. Utilizada por la clase Neuron.
RNA::Entrenamiento
+entrenar(in neuron : Neuron, in salida_real : int, in salida_deseada : int) +Coeficiente_Aprendizaje() : float
-coef_aprendizaje : float = 0
Entrenamiento::EntrenadorNeuron
+EntrenadorRetro(in n_entradas : int, in n_salidas : int) +Abortar() : bool +ProgresoListener() : ProgresoEntrenamientoListener +Red() : RedNeuronalStrc +Coeficiente_Aprendizaje() : double +ErrorTotal() : double +Entradas() : double[][] +Salidas() : double[][]
+entrenarRed(in iteraciones : int) +InicioThreadEntrenamiento() -red : RedNeuronalStrc = null -coef_ap : double = .5 -entradas : double[][] = null -salidas : double[][] = null -derivadas : double[][] = null -n_entradas : int = 0 -n_salidas : int = 0 -error_total : double = 0
-listener : ProgresoEntrenamientoListener = null -iteraciones : int = 0
-abortar : bool = false
Entrenamiento::EntrenadorRetro +EntrenamientoInicio(in numeroIteraciones : int)
+IteracionCompletada(in tiempo : TimeSpan, in total_completadas : int, in error : double) +EntrenamientoTermino(in tiempo_total : TimeSpan, in total_completadas : int, in error : double)
«interface»
Entrenamiento::ProgresoEntrenamientoListener
Paquete RNA.Entrenamiento. Contiene las clases necesarias para entrenar una RedNeuronalStrc.
Clase EntrenadorRetro. Permite entrenar un objeto del tipo RedNeuronalStrc utilizando el algoritmo de
retropropacación. Es utilizada por ShellNeuronal.
Interfaz ProgresoEntrenamientoListener. Permite a un usuario de la clase EntrenadorRetro verificar el
progreso de la operación. Implementada por la clase FormProgreso.
+RegistroDCM(in datos : string) +RegistroDCM(in archivo : FileInfo) +Nombre() : string +ID() : string +Acquisition_number() : int +Image_Number() : int +StudyDate() : string +Archivo() : string +SeriesDate() : int +AcquisitionDate() : int +ImageDate() : int +StudyTime() : string +SeriesTime() : string +AcquisitionTime() : string +ImageTime() : string +Necrotico() : bool +Inflamado() : bool +GrasaPeripancreatica() : bool +Coleccion() : bool +Colecciones() : bool +Seleccion() : Point[]
+Equals(in reg : RegistroDCM) : bool +ToString() : string -archivo : string = "" -pname : string = "" -pid : string = "" -acq_num : int = 0 -image_num : int = 0 -study_date : string = "" -series_date : int = 0 -acq_date : int = 0 -image_date : int = 0 -study_time : string = "" -series_time : string = "" -acq_time : string = "" -image_time : string = "" -necrotico : bool = false -inflamado : bool = false -grasa : bool = false -coleccion : bool = false -colecciones : bool = false -seleccion : Point[] = null
+axezDicom : AxezDICOMX = null DataBase::RegistroDCM
+RepositorioDeRegistros()
+buscarRegistro(in id : string, in nombre : string, in fecha : string, in numero : string) : RegistroDCM +buscarRegistro(in buscado : RegistroDCM) : RegistroDCM
+agregarRegistro(in registro : RegistroDCM)
+eliminarRegistro(in id : string, in nombre : string, in fecha : string, in numero : string) +guardar(in archivo : string)
+importar(in archivo : string) +this(in index : int) : object +ProcessFiles(in files : string[])
+ProcessDirectory(in targetDirectory : string) +RepositorioListener() : RepositiorioRegListener -fireRegistroFueAgregado(in registro : RegistroDCM) +GetEnumerator() : RepositorioEnumerator
+items() : ArrayList
-listener : RepositiorioRegListener = null -registros : ArrayList = null
DataBase::RepositorioDeRegistros
+RepositorioEnumerator(in repositorio : RepositorioDeRegistros) +MoveNext() : bool
+Current() : RegistroDCM -nIndex : int
-repositorio : RepositorioDeRegistros
DataBase::RepositorioEnumerator
+registroFueAgregado(in registro : RegistroDCM) +registroFueEliminado(in registro : RegistroDCM) +registroCambio(in registro : RegistroDCM)
+huboColision(in registro1 : RegistroDCM, in registro2 : RegistroDCM)
«interface»
DataBase::RepositiorioRegListener
PanDiag::DataBase
Paquete PanDiag.DataBase
Contiene las clases que permiten la creación y mantenimiento de
colecciones de registros o “conjuntos de trabajo” como se les llama.
Clase RegistroDCM. Estructura que contiene todas las propiedades
que puede tener un registro. Es autoinicializada y requiere como
parametro de creación un archivo DICOM del cual obtendrá la
información necesaria para su creación.
Clase RepositorioDeRegistro. Clase que contiene los métodos y
propiedades necesarias para mantener una colección de registros.
Hace las veces de una base de datos proporcionando posibilidades de
guardar en archivos físicos los registros que esten en memoría.
Permite realizar búsquedas, agregar y eliminar registros de diferentes
formas.
Clase RepositorioEnumerator. RepositorioDeRegistros. Esta clase
implementa el código necesario para poder utilizar la clase
RepositorioDeRegistros con la función foreach de c#.
Clase RepositorioRegListener. Permite a un usuario de
RepositorioDeRegistros tener información constante de las
transacciones que se estan llevando acabo dentro de la clase.
PanDiag::ProcesamientoImagenes
+obtenerCaracteristicas(in mapaIntensidades : short[,]) : double[]
ProcesamientoImagenes::ExtractorDeCaracteristicas
+obtenerCaracteristicas(in mapaIntensidades : short[,]) : double[] +Ventana() : ushort
+Desplazamiento() : ushort -tam_ventana : ushort = 10 -desplazamiento : ushort = 5
ProcesamientoImagenes::ExtractorPorVentanas
+MapaNormalizado(in objDicom : AxezDICOMX, in puntos : Point[]) -reubicarPuntos(in puntos : Point[]) : Point[]
-obtenerMapaEscaladoEstirado(in mapaEscalado : short[,], in seleccionEscalada : Point[]) : short[,] -escalarSeleccion(in puntos : Point[]) : Point[]
-normalizarMapa() : short[,]
-getYMinYMaxparaX(in x : short, in puntos : Point[]) : short[] -getXMinXMaxparaY(in y : short, in puntos : Point[]) : short[] -obtenerMapaEscalado(in mapaReducido : short[,]) : short[,] -obtenerValoresMaxMin(in puntos : Point[])
-obtenerMapaReducido() : short[,]
+extraerCaracterisiticas(in extractor : ExtractorDeCaracteristicas) : double[] -objDicom : AxezDICOMX = null
+puntos : Point[] = null
+puntosReubicados : Point[] = null +puntosEscalados : Point[] = null -xmax : ushort = ushort.MinValue -xmin : ushort = ushort.MaxValue -ymax : ushort = ushort.MinValue -ymin : ushort = ushort.MaxValue -xmaxe : ushort = ushort.MinValue -xmine : ushort = ushort.MaxValue -ymaxe : ushort = ushort.MinValue -ymine : ushort = ushort.MaxValue +mapaReducido : short[,] +mapaReducidoFiltrado : short[,] +mapaEscalado : short[,] +mapaEscaladoEstirado : short[,]
ProcesamientoImagenes::MapaNormalizado
Paquete PanDiag.ProcesamientoImagenes. Contiene las clases que realiza la extracción de los datos del
archivo dicom, la normalización y la extracción de características. El modelo utilizado permite la aplicación de
diferentes técnicas de extracción de caraterísticas sobre el mapa normalizado siempre y cuando se cumpla con
los requerimientos de la clase ExtractorDeCaracteristicas.
Clase MapaNormalizado. Realiza la extracción de los datos del archivo DICOM y los procesa hasta tener un
mapa normalizado de 100x80 unidades. Los resultados de cada paso en el proceso son públicos permitiendo
que el usuario examine los resultados.
Interfaz ExtractorDeCaracteristicas. Define los métodos y propiedades que debe tener una clase que sirva
como extractor de características.
Calse ExtractorPorVentanas. Implementa la extracción de caracterítiscas por ventanas usando la interfaz
ExtractorDeCaracteristicas.
PanDiag::GUI
+MainGUI()
#Dispose(in disposing : bool) -InitializeComponent() -Main()
-menuItem3_Click(in sender : object, in e : EventArgs)
-axezDICOMX1_DCMmouseMoveIntensity(in sender : object, in e : IezDICOMXEvents_DCMmouseMoveIntensityEvent) -axezDICOMX1_OnPaint(in sender : object, in e : EventArgs)
-menuItem8_Click(in sender : object, in e : EventArgs) -menuItem10_Click(in sender : object, in e : EventArgs) -buttonWC_Click(in sender : object, in e : EventArgs) -buttonHDR_Click(in sender : object, in e : EventArgs) -buttonZoom_Click(in sender : object, in e : EventArgs) +actualizarControlesLocales()
+actualizarRegistroLocal()
-checkBoxNecrosis_CheckedChanged(in sender : object, in e : EventArgs) -checkBoxInflamado_CheckedChanged(in sender : object, in e : EventArgs) -checkBoxGrasa_CheckedChanged(in sender : object, in e : EventArgs)
-radioButtonUnaColeccion_CheckedChanged(in sender : object, in e : EventArgs) -radioButtonDosColecciones_CheckedChanged(in sender : object, in e : EventArgs) -buttonROI_Click(in sender : object, in e : EventArgs)
-axezDICOMX1_DCMmouseUp_1(in sender : object, in e : IezDICOMXEvents_DCMmouseUpEvent) -buttonReset_Click(in sender : object, in e : EventArgs)
-buttonVerRepresentacion_Click(in sender : object, in e : EventArgs) -menuItem13_Click(in sender : object, in e : EventArgs)
-menuItem12_Click(in sender : object, in e : EventArgs) -menuItem15_Click(in sender : object, in e : EventArgs)
-radioButton1_CheckedChanged(in sender : object, in e : EventArgs) -buttonLimpiarROI_Click(in sender : object, in e : EventArgs) -GUI_Load(in sender : object, in e : EventArgs)
-menuItem35_Click(in sender : object, in e : EventArgs) -menuItem27_Click(in sender : object, in e : EventArgs)
GUI::MainGUI
Paquete PanDiag.GUI. Contiene las clases que forman el GUI del usuario y que integran las clases de los
demás paquetes para formar la aplicación.
Clase MainGUI. Punto de entrada de la aplicación. Mantiene los objetos que realizan el proceso de la
información (ShellNeuronal, Base de datos, etc) y los relaciona con los eventos generados por el usuario al
oprimir botones y seleccionar funciones de menus.
Clase OpenDirectoryDialog. Clase que muestra al usuario una ventana en la que puede seleccionar un folder.
Utilizada por ManejadorDeRepositoriosGUI.
Clase RepresentacionInternaGUI. Muestra al usuario un dialogo que permite observar los pasos que se
realizan durante la normalización de una imagen. Estos datos son obtenidos de un objeto MapaNormalizado.
Es utilizada por la clase MainGUI.
Clase VisorSeleccion. Muestra una ventana con el area seleccionada por el usuario (ROI). Es utilizada por la
clase MainGUI.
Interfaz FilenameEventListener. Permite la comunicación entre un ManejadorDeRepositoriosGUI con la clase
MainGUI a través de eventos similares a los utilizados en la arquitectura Java. Permiten saber que registro
fue seleccionado.
+registroFueAgregado(in registro : RegistroDCM) +registroFueEliminado(in registro : RegistroDCM) +registroCambio(in registro : RegistroDCM)
+huboColision(in registro1 : RegistroDCM, in registro2 : RegistroDCM) +ManejadorDeRepositoriosGUI()
#Dispose(in disposing : bool) -InitializeComponent()
-buttonAgregar_Click(in sender : object, in e : EventArgs) -copiarRegRow(in reg : RegistroDCM, in row : DataRow) -buttonFolder_Click(in sender : object, in e : EventArgs) +ProcessFiles(in files : string[])
+ProcessDirectory(in targetDirectory : string)
-labelArchivo_TextChanged(in sender : object, in e : EventArgs) +ArchivoSeleccionado() : string
+addFilenameCambioListener(in fcl : FilenameEventListener) -fireFilenameEventListener()
-buttonEliminar_Click(in sender : object, in e : EventArgs) -buttonGuardar_Click(in sender : object, in e : EventArgs) -buttonImportar_Click(in sender : object, in e : EventArgs) +RegistroActual() : RegistroDCM +Repositorio() : RepositorioDeRegistros -label1 : Label -label2 : Label -label3 : Label -groupBoxConjuntoDeTrabajo : GroupBox -dataGridRegistros : DataGrid -buttonAgregar : Button -buttonEliminar : Button -buttonGuardar : Button -buttonImportar : Button -repositorio : RepositorioDeRegistros -dataGridTableStyle1 : DataGridTableStyle -dataGridTextBoxColumn1 : DataGridTextBoxColumn -dataGridTextBoxColumn2 : DataGridTextBoxColumn -dataGridTextBoxColumn3 : DataGridTextBoxColumn -dataGridTextBoxColumn4 : DataGridTextBoxColumn -openFileDialog : OpenFileDialog -TablePacientes : DataTable -TableCortes : DataTable -dataColumnID : DataColumn -dataColumnNombre : DataColumn -dataColumnFecha : DataColumn -dataColumn1 : DataColumn -dataColumn2 : DataColumn -dataColumn3 : DataColumn -dataColumn4 : DataColumn +dataSetData : DataSet -buttonFolder : Button -dataColumn5 : DataColumn -archivo : string +labelArchivo : Label -label4 : Label
-fel : FilenameEventListener = null -cargando : bool = false
-bandera_borrando : bool = false -saveFileDialog : SaveFileDialog GUI::ManejadorDeRepositoriosGUI +OpenDirectoryDialog() +showDialog() : DialogResult #Initialize() +Folder() : string -folderDialog : FolderBrowser -folder : string = null
GUI::OpenDirectoryDialog
+RepresentacionInternaGUI()
-setTipoRepresentacion(in tipo : Visualizacion) -recalcularInicioFin()
#Dispose(in disposing : bool) -InitializeComponent()
-panel1_Paint(in sender : object, in e : PaintEventArgs) -obtenerNivelGris(in intensidad : int) : Color
-button1_Click(in sender : object, in e : EventArgs)
-radioButton1_CheckedChanged(in sender : object, in e : EventArgs) -radioButton2_CheckedChanged(in sender : object, in e : EventArgs) -radioButton3_CheckedChanged(in sender : object, in e : EventArgs) -radioButton4_CheckedChanged(in sender : object, in e : EventArgs) -checkBox1_CheckedChanged(in sender : object, in e : EventArgs) -button2_Click(in sender : object, in e : EventArgs)
+W() : int +C() : int +Mapa() : MapaNormalizado -panel1 : Panel -label2 : Label -label1 : Label -button1 : Button -mapaNormal : MapaNormalizado -c : int = 0 -w : int = 255 -p_inicioEscala : int -p_finEscala : int -diferencia_iniciofin : int -textBoxW : TextBox -textBoxC : TextBox -groupBox1 : GroupBox -radioButton1 : RadioButton -radioButton2 : RadioButton -radioButton3 : RadioButton -tipoVisualización : int = 0 -radioButton4 : RadioButton -checkBox1 : CheckBox -VerSeleccion : bool = false -button2 : Button
-imagen : Bitmap = null
-saveFileDialog1 : SaveFileDialog -components : Container = null
GUI::RepresentacionInternaGUI
+VisorSeleccion()
#Dispose(in disposing : bool) -InitializeComponent() +Puntos() : Point[] +Modo() : ModoDibujado
-VisorSeleccion_Paint(in sender : object, in e : PaintEventArgs) -modo : ModoDibujado = 0
-puntos : Point[] = null
GUI::VisorSeleccion
+FilenameCambio(in filename : string)
«interface» GUI::FilenameEventListener