public Fingerprinter(FingerprinterConfiguration config, IFFTService fftService) { m_image = new Image(12); if (config == null) { config = new FingerprinterConfigurationTest1(); } m_image_builder = new ImageBuilder(m_image); m_chroma_normalizer = new ChromaNormalizer(m_image_builder); m_chroma_filter = new ChromaFilter(config.FilterCoefficients, m_chroma_normalizer); m_chroma = new Chroma(MIN_FREQ, MAX_FREQ, FRAME_SIZE, SAMPLE_RATE, m_chroma_filter); //m_chroma.set_interpolate(true); // TODO: inject IFFTService m_fft = new FFT(FRAME_SIZE, OVERLAP, m_chroma, fftService); if (config.RemoveSilence) { m_silence_remover = new SilenceRemover(m_fft); m_silence_remover.Threshold = config.SilenceThreshold; m_audio_processor = new AudioProcessor(SAMPLE_RATE, m_silence_remover); } else { m_silence_remover = null; m_audio_processor = new AudioProcessor(SAMPLE_RATE, m_fft); } m_fingerprint_calculator = new FingerprintCalculator(config.Classifiers); m_config = config; }
public void TestCalculateSubfingerprint() { Image image = new Image(2, 2); image[0, 0] = 0.0; image[0, 1] = 1.0; image[1, 0] = 2.0; image[1, 1] = 3.0; Classifier[] classifiers = { new Classifier(new Filter(0, 0, 1, 1), new Quantizer(0.01, 1.01, 1.5)), }; FingerprintCalculator calculator = new FingerprintCalculator(classifiers); IntegralImage integral_image = new IntegralImage(image); Assert.AreEqual(TestsHelper.GrayCode(0), calculator.CalculateSubfingerprint(integral_image, 0)); Assert.AreEqual(TestsHelper.GrayCode(2), calculator.CalculateSubfingerprint(integral_image, 1)); }
public void TestCalculate() { Image image = new Image(2, 3); image[0, 0] = 0.0; image[0, 1] = 1.0; image[1, 0] = 2.0; image[1, 1] = 3.0; image[2, 0] = 4.0; image[2, 1] = 5.0; Classifier[] classifiers = { new Classifier(new Filter(0, 0, 1, 1), new Quantizer(0.01, 1.01, 1.5)), }; FingerprintCalculator calculator = new FingerprintCalculator(classifiers); int[] fp = calculator.Calculate(image); Assert.AreEqual(3, fp.Length); Assert.AreEqual(TestsHelper.GrayCode(0), fp[0]); Assert.AreEqual(TestsHelper.GrayCode(2), fp[1]); Assert.AreEqual(TestsHelper.GrayCode(3), fp[2]); }