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 _detectionClasses; public DetectionClassProvider(IOptions annotationConfig) { _detectionClasses = annotationConfig.Value.DetectionClassesDict; } public Dictionary 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; } }