private void buttonCompute_Click(object sender, EventArgs e) { var size = int.Parse(textBoxSize.Text); var family = (WaveletFamily)comboBoxFamily.SelectedIndex; var taps = comboBoxTaps.SelectedIndex + 1; var wavelet = new Wavelet(family, taps); var fwt = new Fwt(size, wavelet); var output = new float[size]; var reconstructed = new float[size]; fwt.Direct(Enumerable.Range(0, size).Select(x => (float)x).ToArray(), output); fwt.Inverse(output, reconstructed); var res = string.Join("\r\n", output.Select(o => o.ToString())); textBoxResult.Text = res; var inv = string.Join("\r\n", reconstructed.Select(o => o.ToString())); textBoxResultInv.Text = inv; labelWaveletName.Text = wavelet.Name; linePlotWavelet.Thickness = 2; linePlotWavelet.Stride = 8; linePlotWavelet.Line = wavelet.LoD; linePlotWavelet.Markline = wavelet.HiD; var coeffs = string.Join("\r\n", wavelet.LoD.Select(o => o.ToString())); textBoxCoeffs.Text = coeffs; }
/// <summary> /// Constructs extractor from configuration <paramref name="options"/>. /// </summary> public WaveletExtractor(WaveletOptions options) : base(options) { _blockSize = options.FwtSize > FrameSize ? options.FwtSize : MathUtils.NextPowerOfTwo(FrameSize); FeatureCount = options.FeatureCount > 0 ? options.FeatureCount : _blockSize; _waveletName = options.WaveletName; _level = options.FwtLevel; _fwt = new Fwt(_blockSize, new Wavelet(_waveletName)); _coeffs = new float[_blockSize]; }