Пример #1
0
        public void TestWithAdequateMinutiaeSet()
        {
            int[,] mask           = Segmentator.Segmetator(img, windowSize, weight, threshold);
            double[,] binaryImage = img; //
            //---------------------------------------
            double sigma = 1.4d;

            double[,] smoothing = LocalBinarizationCanny.Smoothing(binaryImage, sigma);
            double[,] sobel     = LocalBinarizationCanny.Sobel(smoothing);
            double[,] nonMax    = LocalBinarizationCanny.NonMaximumSupperession(sobel);
            nonMax = GlobalBinarization.Binarization(nonMax, 60);
            nonMax = LocalBinarizationCanny.Inv(nonMax);
            int sizeWin = 16;

            binaryImage = LocalBinarizationCanny.LocalBinarization(binaryImage, nonMax, sizeWin, 1.3d);
            //---------------------------------------
            binaryImage = Thining.ThinPicture(binaryImage);
            //---------------------------------------
            List <Minutia> minutiae = MinutiaeDetection.FindMinutiae(binaryImage);

            for (int i = 0; i < minutiae.Count; i++)
            {
                if (mask[minutiae[i].Y, minutiae[i].X] == 0)
                {
                    minutiae.Remove(minutiae[i]);
                    i--;
                }
            }

            minutiae = MinutiaeDetection.FindBigMinutiae(minutiae);

            var response = MCC.MCCMethod(minutiae, img.GetLength(0), img.GetLength(1));

            SaveResponse(response, minutiae);
        }
Пример #2
0
            public override int GetHashCode()
            {
                int hash = 57;

                hash = 27 * hash * MCC.GetHashCode();
                hash = 27 * hash * MNC.GetHashCode();
                hash = 27 * hash * LAC.GetHashCode();
                hash = 27 * hash * CID.GetHashCode();
                return(hash);
            }
Пример #3
0
        public JObject ToJSON()

        => JSONObject.Create(new JProperty("start", Start.ToIso8601()),

                             End.HasValue
                                     ? new JProperty("end", End.Value.ToIso8601())
                                     : null,

                             MCC.IsNotNullOrEmpty()
                                     ? new JProperty("MCC", MCC)
                                     : null,

                             MNC.IsNotNullOrEmpty()
                                     ? new JProperty("MNC", MNC)
                                     : null);
Пример #4
0
        /// <summary>
        /// Compares two LastConnected objects for equality.
        /// </summary>
        /// <param name="LastConnected">An LastConnected object to compare with.</param>
        /// <returns>True if both match; False otherwise.</returns>
        public Boolean Equals(Last_Connected LastConnected)
        {
            if ((Object)LastConnected == null)
            {
                return(false);
            }

            return(Start.Equals(LastConnected.Start) &&

                   ((!End.HasValue && !LastConnected.End.HasValue) ||
                    (End.HasValue && LastConnected.End.HasValue && End.Value.Equals(LastConnected.End.Value))) &&

                   ((!MCC.IsNotNullOrEmpty() && !LastConnected.MCC.IsNotNullOrEmpty()) ||
                    (MCC.IsNotNullOrEmpty() && LastConnected.MCC.IsNotNullOrEmpty() && MCC.Equals(LastConnected.MCC))) &&

                   ((!MNC.IsNotNullOrEmpty() && !LastConnected.MNC.IsNotNullOrEmpty()) ||
                    (MNC.IsNotNullOrEmpty() && LastConnected.MNC.IsNotNullOrEmpty() && MNC.Equals(LastConnected.MNC))));
        }
Пример #5
0
        /// <summary>
        /// Get the hashcode of this object.
        /// </summary>
        public override Int32 GetHashCode()
        {
            unchecked
            {
                return(Start.GetHashCode() * 11 ^

                       (End.HasValue
                            ? End.GetHashCode()
                            : 0) * 7 ^

                       (MCC.IsNotNullOrEmpty()
                            ? MCC.GetHashCode()
                            : 0) * 5 ^

                       (MNC.IsNotNullOrEmpty()
                            ? MNC.GetHashCode()
                            : 0) * 3);
            }
        }
Пример #6
0
        public void TestMcc()
        {
            int[,] maskOfSegmentation2D = Segmentator.Segmetator(img, windowSize, weight, threshold);
            var            thining       = Thining.ThinPicture(GlobalBinarization.Binarization(img, board));
            List <Minutia> minutiaList   = MinutiaeDetection.FindMinutiae(thining);
            List <Minutia> validMinutiae = new List <Minutia>();

            foreach (Minutia minutia in minutiaList)
            {
                if (maskOfSegmentation2D[minutia.Y, minutia.X] == 1) // coordinates swap - ok
                {
                    validMinutiae.Add(minutia);
                }
            }

            var response = MCC.MCCMethod(validMinutiae, thining.GetLength(0), thining.GetLength(1));

            SaveResponse(response, validMinutiae);
        }
Пример #7
0
        public void SimpleTestMcc()
        {
            List <Minutia> twoMinutiae  = new List <Minutia>();
            Minutia        firstMinutia = new Minutia();

            firstMinutia.X     = 40;
            firstMinutia.Y     = 60;
            firstMinutia.Angle = 0;
            twoMinutiae.Add(firstMinutia);

            Minutia secondMinutia = new Minutia();

            secondMinutia.X     = 70;
            secondMinutia.Y     = 100;
            secondMinutia.Angle = Math.PI / 6;
            twoMinutiae.Add(secondMinutia);

            Dictionary <Minutia, Tuple <int[, , ], int[, , ]> > response = MCC.MCCMethod(twoMinutiae, 364, 256);

            SaveResponse(response, twoMinutiae);
        }
Пример #8
0
        /// <summary>
        /// Compares two instances of this object.
        /// </summary>
        /// <param name="LastConnected">An LastConnected object object to compare with.</param>
        public Int32 CompareTo(Last_Connected LastConnected)
        {
            var result = Start.CompareTo(LastConnected.Start);

            if (result != 0)
            {
                return(result);
            }

            if (End.HasValue && LastConnected.End.HasValue)
            {
                result = DateTime.Compare(End.Value, LastConnected.End.Value);
                if (result != 0)
                {
                    return(result);
                }
            }

            if (MCC.IsNotNullOrEmpty() && LastConnected.MCC.IsNotNullOrEmpty())
            {
                result = String.Compare(MCC, LastConnected.MCC, StringComparison.OrdinalIgnoreCase);
                if (result != 0)
                {
                    return(result);
                }
            }

            if (MNC.IsNotNullOrEmpty() && LastConnected.MNC.IsNotNullOrEmpty())
            {
                result = String.Compare(MNC, LastConnected.MNC, StringComparison.OrdinalIgnoreCase);
                if (result != 0)
                {
                    return(result);
                }
            }

            return(result);
        }
Пример #9
0
        static void Main(string[] args)
        {
            // create crew members
            AstronautRepo a = new AstronautRepo();

            Astronaut[] astronauts = a.CreateCrewMember();
            String      captain    = a.GetCaptainName();

            Console.WriteLine("Crew Members are ready");
            Console.WriteLine("Captain is " + captain);
            Console.WriteLine("\n");

            // create rockets
            RocketRepo.CreateRockets();
            Console.WriteLine("Rockets created");
            Console.WriteLine("\n");

            // create mission and assign to captain
            MccController mcc = new MccController();

            mcc.CreateMission(captain);
            Console.WriteLine("Mission Created");
            Console.WriteLine("\n");

            //test singleton
            MCC mcc1 = MCC.GetInstance();
            MCC mcc2 = MCC.GetInstance();

            if (mcc1 == mcc2)
            {
                Console.WriteLine("Singleton works, both variables contain the same instance.");
            }
            else
            {
                Console.WriteLine("Singleton failed, variables contain different instances.");
            }
        }
Пример #10
0
        public void SimpleTestNumerationMcc()
        {
            List <Minutia> twoMinutiae  = new List <Minutia>();
            Minutia        firstMinutia = new Minutia();

            firstMinutia.X     = 40;
            firstMinutia.Y     = 60;
            firstMinutia.Angle = 0;
            twoMinutiae.Add(firstMinutia);

            Minutia secondMinutia = new Minutia();

            secondMinutia.X     = 70;
            secondMinutia.Y     = 100;
            secondMinutia.Angle = Math.PI / 6;
            twoMinutiae.Add(secondMinutia);

            Dictionary <Minutia, Tuple <int[, , ], int[, , ]> > response = MCC.MCCMethod(twoMinutiae, 364, 256);

            for (int i = 0; i < response.Count; i++)
            {
                int[] valueN = Numeration.numerizationBlock(response[twoMinutiae[i]].Item1);
                int[] maskN  = Numeration.numerizationBlock(response[twoMinutiae[i]].Item2);
                for (int j = 0; j < maskN.GetLength(0); j++)
                {
                    //System.Console.Write(valueN[j] + " ");
                    BitArray b    = new BitArray(new int[] { maskN[j] });
                    bool[]   bits = new bool[b.Count];
                    b.CopyTo(bits, 0);

                    if (j % (maskN.Count() / 6) == 0)
                    {
                        //                 System.Console.Write(" j = " + j + "\n");
                    }

                    for (int k = 0; k < bits.GetLength(0); k++)
                    {
                        System.Console.Write(bits[k]? 1 : 0);
                        if (k == 15)
                        {
                            System.Console.Write(" i = " + i + "\n");
                        }
                    }
                    System.Console.Write(" j = " + j + "\n");
                }
                System.Console.WriteLine();
                System.Console.WriteLine();
                for (int j = 0; j < valueN.GetLength(0); j++)
                {
                    //System.Console.Write(valueN[j] + " ");
                    BitArray b    = new BitArray(new int[] { valueN[j] });
                    bool[]   bits = new bool[b.Count];
                    b.CopyTo(bits, 0);

                    if (j % (valueN.Count() / 6) == 0)
                    {
                        //               System.Console.Write(" j = " + j + "\n");
                    }

                    for (int k = 0; k < bits.GetLength(0); k++)
                    {
                        System.Console.Write(bits[k]? 1 : 0);
                        if (k == 15)
                        {
                            System.Console.Write(" i = " + i + "\n");
                        }
                    }
                    System.Console.Write(" j = " + j + "\n");
                }
                System.Console.WriteLine();
                System.Console.WriteLine();
                System.Console.WriteLine();
                System.Console.WriteLine();
            }
        }