| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //实现线程算法示例
- using MvCameraControl;
- using MvvmScaffoldFrame48.DLL.ConfigTools;
- using MvvmScaffoldFrame48.Model.ResultModel;
- using MvvmScaffoldFrame48.Model.StorageModel.ProcessingConfig;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace MvvmScaffoldFrame48.DLL.ThreadManager
- {
- public class ProcessingAlgorithm : IImageProcessingAlgorithmHikVision
- {
- #region 变量与实例
- //参数:阈值
- private double _threshold = 128.0;
- //参数:最小面积
- private int _minArea = 100;
- //参数:是否启用滤波
- private bool _enableFiltering = true;
- //参数:滤波类型
- private string _filterType = "Gaussian";
- //算法名称
- public string AlgorithmName => "ProcessingAlgorithm";
- #endregion
- #region 私有方法
- #endregion
- #region 公开方法
- public object ProcessImage(IImage imageData, int cameraId)
- {
- // 使用当前参数进行图像处理
- Console.WriteLine($"AlgorithmA 处理图像: 阈值={_threshold}, 最小面积={_minArea}");
- // 模拟算法A的处理逻辑
- Thread.Sleep(1); // 模拟处理时间
- Console.WriteLine("相机执行了一次识别");
- return new CameraProcessEventArgsResultModel
- {
- CameraId = cameraId,
- ResultData = $"ProcessingAlgorithm_Processed_Camera{cameraId}",
- Timestamp = DateTime.Now
- };
- }
- public void Configure(string parameters)
- {
- var parameter = XMLReadWrite.DeserializeFromString<ProcessingAlgorithmConfigModel>(parameters);
- if(parameter != null)
- {
- _threshold = parameter.Threshold;
- _minArea = parameter.MinArea;
- _enableFiltering = parameter.EnableFiltering;
- _filterType = parameter.FilterType;
- }
- }
- public object GetParameters()
- {
- return new ProcessingAlgorithmConfigModel
- {
- Threshold = _threshold,
- MinArea = _minArea,
- EnableFiltering = _enableFiltering,
- FilterType = _filterType
- };
- }
- public string GetSaveJson()
- {
- return XMLReadWrite.SerializeToString(new ProcessingAlgorithmConfigModel
- {
- Threshold = _threshold,
- MinArea = _minArea,
- EnableFiltering = _enableFiltering,
- FilterType = _filterType
- });
- }
- #endregion
- }
- }
|