/// <summary>
        /// 创建BaseCalibreationViewModel新实例
        /// </summary>
        /// <param name="calibParam">标定参数</param>
        public CalibrationViewModel(CalibParam calibParam)
        {
            CalibrationParam = new CalibrationParam();

            if (calibParam != null)
            {
                foreach (var item in calibParam.CalibPointList)
                {
                    CalibrationParam.CalibPointList.Add(new CalibrationPoint(item));
                }

                CalibrationParam.InvMatrix = calibParam.InvMatrix;
                CalibrationParam.Matrix    = calibParam.Matrix;
                CalibrationParam.IsValid   = calibParam.IsValid;
            }

            calibrationPointLocations.Clear();
            foreach (ECalibrationPointLocation item in Enum.GetValues(typeof(ECalibrationPointLocation)))
            {
                calibrationPointLocations.Add(item);
            }

            sceneManager = SceneManager.GetInstance();
            UpdateScenes();

            //foreach (ECalibrationPointLocation item in Enum.GetValues(typeof(ECalibrationPointLocation)))
            //{
            //    calibrationPointLocations.Add(item, (Attribute.GetCustomAttribute(item.GetType().GetField(item.ToString()), typeof(DescriptionAttribute)) as DescriptionAttribute).Description);
            //}
        }
Пример #2
0
        /// <summary>
        /// 设置相机标定文件
        /// </summary>
        /// <param name="file">配置文件(不需包含目录)</param>
        public void SetCameraCalibrationFile(string file)
        {
            CalibrationFile = file;

            if (!string.IsNullOrEmpty(file))
            {
                //获取相机配置参数
                string calibrationFile = $"{System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase}/VisionPlatform/Camera/CameraConfig/{CameraSerial}/CalibrationFile/{CalibrationFile}";

                if (File.Exists(calibrationFile))
                {
                    calibrationParam = JsonSerialization.DeserializeObjectFromFile <CalibParam>(calibrationFile);
                }
                else
                {
                    calibrationParam = new CalibParam();
                    JsonSerialization.SerializeObjectToFile(calibrationParam, calibrationFile);
                }
            }
            else
            {
                CalibrationFile  = null;
                calibrationParam = new CalibParam();
            }
        }
        /// <summary>
        /// 控件加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            _CalibParam = new CalibParam();

            _CalibPointList = new ObservableCollection <CalibPointData>();
            CalibPointListView.ItemsSource = _CalibPointList;

            //禁止所有的控件
            DisableAllControl();
        }
        /// <summary>
        /// 加载文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LoadFileButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                var ofd = new Microsoft.Win32.OpenFileDialog();

                ofd.DefaultExt = ".json";
                ofd.Filter     = "json file|*.json";

                if (ofd.ShowDialog() == true)
                {
                    _FilePath             = ofd.FileName;
                    CalibFileTextBox.Text = _FilePath;
                    _CalibParam           = JsonSerialization.DeserializeObjectFromFile <CalibParam>(_FilePath);

                    if (_CalibParam == null)
                    {
                        MessageBox.Show("无效文件!");
                        return;
                    }

                    _CalibPointList.Clear();

                    foreach (var item in _CalibParam.CalibPointList)
                    {
                        _CalibPointList.Add(item);
                    }

                    EnableAllControl();

                    DisplayCalibMatrix(_CalibParam.Matrix);
                }
            }
            catch (Exception)
            {
            }
        }
Пример #5
0
 /// <summary>
 /// 创建BaseCalibreationViewModel新实例
 /// </summary>
 /// <param name="calibParam">标定参数</param>
 public BaseCalibreationViewModel(CalibParam calibParam)
 {
     CalibParam = calibParam;
 }
Пример #6
0
 /// <summary>
 /// 创建CalibrationConfigurationCompletedEventArgs新实例
 /// </summary>
 /// <param name="calibParam">标定参数</param>
 public CalibrationConfigurationCompletedEventArgs(CalibParam calibParam)
 {
     CalibParam = calibParam;
 }
Пример #7
0
 /// <summary>
 /// 触发标定配置完成事件
 /// </summary>
 /// <param name="calibParam"></param>
 protected void OnCalibrationConfigurationCompleted(CalibParam calibParam)
 {
     CalibrationConfigurationCompleted?.Invoke(this, new CalibrationConfigurationCompletedEventArgs(calibParam));
 }