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