Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        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;
            }
        }