ProcessingAlgorithm.cs 2.7 KB

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