ProcessingAlgorithm_Default.cs 2.8 KB

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