Пример #1
0
        public bool GetImages(PtGreyCamera camera, out System.Drawing.Bitmap img, out BitmapSource imgSrc)
        {
            img    = null;
            imgSrc = null;

            if (!camera.GetImage(out imgSrc, out img))
            {
                return(false);
            }

            return(true);
        }
Пример #2
0
        public bool Calibrate(PtGreyCamera camera)
        {
            bool result = false;

            try
            {
                App.LogEntry.AddEntry("Initializing calibration settings...");

                // TODO: those parameters never used
                //ImageProcessing.setLabAdjustment(App.Settings.LConv, App.Settings.AConv, App.Settings.BConv,
                //App.Settings.Lshift, App.Settings.Ashift, App.Settings.Bshift);

                SetCameraCalibrationParameters(camera);

                int  retries = 0;
                bool success = false;
                for (retries = 0; retries < 40; retries++)
                {
                    App.LogEntry.AddEntry("Checking BGR...");

                    System.Drawing.Bitmap img    = null;
                    BitmapSource          imgSrc = null;

                    if (!camera.GetImage(out imgSrc, out img))
                    {
                        return(false);
                    }

                    double B = 0, G = 0, R = 0;
                    CamCalibrationUtil.calcBGR_wholeimage(ref img, ref B, ref G, ref R);

                    if (Math.Abs(R - G) <= App.Settings.WBConvergence &&
                        Math.Abs(B - G) <= App.Settings.WBConvergence)
                    {
                        App.LogEntry.AddEntry("Finalizing calibration settings...");
                        FinishCalibration(camera);
                        success = true;
                        break;
                    }

                    App.LogEntry.AddEntry("Adjusting white balance...");
                    AdjustWhiteBalance(camera, R, G, B);
                    Thread.Sleep(200);
                }

                if (success)
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
            }
            catch (Exception ex)
            {
                result = false;
            }

            return(result);
        }