Beispiel #1
0
        public MainWindow()
        {
            InitializeComponent();

            var al = new List <PointFloat>();
            var ar = new List <PointFloat>();
            List <StereoPoints> allPts  = new List <StereoPoints>();
            PointFloat          imgSize = null;

            foreach (var iii in images)
            {
                var left = CvInvoke.Imread($"{imageDir}\\Left_{iii}.jpg");
                imgSize = new PointFloat(left.Width, left.Height);
                var right = CvInvoke.Imread($"{imageDir}\\Right_{iii}.jpg");
                var corl  = convertToPF(netCvLib.calib3d.Calib.findConers(left.ToImage <Gray, Byte>()));
                al.AddRange(corl);
                var corr = convertToPF(netCvLib.calib3d.Calib.findConers(right.ToImage <Gray, Byte>()));
                ar.AddRange(corr);

                allPts.Add(new StereoPoints {
                    Left = corl, Right = corr
                });
                File.WriteAllLines($"{imageDir}\\Left_{iii}.txt", cornerToString(corl));
                File.WriteAllLines($"{imageDir}\\Right_{iii}.txt", cornerToString(corr));
                var ff = com.veda.LinearAlg.Calib.CalcFundm((corl), (corr));
                //Console.WriteLine(ff);
            }
            Console.WriteLine("F");
            F = com.veda.LinearAlg.Calib.CalcFundm(al.ToArray(), ar.ToArray());
            Console.WriteLine(F);


            calres = CalibRect.Rectify(allPts, imgSize);
            Console.WriteLine("Callres");
            Console.WriteLine(calres.F);
            Console.WriteLine(calres.el.X.ToString("0.00") + " " + calres.el.Y.ToString("0.00"));
            Console.WriteLine(calres.LeftIntrinics);
            Console.WriteLine(calres.RightIntrinics);
            Console.WriteLine(calres.H1);
            Console.WriteLine(calres.H2);

            Console.WriteLine("E");
            Console.WriteLine(calres.E);
            var rtl = calres.GetRT(calres.E);

            Console.WriteLine("RT from left");
            Console.WriteLine(rtl.R);
            Console.WriteLine(rtl.T);

            who = 0;
            imgSelFunc();

            for (int i = 0; i < cbs.Length; i++)
            {
                var cb = new CheckBox();
                cb.Name       = "chkEpl_" + i;
                cb.IsChecked  = false;
                cb.Checked   += Cb_Checked;
                cb.Unchecked += Cb_Checked;
                cbs[i]        = cb;
                onChecks[i]   = false;
            }
            foreach (var cb in cbs)
            {
                stkEpoles.Children.Add(cb);
            }
        }