Example #1
0
        public Hashes CreateFingerprintsFromImageFrames(Frames imageFrames, FingerprintConfiguration configuration)
        {
            var frames = imageFrames.ToList();
            var hashes = CreateOriginalFingerprintsFromFrames(frames, configuration)
                         .AsParallel()
                         .Select(fingerprint => lshAlgorithm.HashImage(fingerprint, configuration.HashingConfig))
                         .ToList();

            return(new Hashes(hashes, imageFrames.Duration, MediaType.Video, imageFrames.RelativeTo, new[] { imageFrames.Origin }));
        }
Example #2
0
        public Hashes CreateFingerprintsFromImageFrames(IEnumerable <Frame> imageFrames, FingerprintConfiguration configuration)
        {
            var frames = imageFrames.ToList();
            var hashes = CreateOriginalFingerprintsFromFrames(frames, configuration)
                         .AsParallel()
                         .Select(fingerprint => lshAlgorithm.HashImage(fingerprint, configuration.HashingConfig))
                         .ToList()
                         .Join(frames, hashed => hashed.SequenceNumber, frame => frame.SequenceNumber, (hash, frame) =>
            {
                byte[] transformed = configuration.OriginalPointSaveTransform != null ? configuration.OriginalPointSaveTransform(frame) : Array.Empty <byte>();
                return(new HashedFingerprint(hash.HashBins, hash.SequenceNumber, hash.StartsAt, transformed));
            })
                         .ToList();

            return(new Hashes(hashes, GetDuration(hashes, configuration.FingerprintLengthInSeconds)));
        }