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); }
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 }
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); } } }