/// <summary> /// Действие кнопки "Начать" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void StartCameraButton_Click(object sender, EventArgs e) { try { // Инициализируем обработчик изображения routine = new ImageProcessingRoutine ( webCamChoiceComboBox.SelectedIndex, webCamFrameSizes[webCamFrameSizeComboBox.SelectedIndex] ); routine.BeforeProcessingEvent += refrashForm; routine.GetImageEvent += onRefrashImage; routine.DrawCornersEvent += onRefrashImage; routine.FindContoursEvent += onRefrashImage; routine.CalibrateEvent += onCalibrate; routine.MeasureEvent += onMeasure; // Меняем состояние формы observer.State = MainFormStateObserver.FormState.WebCamChosen; } catch (Exception) { MessageBox.Show("Ошибка при выборе веб-камеры", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Создает объект, используя конфигурационный файл /// </summary> /// <param name="configFile">Файл с настройками</param> public static ImageProcessingRoutine CreateFromConfigFile(int deviceId, CvSize frameSize, string configFile) { ImageProcessingRoutine ipr = new ImageProcessingRoutine(deviceId, frameSize); // Десериализуем объект с настройками Stream configFileStream = File.OpenRead(configFile); BinaryFormatter deserializer = new BinaryFormatter(); ImageProcessingConfig ipc = (ImageProcessingConfig)deserializer.Deserialize(configFileStream); configFileStream.Close(); // Настраиваем обработчик изображений ipr.Transformer = ipc.Transformer; ipr.Finder.BackgroundRange = ipc.BackgroundRange; ipr.CorrectionOffset = ipc.CorrectionOffset; ipr.CorrectionMultiplier = ipc.CorrectionMultiplier; return(ipr); }
/// <summary> /// Создает объект, используя конфигурационный файл /// </summary> /// <param name="configFile">Файл с настройками</param> public static ImageProcessingRoutine CreateFromConfigFile(int deviceId, CvSize frameSize, string configFile) { ImageProcessingRoutine ipr = new ImageProcessingRoutine(deviceId, frameSize); // Десериализуем объект с настройками Stream configFileStream = File.OpenRead(configFile); BinaryFormatter deserializer = new BinaryFormatter(); ImageProcessingConfig ipc = (ImageProcessingConfig)deserializer.Deserialize(configFileStream); configFileStream.Close(); // Настраиваем обработчик изображений ipr.Transformer = ipc.Transformer; ipr.Finder.BackgroundRange = ipc.BackgroundRange; ipr.CorrectionOffset = ipc.CorrectionOffset; ipr.CorrectionMultiplier = ipc.CorrectionMultiplier; return ipr; }
/// <summary> /// Действие кнопки "Начать" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void StartCameraButton_Click(object sender, EventArgs e) { try { // Инициализируем обработчик изображения routine = new ImageProcessingRoutine ( webCamChoiceComboBox.SelectedIndex, webCamFrameSizes[webCamFrameSizeComboBox.SelectedIndex] ); routine.BeforeProcessingEvent += refrashForm; routine.GetImageEvent += onRefrashImage; routine.DrawCornersEvent += onRefrashImage; routine.FindContoursEvent += onRefrashImage; routine.CalibrateEvent += onCalibrate; routine.MeasureEvent += onMeasure; // Меняем состояние формы observer.State = MainFormStateObserver.FormState.WebCamChosen; } catch(Exception) { MessageBox.Show("Ошибка при выборе веб-камеры", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }