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; }
/// <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; }
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; }
/// <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; }