コード例 #1
0
        void calcularDescriptorMinucia()
        {
            List <MinuciaParcial> dm_p = new List <MinuciaParcial>();
            List <MinuciaParcial> dm_q = new List <MinuciaParcial>();

            // Calculamos Dm(p), vecinos de p(minucia1)
            foreach (Minucia vecino in minucia1.vecinos)
            {
                dm_p.Add(new MinuciaParcial(vecino, minucia1));
            }

            // calculamos Dm(q), vecinos de q(minucia2)
            foreach (Minucia vecino in minucia2.vecinos)
            {
                dm_q.Add(new MinuciaParcial(vecino, minucia2));
            }

            // Conjunto dm(p) habiéndole aplicado la transformación rígida de p a q
            List <MinuciaParcial> dm_p_t = new TransformacionT(minucia1, minucia2, dm_p).dm_minucia_t;

            // Conjunto dm(q) habiéndole aplicado la transformación rígida de q a p
            List <MinuciaParcial> dm_q_t = new TransformacionT(minucia2, minucia1, dm_q).dm_minucia_t;

            EncajesMinucia em_p = new EncajesMinucia(dm_p_t, dm_q);
            EncajesMinucia em_q = new EncajesMinucia(dm_q_t, dm_p);

            this.sm = em_p.factor * em_q.factor;
        }
コード例 #2
0
        /// <summary>
        /// Hace la ordenación y las coloca en un vector de parejas
        /// </summary>
        void generarCorrespondenciasEnOrden()
        {
            Atributos atr = Atributos.getInstance();

            //las que tienen una rotación relativa mayor que un umbral las desechamos
            foreach (ParejaMinuciaNormalizada pmn in normalizadas)
            {
                if (pmn.pm.rotacionRelativa > atr.umbralAngulo)
                {
                    pmn.sn = 0;
                }
            }

            vectorParejas = normalizadas.ToArray();
            Array.Sort(vectorParejas);
            Array.Reverse(vectorParejas);

            this.inicial = buscarParejaInicial(vectorParejas);

            minuciaMasFiable1 = inicial.pm.minucia1;
            minuciaMasFiable2 = inicial.pm.minucia2;

            transformacionT = new TransformacionT(inicial, vectorParejas);
            this.parejas    = transformacionT.parejas;
        }
コード例 #3
0
        void calcularDescriptorMinucia()
        {
            List<MinuciaParcial> dm_p = new List<MinuciaParcial>();
            List<MinuciaParcial> dm_q = new List<MinuciaParcial>();

            // Calculamos Dm(p), vecinos de p(minucia1)
            foreach (Minucia vecino in minucia1.vecinos)
                dm_p.Add(new MinuciaParcial(vecino, minucia1));

            // calculamos Dm(q), vecinos de q(minucia2)
            foreach (Minucia vecino in minucia2.vecinos)
                dm_q.Add(new MinuciaParcial(vecino, minucia2));

            // Conjunto dm(p) habiéndole aplicado la transformación rígida de p a q
            List<MinuciaParcial> dm_p_t = new TransformacionT(minucia1, minucia2, dm_p).dm_minucia_t;

            // Conjunto dm(q) habiéndole aplicado la transformación rígida de q a p
            List<MinuciaParcial> dm_q_t = new TransformacionT(minucia2, minucia1, dm_q).dm_minucia_t;

            EncajesMinucia em_p = new EncajesMinucia(dm_p_t, dm_q);
            EncajesMinucia em_q = new EncajesMinucia(dm_q_t, dm_p);

            this.sm = em_p.factor * em_q.factor;
        }
コード例 #4
0
        /// <summary>
        /// Hace la ordenación y las coloca en un vector de parejas
        /// </summary>
        void generarCorrespondenciasEnOrden()
        {
            Atributos atr = Atributos.getInstance();

            //las que tienen una rotación relativa mayor que un umbral las desechamos
            foreach (ParejaMinuciaNormalizada pmn in normalizadas)
                if (pmn.pm.rotacionRelativa > atr.umbralAngulo)
                    pmn.sn = 0;

            vectorParejas = normalizadas.ToArray();
            Array.Sort(vectorParejas);
            Array.Reverse(vectorParejas);

            this.inicial = buscarParejaInicial(vectorParejas);

            minuciaMasFiable1 = inicial.pm.minucia1;
            minuciaMasFiable2 = inicial.pm.minucia2;

            transformacionT = new TransformacionT(inicial, vectorParejas);
            this.parejas = transformacionT.parejas;
        }