Files
annotations/Azaion.Common/Services/DetectionClassProvider.cs
T

36 lines
1.2 KiB
C#

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;
}
}