mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 08:56:30 +00:00
splitting python complete
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using Azaion.Common.Database;
|
||||
using Azaion.Common.DTO;
|
||||
using Azaion.Common.Events;
|
||||
using MediatR;
|
||||
@@ -39,7 +40,6 @@ public class CanvasEditor : Canvas
|
||||
private readonly TimeSpan _viewThreshold = TimeSpan.FromMilliseconds(400);
|
||||
|
||||
public Image BackgroundImage { get; set; } = new() { Stretch = Stretch.Uniform };
|
||||
public IMediator Mediator { get; set; } = null!;
|
||||
|
||||
public static readonly DependencyProperty GetTimeFuncProp =
|
||||
DependencyProperty.Register(
|
||||
@@ -191,7 +191,6 @@ public class CanvasEditor : Canvas
|
||||
private void CanvasMouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
var pos = e.GetPosition(this);
|
||||
Mediator.Publish(new SetStatusTextEvent($"Mouse Coordinates: {pos.X}, {pos.Y}"));
|
||||
_horizontalLine.Y1 = _horizontalLine.Y2 = pos.Y;
|
||||
_verticalLine.X1 = _verticalLine.X2 = pos.X;
|
||||
SetLeft(_classNameHint, pos.X + 10);
|
||||
@@ -223,7 +222,6 @@ public class CanvasEditor : Canvas
|
||||
matrix.Translate(delta.X, delta.Y);
|
||||
|
||||
_matrixTransform.Matrix = matrix;
|
||||
Mediator.Publish(new SetStatusTextEvent(_matrixTransform.Matrix.ToString()));
|
||||
}
|
||||
|
||||
private void CanvasMouseUp(object sender, MouseButtonEventArgs e)
|
||||
@@ -243,8 +241,8 @@ public class CanvasEditor : Canvas
|
||||
{
|
||||
Width = width,
|
||||
Height = height,
|
||||
X = Math.Min(endPos.X, _newAnnotationStartPos.X),
|
||||
Y = Math.Min(endPos.Y, _newAnnotationStartPos.Y),
|
||||
Left = Math.Min(endPos.X, _newAnnotationStartPos.X),
|
||||
Top = Math.Min(endPos.Y, _newAnnotationStartPos.Y),
|
||||
Confidence = 1
|
||||
});
|
||||
control.UpdateLayout();
|
||||
@@ -415,13 +413,26 @@ public class CanvasEditor : Canvas
|
||||
SetTop(_newAnnotationRect, currentPos.Y);
|
||||
}
|
||||
|
||||
public void CreateDetections(TimeSpan time, IEnumerable<Detection> detections, List<DetectionClass> detectionClasses, Size videoSize)
|
||||
public void CreateDetections(Annotation annotation, List<DetectionClass> detectionClasses, Size mediaSize)
|
||||
{
|
||||
foreach (var detection in detections)
|
||||
var splitTile = annotation.SplitTile;
|
||||
foreach (var detection in annotation.Detections)
|
||||
{
|
||||
var detectionClass = DetectionClass.FromYoloId(detection.ClassNumber, detectionClasses);
|
||||
var canvasLabel = new CanvasLabel(detection, RenderSize, videoSize, detection.Confidence);
|
||||
CreateDetectionControl(detectionClass, time, canvasLabel);
|
||||
CanvasLabel canvasLabel;
|
||||
if (splitTile == null)
|
||||
canvasLabel = new CanvasLabel(detection, RenderSize, mediaSize, detection.Confidence);
|
||||
else
|
||||
{
|
||||
canvasLabel = new CanvasLabel(detection, new Size(Constants.AI_TILE_SIZE, Constants.AI_TILE_SIZE), null, detection.Confidence)
|
||||
.ReframeFromSmall(splitTile);
|
||||
|
||||
//From CurrentMediaSize to Render Size
|
||||
var yoloLabel = new YoloLabel(canvasLabel, mediaSize);
|
||||
canvasLabel = new CanvasLabel(yoloLabel, RenderSize, mediaSize, canvasLabel.Confidence);
|
||||
}
|
||||
|
||||
CreateDetectionControl(detectionClass, annotation.Time, canvasLabel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -429,8 +440,8 @@ public class CanvasEditor : Canvas
|
||||
{
|
||||
var detectionControl = new DetectionControl(detectionClass, time, AnnotationResizeStart, canvasLabel);
|
||||
detectionControl.MouseDown += AnnotationPositionStart;
|
||||
SetLeft(detectionControl, canvasLabel.X );
|
||||
SetTop(detectionControl, canvasLabel.Y);
|
||||
SetLeft(detectionControl, canvasLabel.Left );
|
||||
SetTop(detectionControl, canvasLabel.Top);
|
||||
Children.Add(detectionControl);
|
||||
CurrentDetections.Add(detectionControl);
|
||||
_newAnnotationRect.Fill = new SolidColorBrush(detectionClass.Color);
|
||||
@@ -472,4 +483,12 @@ public class CanvasEditor : Canvas
|
||||
}
|
||||
|
||||
public void ResetBackground() => Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 0));
|
||||
|
||||
public void ZoomTo(Point point)
|
||||
{
|
||||
SetZoom();
|
||||
var matrix = _matrixTransform.Matrix;
|
||||
matrix.ScaleAt(2, 2, point.X, point.Y);
|
||||
SetZoom(matrix);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user