private List<Fingerprint> CreateFingerprintsFromLogSpectrum(IEnumerable<SpectralImage> spectralImages, FingerprintConfiguration configuration)
{
var fingerprints = new ConcurrentBag<Fingerprint>();
Parallel.ForEach(spectralImages, spectralImage =>
{
waveletDecomposition.DecomposeImageInPlace(spectralImage.Image);
bool[] image = fingerprintDescriptor.ExtractTopWavelets(spectralImage.Image, configuration.TopWavelets);
if (!IsSilence(image))
{
fingerprints.Add(new Fingerprint(image, spectralImage.StartsAt, spectralImage.SequenceNumber));
}
});
return fingerprints.ToList();
}