fix detection label

fix schema migrator for enums
This commit is contained in:
Oleksandr Bezdieniezhnykh
2025-08-13 10:12:25 +03:00
parent 16e5853d67
commit 4780e8c61c
7 changed files with 45 additions and 14 deletions
+5 -6
View File
@@ -1,7 +1,6 @@
using System.IO;
using System.Windows.Media;
using Azaion.Common.DTO;
using Azaion.Common.DTO.Config;
using Azaion.Common.DTO.Queue;
using MessagePack;
@@ -13,14 +12,14 @@ public class Annotation
private static string _labelsDir = null!;
private static string _imagesDir = null!;
private static string _thumbDir = null!;
private static Dictionary<int, DetectionClass> _detectionClassesDict;
public static Dictionary<int, DetectionClass> DetectionClassesDict = null!;
public static void Init(DirectoriesConfig config, Dictionary<int, DetectionClass> detectionClassesDict)
{
_labelsDir = config.LabelsDirectory;
_imagesDir = config.ImagesDirectory;
_thumbDir = config.ThumbnailsDirectory;
_detectionClassesDict = detectionClassesDict;
DetectionClassesDict = detectionClassesDict;
}
[Key("n")] public string Name { get; set; } = null!;
@@ -76,7 +75,7 @@ public class Annotation
private List<(Color Color, double Confidence)>? _colors;
[IgnoreMember] public List<(Color Color, double Confidence)> Colors => _colors ??= Detections
.Select(d => (_detectionClassesDict[d.ClassNumber].Color, d.Confidence))
.Select(d => (DetectionClassesDict[d.ClassNumber].Color, d.Confidence))
.ToList();
private string _className;
@@ -88,8 +87,8 @@ public class Annotation
{
var detectionClasses = Detections.Select(x => x.ClassNumber).Distinct().ToList();
_className = detectionClasses.Count > 1
? string.Join(", ", detectionClasses.Select(x => _detectionClassesDict[x].UIName))
: _detectionClassesDict[detectionClasses.FirstOrDefault()].UIName;
? string.Join(", ", detectionClasses.Select(x => DetectionClassesDict[x].UIName))
: DetectionClassesDict[detectionClasses.FirstOrDefault()].UIName;
}
return _className;
}
+3
View File
@@ -85,6 +85,9 @@ public static class SchemaMigrator
if (underlyingType == typeof(bool))
return $"NOT NULL DEFAULT {(Convert.ToBoolean(defaultValue) ? 1 : 0)}";
if (underlyingType.IsEnum)
return $"NOT NULL DEFAULT {(int)defaultValue}";
if (underlyingType.IsValueType && defaultValue is IFormattable f)
return $"NOT NULL DEFAULT {f.ToString(null, System.Globalization.CultureInfo.InvariantCulture)}";