ProcessingAlgorithm.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //实现线程算法示例
  2. using MvCameraControl;
  3. using MvvmScaffoldFrame48.Model.ResultModel;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. namespace MvvmScaffoldFrame48.DLL.ThreadManager
  11. {
  12. public class ProcessingAlgorithm : IImageProcessingAlgorithmHikVision
  13. {
  14. #region 变量与实例
  15. //参数:阈值
  16. private double _threshold = 128.0;
  17. //参数:最小面积
  18. private int _minArea = 100;
  19. //参数:是否启用滤波
  20. private bool _enableFiltering = true;
  21. //参数:滤波类型
  22. private string _filterType = "Gaussian";
  23. //算法名称
  24. public string AlgorithmName => "ProcessingAlgorithm";
  25. #endregion
  26. #region 私有方法
  27. #endregion
  28. #region 公开方法
  29. public object ProcessImage(IImage imageData, int cameraId)
  30. {
  31. // 使用当前参数进行图像处理
  32. Console.WriteLine($"AlgorithmA 处理图像: 阈值={_threshold}, 最小面积={_minArea}");
  33. // 模拟算法A的处理逻辑
  34. Thread.Sleep(1); // 模拟处理时间
  35. Console.WriteLine("相机执行了一次识别");
  36. return new CameraProcessEventArgsResultModel
  37. {
  38. CameraId = cameraId,
  39. ResultData = $"ProcessingAlgorithm_Processed_Camera{cameraId}",
  40. Timestamp = DateTime.Now
  41. };
  42. }
  43. public void Configure(Dictionary<string, object> parameters)
  44. {
  45. if (parameters.ContainsKey("Threshold"))
  46. _threshold = Convert.ToDouble(parameters["Threshold"]);
  47. if (parameters.ContainsKey("MinArea"))
  48. _minArea = Convert.ToInt32(parameters["MinArea"]);
  49. if (parameters.ContainsKey("EnableFiltering"))
  50. _enableFiltering = Convert.ToBoolean(parameters["EnableFiltering"]);
  51. if (parameters.ContainsKey("FilterType"))
  52. _filterType = parameters["FilterType"].ToString();
  53. }
  54. public Dictionary<string, object> GetParameters()
  55. {
  56. return new Dictionary<string, object>
  57. {
  58. { "Threshold", _threshold },
  59. { "MinArea", _minArea },
  60. { "EnableFiltering", _enableFiltering },
  61. { "FilterType", _filterType }
  62. };
  63. }
  64. #endregion
  65. }
  66. }