Exemplo n.º 1
0
        public static void CamTracking(Mat curImg, VidLoc.RealTimeTrackLoc realTimeTrack, PreVidStream vidProvider, IDriver driver, BreakDiffDebugReporter debugReporter)
        {
            //realTimeTrack.CurPos = image1Ind;
            realTimeTrack.LookAfterReset();
            if (!realTimeTrack.ShouldStop())
            {
                int origImageInd = realTimeTrack.CurPos;
                debugReporter.ReportInProcessing(true);
                VidLoc.FindObjectDown(vidProvider, curImg, realTimeTrack, debugReporter);
                debugReporter.ReportInProcessing(false);

                //var lookBackCount = 0;
                //while (realTimeTrack.diff < 0.5 && lookBackCount < 3)
                //{
                //    driver.Stop();
                //    realTimeTrack.LongLook();
                //    VidLoc.FindObjectDown(vidProvider, curImg, realTimeTrack, debugReporter);
                //    //info.Text = text = $"Tracked vid at ${image1Ind} cam at ${image2Ind} next point ${realTimeTrack.NextPos} ${realTimeTrack.vect}  ===> diff {realTimeTrack.diff} LB {lookBackCount}";
                //    //Console.WriteLine(text);
                //    lookBackCount++;
                //}

                vidProvider.Pos = origImageInd;
            }
            driver.Track(realTimeTrack);
            //if (debugReporter.DebugMode)
            //{
            //Mat m1 = vidProvider.GetCurMat();
            //breakAndDiff(m1, curImg, debugReporter);
            //}
        }
Exemplo n.º 2
0
 public void SaveVid(Mat mat)
 {
     ShiftVecDector.ResizeToStdSize(mat);
     RecordToVW(mat);
     if (prevMat != null)
     {
         var diff = VidLoc.CompDiff(prevMat, mat, null);
         Reporter.InfoReport($"At {curVidNum} diff {diff.Vector.X} {diff.Vector.Y}", false);
         if (Math.Abs(diff.Vector.X) < 0.01 && Math.Abs(diff.Vector.Y) < 0.01)
         {
             return;
         }                
         File.AppendAllText(VectFileName, $"{diff.Vector.X} {diff.Vector.Y} {diff.Vector.Diff}\n");
         Reporter.ShowProg(curVidNum, $"{diff.Vector.X} {diff.Vector.Y}");
         prevMat.Dispose();
     }            
     prevMat = new Mat();
     mat.CopyTo(prevMat);
     mat.Save($"{folderName}\\vid{curVidNum}.jpg");            
     Reporter.ShowProg(curVidNum,"");
     curVidNum++;
     File.WriteAllText($"{folderName}\\{VideoUtil.VIDINFOFILE}", curVidNum.ToString());
 }
Exemplo n.º 3
0
 public void CamTracking(Mat curImg, VidLoc.RealTimeTrackLoc realTimeTrack, PreVidStream vidProvider, IDriver driver, BreakDiffDebugReporter debugReporter)
 {
     VidLoc.CamTracking(curImg, realTimeTrack, vidProvider, driver, debugReporter);
 }