/// <summary> /// /// </summary> /// <param name="list"></param> /// <returns></returns> private PointsCoordSet CalcKalmanOpt(PointsCoordSet list, string strName, Kalc3Dim KallFil, bool iIsPredict, bool bNoA, bool bIsX) { var listKalman = new PointsCoordSet(strName); var Num = list[0].NumFrame - 1; for (var jc = 0; jc < list.Count; jc++) { var pt = new Point(list[jc].X, list[jc].Y); var ptC = list[jc] + pt; ptC.col = Color.Fuchsia; if (list[jc].X == -1) { ptC.col = Color.Yellow; } if (bIsX == true) { var x = KallFil.SetData(list[jc].X, list[jc].NumFrame, iIsPredict, bNoA); ptC.X = (int)x; } else { var y = KallFil.SetData(list[jc].Y, list[jc].NumFrame, iIsPredict, bNoA); ptC.Y = (int)y; } listKalman.Add(ptC); } //PointsCoordSet.AddList(listKalman); return(listKalman); }
/// <summary> /// Работаем со скоростью /// </summary> /// <param name="list"></param> /// <returns></returns> private void CalcKalmanV(List <PointCoords> list, string strName, bool iIsPredict, bool bNoA) { var listKalman = new PointsCoordSet(strName); if (list.Count <= 0) { return; } var KallFilX = new Kalc3Dim("X", true); var KallFilY = new Kalc3Dim("Y", false); var Num = list[0].NumFrame - 1; for (var jc = 0; jc < list.Count; jc++) { var pt = new Point(list[jc].X, list[jc].Y); var ptC = list[jc] + pt; ptC.col = Color.Fuchsia; if (list[jc].X == -1) { ptC.col = Color.Yellow; } var x = KallFilX.SetData(list[jc].X, list[jc].NumFrame, iIsPredict, bNoA); var y = KallFilY.SetData(list[jc].Y, list[jc].NumFrame, iIsPredict, bNoA); ptC.X = (int)x; ptC.Y = (int)y; //PointCoords ptC = KallFil.CalcEstimationPoint(pt, list[jc].NumFrame) + list[jc]; listKalman.Add(ptC); } PointsCoordSet.AddList(listKalman); }
private void SaveCenter(Point pt) { int index; var pC = FindPoint(NCurrentFile, listMarkedPC, out index); if (pC == null) { pC = new PointCoords(); pC.NumFrame = NCurrentFile; listMarkedPC.Add(pC); } pC.X = pt.X; pC.Y = pt.Y; }
private PointsCoordSet CalcKalman(PointsCoordSet list) { var listKalman = new PointsCoordSet("Kalman"); if (list.Count <= 0) { return(listKalman); } var KallFil = new KalmanFilter(); var Num = list[0].NumFrame - 1; for (var jc = 0; jc < list.Count; jc++) { var pt = new Point(list[jc].X, list[jc].Y); if (list[jc].X == -1) { list[jc].Y = -1; } var ptC = KallFil.CalcEstimationPoint(pt, list[jc].NumFrame) + list[jc]; ptC.col = Color.Fuchsia; listKalman.Add(ptC); } return(listKalman); }
/// <summary> /// /// </summary> /// <returns></returns> //private bool FillCoordData(StreamReader sr, List<PointCoords> list,bool bIsNeed,Color col) private bool FillCoordData(StreamReader sr, PointsCoordSet list, bool bIsNeed, Color col) { if (sr == null) { if (bIsNeed) { MessageBox.Show("Не задан файл координат"); } return(false); } //list = new List<PointCoords>(); string strTemp; var iNum = -1; while (true) { strTemp = sr.ReadLine(); if (strTemp == null) { break; } var pC = new PointCoords(); if (pC.SetDataFromFile(strTemp, col) == false) { continue; } if (iNum == -1) { iNum = pC.NumFrame; } else { iNum++; if (pC.NumFrame > iNum) { var iNumDel = pC.NumFrame; while (iNumDel != iNum) { var pC1 = new PointCoords(); pC1.NumFrame = iNum; pC1.col = pC.col; pC1.Width = pC.Width; list.Add(pC1); iNum++; } } } list.Add(pC); } if (NCurrentFile == -1) { NCurrentFile = NFirstFile = list[0].NumFrame; NLastFile = list[list.Count - 1].NumFrame; } var iReminder = NLastFile - NFirstFile + 1 - list.Count; iNum++; for (var jc = 0; jc < iReminder; jc++) { var pC1 = new PointCoords(); pC1.NumFrame = iNum; pC1.col = Color.AntiqueWhite; pC1.Width = 40; list.Add(pC1); iNum++; } PointsCoordSet.AddList(list); return(true); }