mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 10:36:30 +00:00
big refactoring. get rid of static properties and coupled architecture. prepare system for integration tests
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using System.Windows.Media;
|
||||
using Azaion.Common.Database;
|
||||
using Azaion.Common.DTO;
|
||||
using Azaion.Common.DTO.Config;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Azaion.Common.Services;
|
||||
|
||||
public class DetectionClassProvider : IDetectionClassProvider
|
||||
{
|
||||
private readonly Dictionary<int, DetectionClass> _detectionClasses;
|
||||
|
||||
public DetectionClassProvider(IOptions<AnnotationConfig> annotationConfig)
|
||||
{
|
||||
_detectionClasses = annotationConfig.Value.DetectionClassesDict;
|
||||
}
|
||||
|
||||
public Dictionary<int, DetectionClass> GetDetectionClasses() => _detectionClasses;
|
||||
|
||||
public List<(Color Color, double Confidence)> GetColors(Annotation annotation)
|
||||
{
|
||||
return annotation.Detections
|
||||
.Select(d => (_detectionClasses[d.ClassNumber].Color, d.Confidence))
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public string GetClassName(Annotation annotation)
|
||||
{
|
||||
var detectionClasses = annotation.Detections.Select(x => x.ClassNumber).Distinct().ToList();
|
||||
return detectionClasses.Count > 1
|
||||
? string.Join(", ", detectionClasses.Select(x => _detectionClasses[x].UIName))
|
||||
: _detectionClasses[detectionClasses.FirstOrDefault()].UIName;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user