feat: 添加PoseTransformHandler接口 提供结欢过滤方法的功能
添加直接返回和平均过滤两种过滤方法
This commit is contained in:
41
Assets/Utils/PoseTransformHandlers/AverageHandler.cs
Normal file
41
Assets/Utils/PoseTransformHandlers/AverageHandler.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
using Models;
|
||||
using UnityEngine;
|
||||
using System.Collections.Concurrent;
|
||||
|
||||
namespace Utils.PoseTransformHandlers
|
||||
{
|
||||
public class AverageHandler : IPoseTransformHandler
|
||||
{
|
||||
public static int AverageLength = 3;
|
||||
// 线程安全的队列集合
|
||||
// 据文档描述甚至没有使用锁
|
||||
private readonly ConcurrentQueue<PoseLandmark> _queue = new ConcurrentQueue<PoseLandmark>();
|
||||
|
||||
public void ReceivePoseLandmark(PoseLandmark landmark)
|
||||
{
|
||||
if (_queue.Count < AverageLength)
|
||||
{
|
||||
_queue.Enqueue(landmark);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_queue.TryDequeue(out _))
|
||||
{
|
||||
_queue.Enqueue(landmark);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Vector3 GetResultPosition()
|
||||
{
|
||||
var sum = new Vector3();
|
||||
|
||||
foreach (var item in _queue)
|
||||
{
|
||||
sum += new Vector3(item.X, item.Y, item.Z);
|
||||
}
|
||||
|
||||
return sum / AverageLength;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c02b0d03301d408faf81931a69679f5c
|
||||
timeCreated: 1677676898
|
20
Assets/Utils/PoseTransformHandlers/NormalHandler.cs
Normal file
20
Assets/Utils/PoseTransformHandlers/NormalHandler.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using Models;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Utils.PoseTransformHandlers
|
||||
{
|
||||
public class NormalHandler : IPoseTransformHandler
|
||||
{
|
||||
private Vector3 _result;
|
||||
|
||||
public void ReceivePoseLandmark(PoseLandmark landmark)
|
||||
{
|
||||
_result = new Vector3(landmark.X, landmark.Y, landmark.Z);
|
||||
}
|
||||
|
||||
public Vector3 GetResultPosition()
|
||||
{
|
||||
return _result;
|
||||
}
|
||||
}
|
||||
}
|
3
Assets/Utils/PoseTransformHandlers/NormalHandler.cs.meta
Normal file
3
Assets/Utils/PoseTransformHandlers/NormalHandler.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93a33f47f3654fd3b27dd18db88fcc55
|
||||
timeCreated: 1677678654
|
Reference in New Issue
Block a user