mirror of
https://github.com/vale981/VoiDPlugins
synced 2025-03-05 09:11:38 -05:00
Remove Averaging Samples in MLFIlter
This commit is contained in:
parent
2b794038c7
commit
b17d27d466
1 changed files with 3 additions and 56 deletions
|
@ -9,35 +9,16 @@ using OpenTabletDriver.Plugin.Tablet;
|
|||
|
||||
namespace OTDPlugins
|
||||
{
|
||||
|
||||
[PluginName("MLFilter")]
|
||||
public class MLFilter : Notifier, IFilter
|
||||
{
|
||||
public virtual Vector2 Filter(Vector2 point)
|
||||
{
|
||||
DateTime date = DateTime.Now;
|
||||
var predicted = new Vector2();
|
||||
var feedPoint = new Vector2();
|
||||
bool fed = false;
|
||||
|
||||
if (Feed)
|
||||
{
|
||||
if (AddPoint(point))
|
||||
{
|
||||
foreach (var lastPoint in _lastPoints)
|
||||
feedPoint += lastPoint;
|
||||
feedPoint.X /= _lastPoints.Count;
|
||||
feedPoint.Y /= _lastPoints.Count;
|
||||
fed = AddTimeSeriesPoint(feedPoint, date);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fed = AddTimeSeriesPoint(point, date);
|
||||
}
|
||||
|
||||
if (fed)
|
||||
if (AddTimeSeriesPoint(point, date))
|
||||
{
|
||||
var predicted = new Vector2();
|
||||
var timeMatrix = ConstructTimeDesignMatrix();
|
||||
double[] x, y;
|
||||
if (Normalize)
|
||||
|
@ -69,32 +50,14 @@ namespace OTDPlugins
|
|||
|
||||
predicted.X = (float)xCoeff.Evaluate(predictAhead);
|
||||
predicted.Y = (float)yCoeff.Evaluate(predictAhead);
|
||||
|
||||
if (Normalize)
|
||||
{
|
||||
predicted.X *= ScreenWidth;
|
||||
predicted.Y *= ScreenHeight;
|
||||
}
|
||||
|
||||
Vector2 finalPoint = new Vector2();
|
||||
|
||||
if (Feed || AvgSamples == 0)
|
||||
finalPoint = predicted;
|
||||
else
|
||||
{
|
||||
if (AddPoint(predicted) && AvgSamples > 0)
|
||||
{
|
||||
foreach (var tempPoint in _lastPoints)
|
||||
{
|
||||
finalPoint += tempPoint;
|
||||
}
|
||||
finalPoint.X /= _lastPoints.Count;
|
||||
finalPoint.Y /= _lastPoints.Count;
|
||||
}
|
||||
}
|
||||
|
||||
_lastTime = date;
|
||||
return finalPoint;
|
||||
return predicted;
|
||||
}
|
||||
_lastTime = date;
|
||||
return point;
|
||||
|
@ -110,16 +73,6 @@ namespace OTDPlugins
|
|||
return false;
|
||||
}
|
||||
|
||||
private bool AddPoint(Vector2 point)
|
||||
{
|
||||
_lastPoints.AddLast(point);
|
||||
if (_lastPoints.Count > AvgSamples)
|
||||
_lastPoints.RemoveFirst();
|
||||
if (_lastPoints.Count == AvgSamples)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private double[] ConstructTimeDesignMatrix()
|
||||
{
|
||||
DateTime baseTime = _timeSeriesPoints.First.Value.Date;
|
||||
|
@ -273,12 +226,6 @@ namespace OTDPlugins
|
|||
[UnitProperty("Screen Height", "px")]
|
||||
public int ScreenHeight { set; get; }
|
||||
|
||||
[Property("Averaging Samples")]
|
||||
public int AvgSamples { set; get; }
|
||||
|
||||
[BooleanProperty("Feed to Filter", "")]
|
||||
public bool Feed { set; get; }
|
||||
|
||||
public FilterStage FilterStage => FilterStage.PostTranspose;
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue