From 559338b95fccf189f5eadbef2358c93fac3018b5 Mon Sep 17 00:00:00 2001 From: tanglong <842690096@qq.com> Date: Fri, 10 Oct 2025 19:44:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E4=BA=BA=E8=B7=B3=E7=BB=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Wpf_AiSportsMicrospace/App.xaml | 4 +- Wpf_AiSportsMicrospace/App.xaml.cs | 13 + Wpf_AiSportsMicrospace/Views/Home.xaml.cs | 11 +- .../Views/JumpRope/GroupJumpRope.xaml | 18 +- .../Views/JumpRope/GroupJumpRope.xaml.cs | 360 +++++++++++++++++- sdks/Yztob.AiSports.Common.dll | Bin 8675840 -> 8675840 bytes sdks/Yztob.AiSports.Inferences.dll | Bin 18406400 -> 18406400 bytes sdks/Yztob.AiSports.Inferences.xml | 2 +- sdks/Yztob.AiSports.Postures.dll | Bin 118272 -> 118272 bytes sdks/Yztob.AiSports.Sensors.WinForm.dll | Bin 13824 -> 14336 bytes sdks/Yztob.AiSports.Sensors.WinForm.xml | 12 +- sdks/Yztob.AiSports.Sensors.dll | Bin 15872 -> 15872 bytes sdks/Yztob.AiSports.Sensors.xml | 6 + 13 files changed, 393 insertions(+), 33 deletions(-) diff --git a/Wpf_AiSportsMicrospace/App.xaml b/Wpf_AiSportsMicrospace/App.xaml index 726f59f..7a315bd 100644 --- a/Wpf_AiSportsMicrospace/App.xaml +++ b/Wpf_AiSportsMicrospace/App.xaml @@ -2,7 +2,9 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Wpf_AiSportsMicrospace.Views" - StartupUri="Views/Main.xaml"> + StartupUri="Views/JumpRope/GroupJumpRope.xaml"> + + diff --git a/Wpf_AiSportsMicrospace/App.xaml.cs b/Wpf_AiSportsMicrospace/App.xaml.cs index c26a4cf..c0a947f 100644 --- a/Wpf_AiSportsMicrospace/App.xaml.cs +++ b/Wpf_AiSportsMicrospace/App.xaml.cs @@ -1,6 +1,8 @@ using System.Configuration; using System.Data; using System.Windows; +using Yztob.AiSports.Common; +using Yztob.AiSports.Common.Implement; namespace Wpf_AiSportsMicrospace; @@ -9,5 +11,16 @@ namespace Wpf_AiSportsMicrospace; /// public partial class App : Application { + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + +#if DEBUG + // 初始化 DebugTracker + DebugTracker.Enabled = true; + DebugTracker.Channels.Add(new DiagnosisDebugTrackChannel()); +#endif + + } } diff --git a/Wpf_AiSportsMicrospace/Views/Home.xaml.cs b/Wpf_AiSportsMicrospace/Views/Home.xaml.cs index a451699..d271d44 100644 --- a/Wpf_AiSportsMicrospace/Views/Home.xaml.cs +++ b/Wpf_AiSportsMicrospace/Views/Home.xaml.cs @@ -122,7 +122,6 @@ namespace Wpf_AiSportsMicrospace mainWin.SwitchPage(new GroupJumpRope(), true); } } - private void StartFrameProcessing() { Task.Run(() => @@ -135,15 +134,7 @@ namespace Wpf_AiSportsMicrospace } else { - //_webcamClient.OnExtractFrame += frame => - //{ - // if (frame != null) - // _frameQueue.Enqueue(frame); - //}; - //_webcamClient.StartExtract(); - - _webcamClient.StartExtract(); - //Thread.Sleep(5); + Thread.Sleep(5); } } }, _cts.Token); diff --git a/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml b/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml index 56423cc..48401f4 100644 --- a/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml +++ b/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml @@ -4,21 +4,13 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Wpf_AiSportsMicrospace.Views" - mc:Ignorable="d" Height="500" Width="800"> - + mc:Ignorable="d" Height="1080" Width="1920" Loaded="UserControl_Loaded"> + - - - - - + + + diff --git a/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml.cs b/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml.cs index e8da202..b998f0c 100644 --- a/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml.cs +++ b/Wpf_AiSportsMicrospace/Views/JumpRope/GroupJumpRope.xaml.cs @@ -1,5 +1,9 @@ -using System; +using Emgu.CV.Flann; +using HandyControl.Controls; +using System; +using System.Collections.Concurrent; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using System.Text; @@ -11,8 +15,20 @@ using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; +using System.Windows.Shapes; +using System.Windows.Threading; using Wpf_AiSportsMicrospace.Common; +using Wpf_AiSportsMicrospace.Dto; +using Wpf_AiSportsMicrospace.Enum; +using Wpf_AiSportsMicrospace.Service; using WpfAnimatedGif; +using Yztob.AiSports.Common; +using Yztob.AiSports.Common.Implement; +using Yztob.AiSports.Inferences.Abstractions; +using Yztob.AiSports.Inferences.Things; +using Yztob.AiSports.Postures.Sports; +using Yztob.AiSports.Sensors.Abstractions; +using Yztob.AiSports.Sensors.Things; namespace Wpf_AiSportsMicrospace.Views { @@ -21,17 +37,347 @@ namespace Wpf_AiSportsMicrospace.Views /// public partial class GroupJumpRope : UserControl { + private IHumanPredictor _humanPredictor; + private IObjectDetector _objectDetector; + private HumanGraphicsRenderer _humanGraphicsRenderer; + private WebcamClient _webcamClient; + private ConcurrentQueue _frameQueue = new(); + private CancellationTokenSource _cts = new(); + private SportOperate _sportOperate; + private SportBase _sport; + private readonly SportDetectionQueue _detectQueue; + + private List sports = new(); + private List circleTexts = new(); + private double[] circlePositionsX = { 0.10, 0.24, 0.35, 0.48, 0.60, 0.72, 0.88 }; + + ConfigService configService = new ConfigService(); public GroupJumpRope() { InitializeComponent(); + _humanPredictor = HumanPredictorFactory.Create(HumanPredictorType.MultiMedium); + _objectDetector = ObjectDetectorFactory.CreateSportGoodsDetector(); + _humanGraphicsRenderer = new HumanGraphicsRenderer(); + _humanGraphicsRenderer.DrawLabel = false; - var image = new BitmapImage(); - image.BeginInit(); - image.UriSource = new Uri("../../Resources/Img/gif/1.gif", UriKind.Relative); // 替换成你的 GIF 路径 - image.EndInit(); + _detectQueue = new SportDetectionQueue(); + } + private void UserControl_Loaded(object sender, RoutedEventArgs e) + { + //DrawJumpRope3DPointsWithGlow(); - // 设置动画源 - ImageBehavior.SetAnimatedSource(GifImage, image); + DrawCirclesWithText(); + + _sportOperate = new SportOperate(); + _webcamClient = _sportOperate.CreateRTSP(); + + _webcamClient.OnExtractFrame += frame => + { + if (frame != null) + _frameQueue.Enqueue(frame); + }; + _webcamClient.StartExtract(); + + StartFrameProcessing(); + } + + private void StartFrameProcessing() + { + Task.Run(() => + { + while (!_cts.Token.IsCancellationRequested) + { + if (_frameQueue.TryDequeue(out var frame)) + { + ProcessFrame(frame); + } + else + { + Thread.Sleep(5); // 空队列时避免忙等 + } + } + }, _cts.Token); + } + + + private void ProcessFrame(VideoFrame frame) + { + try + { + var buffer = frame.GetImageBuffer(ImageFormat.Jpeg).ToArray(); + var humanResult = _humanPredictor.Predicting(buffer, frame.Number); + + var humans = humanResult?.Humans?.ToList(); + if (humans == null || humans.Count == 0) + return; + + UpdateCircleCounts(humans); + } + catch (Exception ex) + { + Console.WriteLine("OnFrameExtracted error: " + ex.Message); + } + } + public Human LocateHuman(List humans, double begin, double end, double frameWidth) + { + if (humans == null || humans.Count == 0) + return null; + + foreach (var hu in humans) + { + var nose = hu.Keypoints.FirstOrDefault(k => k.Name == "nose"); + if (nose == null) + continue; + + // 使用 Canvas 宽度归一化 + double xNorm = nose.X / frameWidth; + + if (xNorm >= begin && xNorm <= end) + return hu; + } + + return null; + } + + private void DrawCirclesWithText() + { + overlayCanvas.Children.Clear(); + sports.Clear(); + circleTexts.Clear(); + + double imgWidth = overlayCanvas.ActualWidth; + double imgHeight = overlayCanvas.ActualHeight; + double radius = 100; + + double yOffset = -0.10; // 向上移动 10% 屏幕高度 + + // 每个圆的位置:X 和 Y 都归一化 0~1 + var circlePositions = new List<(double XNorm, double YNorm)> + { + (0.10, 0.88 + yOffset), // 后排 + (0.24, 0.60 + yOffset), // 前排 + (0.35, 0.88 + yOffset), + (0.48, 0.60 + yOffset), + (0.60, 0.88 + yOffset), + (0.72, 0.60 + yOffset), + (0.88, 0.88 + yOffset) + }; + + foreach (var pos in circlePositions) + { + double x = pos.XNorm * imgWidth; + double y = pos.YNorm * imgHeight; + + // 绘制发光圆 + AddGlowEllipse(x, y, overlayCanvas); + + // 创建文本控件 + var text = new TextBlock + { + Text = "0", + Foreground = Brushes.Red, + FontWeight = FontWeights.Bold, + FontSize = 50, + TextAlignment = TextAlignment.Center, + Width = radius * 2 + }; + Canvas.SetLeft(text, x - radius); + Canvas.SetTop(text, y - radius - 25); + overlayCanvas.Children.Add(text); + circleTexts.Add(text); + + // 绑定运动对象 + var sport = SportBase.Create("rope-skipping"); + int index = circleTexts.Count - 1; + sport.OnTicked += (count, times) => + { + Application.Current.Dispatcher.Invoke(() => + { + circleTexts[index].Text = count.ToString(); + }); + }; + sport.Start(); + sports.Add(sport); + } + } + + + private void UpdateCircleCounts(List humans) + { + for (int i = 0; i < circlePositionsX.Length; i++) + { + double center = circlePositionsX[i]; + double range = 0.08; + double begin = center - range; + double end = center + range; + + var human = LocateHuman(humans, begin, end, overlayCanvas.ActualWidth); + if (human != null) + { + sports[i].Pushing(human); + + //Application.Current.Dispatcher.Invoke(() => + //{ + // circleTexts[i].Text = human.Score.ToString(); + //}); + + //sports[i].OnTicked = (count, times) => + //{ + // // 在 UI 线程更新文本 + // //Application.Current.Dispatcher.Invoke(() => + // //{ + // // circleTexts[i].Text = count.ToString(); + // //}); + //}; + + } + } + } + + private void AddGlowEllipse(double centerX, double centerY, double radius, Canvas canvas) + { + var ellipse = new Ellipse + { + Width = radius * 2, + Height = radius, + Stroke = Brushes.Red, + StrokeThickness = 3, + Opacity = 0.7 + }; + + Canvas.SetLeft(ellipse, centerX - radius); + Canvas.SetTop(ellipse, centerY - radius / 2); + canvas.Children.Add(ellipse); + } + + private void DrawJumpRope3DPointsWithGlow() + { + configService.LoadAllConfigs(); + + ConfigSet jumpRopeConfig; + + double imgWidth = 1920; + double imgHeight = 1080; + + if (imgWidth <= 0 || imgHeight <= 0) return; + + overlayCanvas.Children.Clear(); + overlayCanvas.Width = imgWidth; + overlayCanvas.Height = imgHeight; + + bool needSaveConfig = false; + + if (configService.ConfigDic.TryGetValue("rope-skipping", out jumpRopeConfig) || jumpRopeConfig.Points.Count == 0) + { + jumpRopeConfig = new ConfigSet { Name = "rope-skipping" }; + needSaveConfig = true; + + double yOffset = -0.10; + double frontRadius = 85; + double backRadius = 70; + + double frontY = 0.70 + yOffset; + var frontPositions = new List<(double XNorm, double YNorm)> + { + (0.24, frontY), + (0.48, frontY), + (0.72, frontY) + }; + + foreach (var pos in frontPositions) + { + double x = pos.XNorm * imgWidth; + double y = pos.YNorm * imgHeight; + + jumpRopeConfig.Points.Add(new PointConfig + { + X = x, + Y = y, + Radius = frontRadius, + XNorm = pos.XNorm, + YNorm = pos.YNorm + }); + + AddGlowEllipse(x, y, overlayCanvas); + } + + double backY = 0.88 + yOffset; + var backPositions = new List<(double XNorm, double YNorm)> + { + (0.10, backY), + (0.35, backY), + (0.60, backY), + (0.88, backY) + }; + + foreach (var pos in backPositions) + { + double x = pos.XNorm * imgWidth; + double y = pos.YNorm * imgHeight; + + jumpRopeConfig.Points.Add(new PointConfig + { + X = x, + Y = y, + Radius = backRadius, + XNorm = pos.XNorm, + YNorm = pos.YNorm + }); + + AddGlowEllipse(x, y, overlayCanvas); + } + } + else + { + foreach (var point in jumpRopeConfig.Points) + { + double x = point.XNorm * imgWidth; + double y = point.YNorm * imgHeight; + AddGlowEllipse(x, y, overlayCanvas); + } + } + + if (needSaveConfig) + { + configService.ConfigDic[jumpRopeConfig.Name] = jumpRopeConfig; + configService.SaveAllConfigs(); + } + } + + /// + /// 添加带渐变光的圆圈(中心红色,边缘蓝色) + /// + private void AddGlowEllipse(double centerX, double centerY, Canvas canvas) + { + double radius = 70; // 统一半径 + double flattenFactor = 0.5; // 统一扁平化比例 + double opacity = 0.8; // 统一透明度 + + var ellipse = new Ellipse + { + Width = radius * 2, + Height = radius * flattenFactor, + Opacity = opacity, + Fill = new RadialGradientBrush + { + GradientOrigin = new Point(0.5, 0.5), + Center = new Point(0.5, 0.5), + RadiusX = 0.5, + RadiusY = 0.5, + GradientStops = new GradientStopCollection + { + new GradientStop(Color.FromArgb(220, 255, 255, 0), 0.0), // 中心黄 + new GradientStop(Color.FromArgb(180, 255, 255, 0), 0.4), // 中间黄 + new GradientStop(Color.FromArgb(180, 0, 0, 255), 0.7), // 边缘蓝 + new GradientStop(Color.FromArgb(0, 0, 0, 255), 1.0) // 外部透明 + } + } + }; + + // 定位到中心 + Canvas.SetLeft(ellipse, centerX - radius); + Canvas.SetTop(ellipse, centerY - (radius * flattenFactor) / 2); + canvas.Children.Add(ellipse); } } } diff --git a/sdks/Yztob.AiSports.Common.dll b/sdks/Yztob.AiSports.Common.dll index 534f2549d00b564e0fe86c2bf297d3bff87321bd..98ab8c801fa28004f5895c7c5c4a6cd3e2080367 100644 GIT binary patch delta 2210 zcma*odu&r>7{~GFY-Oy_;noc|Mg^*6+}hE#-A=oWZ5`bWm@pV@T*N5@x!(&Dffe?G zC}`GerfkX527BV!-xZE6_&eV=wUa1qQr^Ac;q)DKINdXHy5=yaX3{5LQ)(7b z3ZD<0e>rDDMpvKn`97xxDUb>l7y)T864Jp6qhK`HAOpt0Ly!qsV25nTfwAx~IsW1(u!whhP2MS>(c%cY<;D-PdLkZ{*gbPeL0!1y92&XouCX2A+YnunyM42G|IjU^8rit*{NY!w%R9QP>5$p#z?UJ@6dt zg?+FeIw1xJ;2?AveNOexC~YXQ%B_xScZ}cMYQCm@X;c=fu_HpKedg~dp4Vl4pX}71 zEV__!(_*J)zd6=}svBXaVBmhO(d^Wgc*(EEFCOHJ_iw+;)s?r;dIC4hD>iR9fZN|f zU6kt2Fi?&XbL=o($LgvGI=_9TgQkS^GQlD|P zNL}XIEOmwJP^aWqoTsD)xca5O=ej2K6W6a&*SV~v$(Q+s%Oy3)RVnp5*D|R)T+vee z$1wkjyPRn|xUS5A3y`2g2UsdBElQbDfuD6HR0Rh)-qFv9hQR6W-R zQuDaJky^lYN2-}Cb5?TsRxY>H3a&b-Hm+4>bz=E;&iyjDmg|JnMy_|IwsKvS+R1fW zs)Nf~kz9T+*JP;}SCy3FTF%wkOGh|&%iuAt9;t4wx22AAeIfM<*A1ytTq%{w zkUGOvDs`5tl`C#&LG?$P-4RygB1npnpoNRVhAph-*j!#cq8HUv>z-i1U+oFh)Yf{c z1GQm~H|(qR`$FDGaZO2LPor}FubIY&jcQ2CZ1{QIl6K$3x|3&Lzk92$e6ewPzUmlR zf3R!YG}0OuU~{De#ISA0S`^Nbhq+;A!xYHHUZ2~l@TQSPul>2Rw)@8&(VG_zM!sD; za4T`FMZM^J@T&Rr#HjZcj*d3jr%m*~x+bBwD!;M4RpqCQwlcjl?o_Qp*TY mAr(=ON+?9SQMp1H4_r&6u2f|YOlw-H`n0$=&CuG^u=Wq?R5eHd delta 2242 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 delta 52627 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 diff --git a/sdks/Yztob.AiSports.Inferences.xml b/sdks/Yztob.AiSports.Inferences.xml index 0f8bf63..f4bc390 100644 --- a/sdks/Yztob.AiSports.Inferences.xml +++ b/sdks/Yztob.AiSports.Inferences.xml @@ -52,7 +52,7 @@ 单人检测-高精度,3D结构 - +

多人检测-低精度低速率,2D结构 diff --git a/sdks/Yztob.AiSports.Postures.dll b/sdks/Yztob.AiSports.Postures.dll index 6902d4296779c24dcb48561e1d3049225e717f47..3690e60eae344d51c4f3cc60e93e83a3ae4ca0e3 100644 GIT binary patch delta 862 zcma)%Ye-XJ7{{Og(VeYLcc$}b<#b7Fq&e}p?QBkhJWhj_Vmz8A2&tSrHLk zXqEaFC{a?P6;v265mBOc!=NZix=~+3=u1UpezJG_=%-$I|Ifqk`Sb99V%_Fgw>f@1 zCA@w3@X5O;F={TJqE5+5MW#uMl?vRG7MW_2Kg~ zPOs6F=_OCr!)z}xd101#!(2sL6N%a7J9 zBAKF0wV`2A3GU1`$US>B&7gxhqiH&MbDA7#Y{#e{7(?xdGhP@c%?lkO? zBn7<7j#DWLXsvqzd2mj0f~cKqnfN59$8dD6lg^+m#Yty*?i@_bM?Y5=W3?OSS#urQ zah-jwLt(LsSJEoH&wnRvz-3#5=vSJ)3iVQgcPFPulIjN6H=+v&@)z~^V8RyOzYR;X zQwKb*2>ZPc^`e_DXY2N(*4^)EXrkn6Q4_@^ezFnOMMHdOKVp(c3+w(+d1=U}S5^mo zff|3*R~Zcle1=h06{rqJtIKqaFFAx>a7zr0d7h9z8m+3-gTC^RruhOv!|)k3!LToA zltzQqh91=XW$b(p3jWK<$9v$gI(D4u==0WFYi^Ez-hA)0?HB*shmX0bgHyAPvGHL9 z963KazL(tI=gB`-y#B(7sgAiu5T7@bCj9YU@7DXzFyW3j-{4~-cm$g(GT491+#Q8B}oF@|g47{fIF0l*I2761SM delta 862 zcma)%T}YEr7{{OgtG=^Mx4HRFQ*%j6(t6G5+=mvl*UccLvJXkpx=3S1Nr5G4#sZPh zASv{8F$uHGt_nd8)P;(v5f(*ZVg-F&MBNxf_5s@2F1_j;&i{G%J%0}WCmhj*Bf9QO zakIAZi(MmKnAB~0MLm+9@)H&l^^{{@Oq3}nM%w6@;8%spq{~oDM*2kTd?IF(ucJC! zrUNO8Nu~yNcolZlM37JSC<2+DXTKNv-TYpVK5LZEOHtlrQcU@D+7Rv2p_mG2GqqV{ zN;OBn$uln7Wa>0c8)VuiraS4UG;J`_W~S344>so1qYM^yQjaycRiv19&`4T$icAIQ zk=*nWAxkbfQb%pM#N-W`GJPa=Uk{fvAiOdu*2PRCjf=gER3}uX##s7F5vr6ld`T_F z=~N<_>`XDBVdE+cr)y+SpG?xIEp0N%O}S|yODXLTRyP?bB$7{w9mQVkwgKmGh1-*G zMv}e~?=|9boM{02?d!>btCAH&d$`krcXIMUv}ai9IL^jd=>*SQjo<6g&Xuj$YeyqH zR*PnIun)D!+q6J0q$PU~X&hq${Ay?~iNJ%l$2*uwAD zW4kSW$not6`_Y0!@q>JKXw<0X@qZe=!4yRA6 z2zs=jS{^8>P+cCsPu2XISM>&bMegE2p(j`zLdb z+&y?M!8e`~B}x_q#+IfLigI0H0qx(9JZ;UrI2S^_A@^72xBmOJ2K=T o0*T7m6mB5dMFmtuCE|L>$IBmMVg+N?Cn#HCOPRqSIA*Ynf7O2H4*&oF diff --git a/sdks/Yztob.AiSports.Sensors.WinForm.dll b/sdks/Yztob.AiSports.Sensors.WinForm.dll index a7a482d38dafceba38ecf158138e1d54c9ad1c04..5ee51352e7c5d43e9fa9851af70394bc3a24859d 100644 GIT binary patch delta 6690 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 a%R1FoPGRO)_s8I~*Y^5r{>ruv*Z&U&eq~qy delta 5713 zcmbtYdvq1YdH-g1cXsdI)s^l_T)oA;0!gcjB!m!87hBknASqxl;PS9+WaEc|+$&I; zQ!I;nWgKc8oFeb>BPEA}lHdrN)=6XtwsC7pAO}tp$IgMo!J$Co#%bd?COtUzscC;R zyHG^(Pfr*2H{W}{nfYdBuX264-kpzC&niCh0EN#vs!m2(Gf@KsRv>KZ7=Hft*qL^s zTcuzf(P4c!Rp{i19LX;tn(ecx4gP9YXSb#yO5$zsA7@iolYfxau~z>qtFF!OfEW+# ziIYLAJfdf-h?tTR{q8eFeGHM(-N$)<5s^Kp6Y0Eo(3VX#QSPQe^r&-h0+igFL?n1| zCIKd0#Rmjb>1wVGDgpxYia-$%SXTs=znkyK-p%=d29f3!Bg7ZtNM%s+>Hk%fj8{;3 zvreaxFLI9a0S@CvmgWO8PdgD6F7rxdYTPSBvmvm^luLRo_bRTDRT5<(^e}$g%a;S; zUJQ*IxfP>x#-QT*}H)ubd6*LwD2q3janpP3BO(K0n? z3JuqIxE4ghs{`g)*$gVeF4Pl+V#+O%xE{nPTl4v=gjWxP$TjY$Hn>j#uF8w+Rt9Bj zuPW5zqIgxIh>IZema$+VtV|=++(W^LhR^pmfhjZtRowKZQkLutO5cu~nQ2mIT|0=l z)!zbPjh2~?Ces?wGbB9|P#6i~#v_?oV9%Ds%?1;JW`lX>$|OsgdvnmpT{0grFq8Bj zc>f&l%~?#p+)?t83Uox3kS)cFEufyc;k*|Q8nRMRkb-^$4eB;rwg!uPbK%fX7*uyn zBd<+kC2x@3YMDPnV~euPJhXg325Bf1JaZ%1Z005@OsLSo%0?58>2g)nt`?M95BFsG z^jurqVSRaRDyS@v3<~^e-6^@;t~LrrY9pEXV9wfBgD|~`Am5R>c9T9XS!^@ZHm8+z z$9IAWxXcGI7qHT5rx=-=;W$ok%k_cjs=Rl~V~ zRr|jWsVK}}o;%kpQ82l|?09m(yh!cUaTA^L7DI!TP-`A8Ir1WL))qJmGPC_BBGXnb zfl-6dJe>I$g6!zp11>oF^n`PEdeEtc{e!Kr6rg$1*Ew4noGhT<#a>}7%TQS{#-MO{*q@a{yD{yF#Vl5A35 ze8t{6NtcD~#Db6rt{d)kL#sMWui@U^U}|bI_n?`WT$fpo78jB%5j*|&TX5#;ja8da z{(V2jJl1mWUMMp60s1jUJ0}g4Rk~~oe02Eciu_ekZ(eJZXwnvCZ0h-o z`}^h0jN)$Efp*f$<2U~?EeRgI00<;Ujukc@smNa1S^a-0zIP)Zl+LuK~=!S5X zs#eak)XngjQ=E-~!u+TMNJ=9iO_VStkEx@ZjLwLl{R#*4*^zwu0A_+l_2Z_Xy9|lG zLR;ZqDLkdG5`w;G{@NDwTV3J;{gNZ74smSiFb~@?aGU0rq@rC!se+q5mPdC=Mdx04o`33{GdL>aYdMpV%4=5i!7V)r82*X+Y~f~H1B zMHRizWwf7}y=IJ_(g`vD5opsAbZ^s(cJ?sxYSh1L3Az&_6SULX0Q`gbb(mh#q{H7R zxA(PPvzm$`DUqOWtDqM|FOv95v;~sgT&7Y%GLhzoQ6fLXejMZ-rlS`9fQ9zp_mm|xlkg~Nf`1j~`&S
    v2wSPP;;G zlk-Dx-we50?HJc+f5=VO3UEgr2)UK~7}x2wkh_}~U{f4dTy~pv%D9NH(;tP(3r0D( zpN8D`#6^_VzbJ0VI)*z#(0idyx8C9={VvoMTBpH%9O@pTx41{UoM(c5wA{lzgF|`<3vJAjwPg0(iPbG@|J~cZR;DAQbOt&`mM;a85*TA{ch`U8r)h<>2BV6ltna$sq_khPy< zMKl2)f<#+YB@|Jm;(Tj|HBl>~_K^FoRs(Kn$o+#h1)Qw)lg9rCv)4QC)THD-OP+|> zai9bIm7+H(JZVHI7GV?z3MvKKI9+3r0-C09j>7p0+Z8TT*bSUOJwQPlf!Ik|rP!xL zaTbe|Q>nsfz$DE93R(@Ur4ePbSz(Hur*i6Md$mU32Sy|Huv6BJlw!XT3u&Xm6#HRR z(h@hb-DW#%eiprzUM6YtGD-PYDI1GCKnxvh1an7pGZc%ozoxh804|$hb`Oq>H!%m# z&{x?z&MwIR+t^DZkUtN3hRYE5Mqi}!Dy@CY5(m)bkBwI$dBi$KM<73mm`kmELGLwatViy$tCtalNbdX=752+&ZDSb>kIA<7{6=5G!hn3IXM8zaP z@8{)gnEn>!HBA4cP{!G)q773Q)j->&HLk``L#GR}PyeQ2iexP#+|3+Ft}d#0S|4c1b*n_7f(KEm)3a8Vn zpl_gefw$0fy@@)hM{lEk#95~>n^VnJ`ZDd;w~`OVRwdb^a32lONBTb6s&E5+s=uz} zM--k@cwQkf8I&nZDoiPCQ#fDYI)&W|a|(yDs@bD(MBzTR3*&fQ(MJ@XP?B?sKCh6t z>P%r$VVlBr3UdngD12SvIfWJu?|)@;Xa&7Ti`cDb;3*BP!02iF3=y67>d z1*gCloteN{nxyaJ693JZ3p^nt7F#z0A18@lS6It#2K}_?1iomm0PeKb0N>KqX%>~B zj{++7Hzu}cYj9?8s>6bD@~9Gh*8|Vce5U8*iGz>5$>rVeIbQb9 z?6CU1h(qh@bCh){+4yJ+@nMNO_gceK>;k$VQgGGXkcQ*zjQ3h0Gdbb^B5nD5s-t5wCRH(i>g2@O z=E;KjJ8DM#&e|^*jNHAkWUIS<{-dd*n@V5otoPrmZMb(|l(?JwPViqhc?B25Sw#WY zl4Kdg9mmm$v5G>|uHbG@zL9UlAGF+!m4@4GB{gPQ@!SzJse`bryrky##B)RO+%ZV? zB*h=pMLc)H&()P=-_(;hIgBJ@ZV&DzH+L$Mz4GN}}hN;3;8tB=EEwjZ0cQtdn zrAr}2Ox+!<;D`=A7jUg`H^a{z6wt?W=M8k1dpBU-Mb4HJ#D5ts7U@~HJr;|hfAsvm zA>B))EtsI2E@5i21H;rRIKGM)j{#WBglP;ZTKFDyb6<+Zq_5)y{d}sLA%^jwZ>h1Y zKxC-kLlNm7AIjrKh3xn#eEhgW@%YdLna5CR5PYcAf6qJKrU|zl?_#_QxxhkjE@E6n zxNyuc$FS{&$-P`yx^QzN682(FV*ZEq#aT>PR|MlyQ`coBDVW2nA~l=tLOG{yS1^lz zsTj;9hO8E5MB!e1ePYCWHIHI=BY5$32x(!bb&9H#xh-&tZJ()hq{A~@@ z{+*4l`0E-EFES4<-cD@sQjSWmK+!+D2ya@}eelSAfM0;v{zNae_) + + + 获取或设置是否展示帧序号、帧率 + + 获取当前是否正在播放 @@ -75,9 +80,14 @@ 获取当画面缩放后X轴的偏移量,即黑边大小 + + + 获取或设置视频流拉取帧率 + + - 获取或设置抽帧响应 + 获取或设置抽帧响应,处理的是未解析的原始帧 diff --git a/sdks/Yztob.AiSports.Sensors.dll b/sdks/Yztob.AiSports.Sensors.dll index c90d584c109de88e247ddb283802b9af75f38226..350b6b04284c6a7d0aa9bf69c328ab416d1210d7 100644 GIT binary patch delta 192 zcmZpuX{edd!5ox!cw={`49hANO{>ikvTyhWP9M&9`Eaksdsdn0taq}$CYwccFR-!H zx1}DM{KD8ofLlep`};HN&GL2g8eX!cEuE}m(yM?j2vWV{fWpgD($bUFIX2jAzG(Hvbs` DkDEbh delta 192 zcmZpuX{edd!E7deaAS9;49f}?>6Fb9vTyhWz6*PA3!A^kb57{f^AFjy&Tkgcy}-s| zDlgtR`Gv8G!16VJSV}FwD6oWvKW&+O%V)BVNv{IBAV{^?oY|76^tV*Coj7r4^G%b@ zjNH;GD^wU57#V={=ILgO8F@_@^caj7Oc~68r1@rdi^FI_lf|v9(G&^VEMnZuX!D;D E08^qtaR2}S diff --git a/sdks/Yztob.AiSports.Sensors.xml b/sdks/Yztob.AiSports.Sensors.xml index cab0d31..0d0d629 100644 --- a/sdks/Yztob.AiSports.Sensors.xml +++ b/sdks/Yztob.AiSports.Sensors.xml @@ -312,6 +312,12 @@ 获取或设置时间戳,从UTC:2000-01-01开始的耗秒数 + + + 获取当前时间戳 + + + 将当前帧转换成指定格式图像,并返回图像缓冲区数组