Beispiel #1
0
 internal TicoFeatures(IReadOnlyList <Minutia> minutiae, OrientationImage dImg)
 {
     Minutiae = new List <MinutiaDescriptor>(minutiae.Count);
     for (short i = 0; i < minutiae.Count; i++)
     {
         var mtiaDescriptor = new MinutiaDescriptor(minutiae[i], dImg);
         Minutiae.Add(mtiaDescriptor);
     }
 }
Beispiel #2
0
        internal double Compare(MinutiaDescriptor mtiaDesc)
        {
            double sum = 0;

            for (var i = 0; i < 72; i++)
            {
                var or1 = Orientations[i];
                var or2 = mtiaDesc.Orientations[i];
                if (!double.IsNaN(or1) && !double.IsNaN(or2))
                {
                    var diffOr = Math.Abs(or1 - or2);

                    var difAng = 2 / Math.PI * diffOr;

                    sum += Math.Exp(-16 * difAng);
                }
            }

            return(sum / 72);
        }