public static double[][] GetQueryFeaturesSet(Bitmap image, SOMParams somParams)
        {
            var featExtractor = new Ratha1995MinutiaeExtractor();
            var features = featExtractor.ExtractFeatures(image);

            var queryFeaturesSet = new double[features.Count][];

            for (var i = 0; i < features.Count; i++)
            {
                // create new sample
                var feature = features[i];

                queryFeaturesSet[i] = new double[somParams.CharacteristicsCount];
                queryFeaturesSet[i][0] = feature.Angle * somParams.AngleMultiplier;
                queryFeaturesSet[i][1] = (double)feature.MinutiaType * somParams.TypeMultiplier;
                queryFeaturesSet[i][2] = feature.X * somParams.CoordsMultiplier;
                queryFeaturesSet[i][3] = feature.Y * somParams.CoordsMultiplier;
                queryFeaturesSet[i][4] = feature.GetHashCode() * somParams.HashCodeMultiplier;
            }

            return queryFeaturesSet;
        }
        private void ExtractFeatures()
        {
            var featExtractor = new Ratha1995MinutiaeExtractor();

            foreach (var person in existingPeople)
            {
                var fingerprintOwner = new Person(person);

                foreach (var finger in wantedFingers)
                {
                    var fingerprintFinger = new Fingerprint(int.Parse(finger));

                    foreach (var scan in wantedScans)
                    {
                        var fingerprintImg =
                            ImageLoader.LoadImage(string.Format(@"{0}{1}_{2}_{3}.tif", Folder, person, finger, scan));
                        var features = featExtractor.ExtractFeatures(fingerprintImg);

                        var fingerprintScan = new Scan(int.Parse(scan), features);
                        fingerprintFinger.Scans.Add(fingerprintScan);
                    }

                    fingerprintOwner.Fingerprints.Add(fingerprintFinger);
                }

                People.Add(fingerprintOwner);
            }
        }