MinutiaMatcher DequeueMatcher(PreparedProbe probe) { MinutiaMatcher matcher = DequeueMatcher(); matcher.SelectProbe(probe.ProbeIndex); return(matcher); }
public float[] Match(PreparedProbe probe, IList<Template> candidates) { float[] scores = new float[candidates.Count]; Parallel.For(0, candidates.Count, () => DequeueMatcher(probe), (i, state, matcher) => { scores[i] = matcher.Match(candidates[i]); return matcher; }, (matcher) => { EnqueueMatcher(matcher); }); return scores; }
public float[] Match(PreparedProbe probe, IList <Template> candidates) { float[] scores = new float[candidates.Count]; Parallel.For(0, candidates.Count, () => DequeueMatcher(probe), (i, state, matcher) => { scores[i] = matcher.Match(candidates[i]); return(matcher); }, (matcher) => { EnqueueMatcher(matcher); }); return(scores); }
public PreparedProbe Prepare(Template probe) { PreparedProbe prepared = new PreparedProbe(); MinutiaMatcher matcher = DequeueMatcher(); try { matcher.BuildIndex(probe, prepared.ProbeIndex); } finally { EnqueueMatcher(matcher); } return prepared; }
public PreparedProbe Prepare(Template probe) { PreparedProbe prepared = new PreparedProbe(); MinutiaMatcher matcher = DequeueMatcher(); try { matcher.BuildIndex(probe, prepared.ProbeIndex); } finally { EnqueueMatcher(matcher); } return(prepared); }
MinutiaMatcher DequeueMatcher(PreparedProbe probe) { MinutiaMatcher matcher = DequeueMatcher(); matcher.SelectProbe(probe.ProbeIndex); return matcher; }