mirror of
https://github.com/unclshura/splitter.git
synced 2026-06-21 16:12:01 +00:00
42 lines
923 B
C#
42 lines
923 B
C#
namespace Splitter_UI.Services;
|
|
|
|
public class SingleThreadedDetector<T>(IObjectDetector _detector) : IObjectDetector
|
|
where T : IObjectDetector
|
|
{
|
|
private Lock _lock = new();
|
|
|
|
public List<DetectedPerson> DetectAll(SingleTask job, Mat frameCont)
|
|
{
|
|
lock (_lock)
|
|
{
|
|
return _detector.DetectAll(job, frameCont);
|
|
}
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
if ( _detector is IDisposable d )
|
|
d.Dispose();
|
|
}
|
|
}
|
|
|
|
public class SingleThreadedEmbeddingExtractor<T>(IEmbeddingExtractor _extractor) : IEmbeddingExtractor
|
|
where T : IEmbeddingExtractor
|
|
{
|
|
private Lock _lock = new();
|
|
|
|
public float[] Extract(Mat frame, OpenCvSharp.Rect box)
|
|
{
|
|
lock (_lock)
|
|
{
|
|
return _extractor.Extract(frame, box);
|
|
}
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
if (_extractor is IDisposable d)
|
|
d.Dispose();
|
|
}
|
|
|
|
} |