mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 10:16:30 +00:00
36 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
|