Esempio n. 1
0
        /* Form on line of calibration data that represents one calibration point in the format
         * expected by Tsai3D calibration program */
        private string GetCalibrationPointString(Camera cam, CalibrationModel model, int pointIndex)
        {
            string res =
                model.GetPoint(pointIndex).X + " " + model.GetPoint(pointIndex).Y + " " + model.GetPoint(pointIndex).Z + " " + cam.points[pointIndex].X + " " + cam.points[pointIndex].Y;

            return(res);
        }
Esempio n. 2
0
        /* Assumes square model with 4 points */
        void Calibrate(int numAcquisitionsPerView, int numViews, double maxDisplacementX, double maxDisplacementY, double maxDisplacementZ)
        {
            CalibrationModel model = new CalibrationModel(17.5);
            double           stepX = (maxDisplacementX / numAcquisitionsPerView);
            double           stepY = (maxDisplacementY / numAcquisitionsPerView);
            double           stepZ = (maxDisplacementZ / numViews);

            CalibrationView[] views = new CalibrationView[numViews];
            int viewIdx             = 0;

            for (double z = 0; z < maxDisplacementZ; z += stepZ, viewIdx++)
            {
                for (double y = 0; y < maxDisplacementY; y += stepY)
                {
                    for (double x = 0; x < maxDisplacementX; x += stepX)
                    {
                        modelControlX.Move(x);
                        modelControlY.Move(y);
                        modelControlZ.Move(z);
                        model.Move(x, y, z);

                        for (int i = 0; i < 4; i++)
                        {
                            views[viewIdx].AddPoint(camera[0].points[i], camera[1].points[i], model.GetPoint(i));
                        }
                    }
                }
            }

            Stereo.CalibrateMultipleViews(views);
        }
Esempio n. 3
0
        public CalibrationForm(Camera left, Camera right, CalibrationModel model)
        {
            InitializeComponent();

            this.left  = left;
            this.right = right;
            this.model = model;

            model.Moved += model_Moved;
        }
Esempio n. 4
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            /*double[] arr = new double[2000];
             * var Watch = Stopwatch.StartNew();
             * for (int j = 0; j < 1000000; j++ )
             * for (int i = 0; i < 2000; i++)
             * {
             *     arr[i] = i + 5;
             *
             * }
             * Watch.Stop();
             * var elapsed = Watch.ElapsedMilliseconds;*/

            thr = new Thread(new ThreadStart(DaqInit));
            //timerPhase.Start();
            thr.Start();
            left             = new Camera();
            right            = new Camera();
            stageInitialized = false;
            isTracking       = false;
            UpdateButtonStates();
            CameraForm cfrm = new CameraForm(left, right);

            cfrm.MdiParent = this;
            cfrm.Show();
            model               = new CalibrationModel(17.5);
            calibForm           = new CalibrationForm(left, right, model);
            calibForm.MdiParent = this;
            calibForm.Show();
            //file = new System.IO.StreamWriter(string.Format("data{0:yyyyMMddHHmm}.txt",DateTime.Now));
            origin              = new Vector3(-66.5681286245652, 93.959147563999, 220.553692515875);
            trackForm           = new TrackingForm();
            trackForm.MdiParent = this;

            instrumentTip     = new Vector3();
            prevInstrumentTip = new Vector3();
        }