public CustomFingerprintingConfiguration()
 {
     DefaultFingerprintingConfiguration defaultFingerprinting = new DefaultFingerprintingConfiguration();
     SamplesPerFingerprint = defaultFingerprinting.SamplesPerFingerprint;
     Overlap = defaultFingerprinting.Overlap;
     WdftSize = defaultFingerprinting.WdftSize;
     MinFrequency = defaultFingerprinting.MinFrequency;
     MaxFrequency = defaultFingerprinting.MaxFrequency;
     TopWavelets = defaultFingerprinting.TopWavelets;
     SampleRate = defaultFingerprinting.SampleRate;
     LogBase = defaultFingerprinting.LogBase;
     FingerprintLength = defaultFingerprinting.FingerprintLength;
     Stride = defaultFingerprinting.Stride;
     LogBins = defaultFingerprinting.LogBins;
     WindowFunction = defaultFingerprinting.WindowFunction;
 }
コード例 #2
0
        /// <summary>
        ///   Start recognition process
        /// </summary>
        private void BtnStartClick(object sender, EventArgs e)
        {
            DefaultFingerprintingConfiguration configuration = new DefaultFingerprintingConfiguration();
            WinQueryResults winform;
            switch (_hashAlgorithm)
            {
                case HashAlgorithm.LSH:
                    if (_fileList == null || _fileList.Count == 0)
                    {
                        MessageBox.Show(
                            Resources.SelectFolderWithSongs,
                            Resources.Songs,
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
                        break;
                    }

                    winform = new WinQueryResults(
                        _cmbConnectionString.SelectedItem.ToString(),
                        (int)_nudNumberOfFingerprints.Value,
                        (int)_numStaratSeconds.Value,
                        WinUtils.GetStride(
                            (StrideType)_cmbStrideType.SelectedIndex,
                            (int)_nudQueryStrideMax.Value,
                            (int)_nudQueryStrideMin.Value,
                            configuration.SamplesPerFingerprint),
                        _fileList,
                        (int)_nudHashtables.Value,
                        (int)_nudKeys.Value,
                        Convert.ToInt32(_nudThreshold.Value),
                        (int)_nudTopWavelets.Value) { FingerprintService = fingerprintService };
                    winform.Show();
                    break;
                case HashAlgorithm.NeuralHasher:
                    if (_fileList == null || _fileList.Count == 0)
                    {
                        MessageBox.Show(
                            Resources.SelectFolderWithSongs,
                            Resources.Songs,
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
                        break;
                    }

                    winform = new WinQueryResults(
                        _cmbConnectionString.SelectedItem.ToString(),
                        (int)_nudNumberOfFingerprints.Value,
                        (int)_numStaratSeconds.Value,
                        WinUtils.GetStride(
                            (StrideType)(_cmbStrideType.SelectedIndex),
                            (int)_nudQueryStrideMax.Value,
                            (int)_nudQueryStrideMin.Value,
                            configuration.SamplesPerFingerprint),
                        (int)_nudTopWavelets.Value,
                        _fileList,
                        _tbPathToEnsemble.Text) { FingerprintService = fingerprintService };
                    winform.Show();
                    break;
                case HashAlgorithm.None:
                    break;
            }
        }
コード例 #3
0
        private void BtnDrawFingerprintsClick(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(_tbPathToFile.Text))
            {
                MessageBox.Show(
                    Resources.SelectAPathToBeDrawn,
                    Resources.SelectFile,
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                return;
            }

            if (!File.Exists(Path.GetFullPath(_tbPathToFile.Text)))
            {
                MessageBox.Show(
                    Resources.NoSuchFile, Resources.NoSuchFile, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (_lbImageTypes.SelectedIndex == 0)
            {
                string fileName = Path.GetFileNameWithoutExtension(_tbPathToFile.Text);
                SaveFileDialog sfd = new SaveFileDialog
                    { FileName = fileName + "_fingerprints_" + ".jpg", Filter = Resources.FileFilterJPeg };
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    string path = Path.GetFullPath(sfd.FileName);
                    FadeControls(false);
                    Action action = () =>
                        {
                            var unit =
                                workUnitBuilder.BuildWorkUnit().On(Path.GetFullPath(_tbPathToFile.Text)).
                                    WithCustomConfiguration(
                                        config => { config.Stride = new StaticStride((int)_nudStride.Value); });

                            List<bool[]> fingerprints = unit.GetFingerprintsUsingService(fingerprintService).Result;
                            IFingerprintingConfiguration configuration = new DefaultFingerprintingConfiguration();
                            int width = configuration.FingerprintLength;
                            int height = configuration.LogBins;
                            Bitmap image = Imaging.GetFingerprintsImage(fingerprints, width, height);
                            image.Save(path);
                            image.Dispose();
                        };

                    action.BeginInvoke(
                        (result) =>
                            {
                                FadeControls(true);
                                MessageBox.Show(
                                    Resources.ImageIsDrawn,
                                    Resources.Finished,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                                action.EndInvoke(result);
                            },
                        action);
                }
            }
            else if (_lbImageTypes.SelectedIndex == 1)
            {
                FolderBrowserDialog fbd = new FolderBrowserDialog();
                if (fbd.ShowDialog() == DialogResult.OK)
                {
                    string path = fbd.SelectedPath;
                    string fileName = Path.GetFileName(_tbPathToFile.Text);
                    FadeControls(false);
                    Action action = () =>
                        {
                            var unit =
                               workUnitBuilder.BuildWorkUnit().On(Path.GetFullPath(_tbPathToFile.Text)).
                                   WithCustomConfiguration(
                                       config => { config.Stride = new StaticStride((int)_nudStride.Value); });
                            List<bool[]> result = unit.GetFingerprintsUsingService(fingerprintService).Result;

                            int i = -1;
                            IFingerprintingConfiguration configuration = new DefaultFingerprintingConfiguration();
                            int width = configuration.FingerprintLength;
                            int height = configuration.LogBins;
                            foreach (bool[] item in result)
                            {
                                Image image = Imaging.GetFingerprintImage(item, width, height);
                                image.Save(path + "\\" + fileName + i++ + ".jpg", ImageFormat.Jpeg);
                            }

                        };
                    action.BeginInvoke(
                        (result) =>
                            {
                                FadeControls(true);
                                MessageBox.Show(
                                    Resources.ImageIsDrawn,
                                    Resources.Finished,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                                action.EndInvoke(result);
                            },
                        action);
                }
            }
        }