Пример #1
0
        public bool StartVideo(PtGreyCamera camera, ImageReceivedEventHandler imageReceivedHandler)
        {
            bool result = false;

            if (!camera.Start(imageReceivedHandler))
            {
                camera = null;
            }
            else
            {
                if (camera.cameraType == CameraType.Top)
                {
                    InitializeCameraSettings(camera);
                    InitializeCameraSettingsWB(camera, true);
                }
                else
                {
                    InitializeBlackWhiteCameraSettings(camera);
                }
                result = true;
                camera.StartCapture();
            }

            return(result);
        }
Пример #2
0
        private void SetCameraCalibrationParameters(PtGreyCamera camera)
        {
            InitializeCameraSettings(camera);
            Thread.Sleep(1000);

            camera.StartCapture();
            //Default settings
            camera.SetProprtyAutomaticSetting("Sharpness", false);
            camera.SetProprtyAutomaticSetting("ExposureCompensationAuto", false);
            camera.SetProprtyAutomaticSetting("Saturation", false);
            camera.SetProprtyAutomaticSetting("Hue", false);
            camera.SetProprtyAutomaticSetting("FrameRate", false);
            //camera.SetProprtyAutomaticSetting("WhiteBalance", false);

            camera.SetAbsolutePropertyValue("BlackLevel", App.Settings.BlackLevel.ToString());
            camera.SetAbsolutePropertyValue("Saturation", App.Settings.Saturation.ToString());
            camera.SetAbsolutePropertyValue("Hue", App.Settings.Hue.ToString());
            camera.SetAbsolutePropertyValue("FrameRate", App.Settings.FrameRate.ToString());

            Thread.Sleep(200);

            InitializeCameraSettingsWB(camera, false);
            Thread.Sleep(1200);
            // TODO: start capture in calibration
        }
Пример #3
0
        void ConnectCameraCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Result.ToString().Substring(0, 5) != "Error")
            {
                //changing this property to a new reference now
                //_cameraImage = new System.Windows.Media.Imaging.WriteableBitmap(64, 64, 96, 96, System.Windows.Media.PixelFormats.Bgr24, null);
                //since this is happening after the original reference was bound to the UI
                //we have to notify UI of new reference
                //CameraImage = _cameraImage;

                _statusVM.CamMessages.Add(new StatusMessage {
                    Timestamp = DateTime.Now, Message = "Connected to " + e.Result.ToString()
                });

                _ptGreyCamera.StartCapture();
                _ptGreyCamera.imageEventListener.ImageChanged += OnImageChanged;

                //MainWindowVM mainVM = (MainWindowVM)Application.Current.Windows.OfType<MainWindow>().FirstOrDefault().DataContext; // how to access usercontrol instance declared in xaml
                //mainVM.XYZMotorVM.EndPoint = new Point(_ptGreyCamera.ImageWidth / 2, _ptGreyCamera.ImageHeight / 2);

                // Hook up zoom enent
                MainWindow mv = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();
                mv.borderInstance.AddRectMaskSelectedEventHandler(OnRectMaskSelected);

                RaiseCameraConnectedEvent(true);
            }
            else
            {
                RaiseCameraConnectedEvent(false);
                var res = MessageBox.Show(e.Result.ToString(), "Camera connection error, retry?", MessageBoxButton.YesNo);
                if (res == MessageBoxResult.Yes)
                {
                    bwCameraConnector.RunWorkerAsync();
                }
                else
                {
                    var sts = new StatusMessage {
                        Timestamp = DateTime.Now, Message = "Camera connect error!"
                    };
                    _statusVM.CamMessages.Add(sts);
                }
            }
        }