/// <summary> /// Aplica los agoritmos de busqueda de terminaciones y bifurcaciones /// a una huella, con los atributos dados por el ususuario. /// </summary> /// <param name="huella"></param> /// <param name="atr"></param> public Tratamiento(Bitmap huella) { this.pasos = new Bitmap[totalPasos]; this.huella = new Bitmap(huella); this.matriz = Adaptador.Adaptar(this.huella); this.filas = huella.Width; this.cols = huella.Height; Matriz m = Matriz.getInstance(); m.matriz = this.matriz; m.filas = this.filas; m.cols = this.cols; this.pasos[pasoOrigen] = huella; buscarTerminaciones(); comprobarTerminaciones(); guardarTerminaciones(); buscarBifurcaciones(); comprobarBifurcaciones(); guardarBifurcaciones(); // En este punto ya tenemos guardadas todas las minucias // Llamamos a un método auxiliar para actualizar sus minucias vecinas // También actualizamos los índices de cada minucia actualizarVecinos(); mostrarTodasMinucias(); mostrarDatosTextura(); mostrarDatosMinucia(); }
public Punto(int x, int y, double anguloParcial, Minucia minucia) { Atributos atr = Atributos.getInstance(); // coordenadas del punto en cartesiano this.x = x; this.y = y; double anguloParcialEnRango = meterEnRango(anguloParcial); // Datos válidos para el cálculo del futuro descriptor de textura if (anguloParcialEnRango != 0) { this.frecuencia = (double)1 / anguloParcialEnRango; } else { this.frecuencia = Double.MaxValue; } this.orientacionRelativa = get_relative_orientation(anguloParcialEnRango, minucia.angulo); // minucia a la que está asociada el citado punto this.minucia = minucia; Matriz m = Matriz.getInstance(); if (!Funcion.seSaleDeCoordenadas(x, y, m.filas, m.cols, atr.tamEntornoPunto / 2) && Funcion.hayAlgunoEnEntorno(x, y, m.matriz, m.filas, m.cols)) { this.esValido = true; } }