Action902.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using OpenCvSharp;
  2. using PaintDotNet.Base.Enum;
  3. using PaintDotNet.Base.Functionodel;
  4. using PaintDotNet.Data.Param;
  5. using System.Drawing;
  6. namespace PaintDotNet.Data.Action
  7. {
  8. /// <summary>
  9. /// 物相提取
  10. /// </summary>
  11. public class Action902 : ParamObject
  12. {
  13. public override Mat PerformProcess(Mat hls, Mat rgb, Mat origin, PhaseModel model, System.Drawing.Point point)
  14. {
  15. return Adjust.PhaseExtractionIntent.ImagePhaseExtractionWithView(hls, rgb, origin, model, point, this.Lists);
  16. }
  17. public override Mat PerformProcess(Mat rgb, Mat origin, PhaseModel model, System.Drawing.Point point)
  18. {
  19. return Adjust.PhaseExtractionIntent.ImagePhaseExtractionWithView(rgb, null, origin, model, point, this.Lists);
  20. }
  21. public override Mat PerformProcess(Mat src, PhaseModel model, System.Drawing.Point point)
  22. {
  23. return Adjust.PhaseExtractionIntent.ImagePhaseExtraction(src, model, point, this.Lists);
  24. }
  25. public Action902()
  26. {
  27. this.MenuId = ActionType.ActionPhaseExtraction;
  28. this.OpenImage = "";
  29. #region 整个图像
  30. ChoiseArray defineObject = new ChoiseArray("defineObject", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.Definetheobject.text"),
  31. new BooleanObject[] {
  32. new BooleanObject("item1", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.click.text"), true,
  33. new IntegerNumber[]{
  34. new IntegerNumber(0, 100, 0, "allowable", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.admissiblevalue.text")),
  35. new IntegerNumber(0, 100, 0, "scopeSize", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.Rangesize.text"))
  36. }),
  37. new BooleanObject("item2", PdnResources.GetString("Menu.contour.text"), false,
  38. new StringArray[]{
  39. new StringArray("contourObject", PdnResources.GetString("Menu.quyuname.Text"), InvariantData.contourparameters, ContourParameters.Polygon)
  40. }
  41. )
  42. }
  43. );
  44. StringArray binaryTypeA = new StringArray();
  45. binaryTypeA.key = "binaryType";
  46. binaryTypeA.name = PdnResources.GetString("Menu.Binarystyle.text");
  47. binaryTypeA.initialValue = InvariantData.styleparameters;
  48. binaryTypeA.Value = StyleParameters.Solid;
  49. StringArray targetProcess = new StringArray();
  50. targetProcess.key = "targetProcess";
  51. targetProcess.name = PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.Targetprocessing.text");
  52. targetProcess.initialValue = InvariantData.processingparameters;
  53. targetProcess.Value = ProcessingParameters.Add;
  54. ChoiseArray setColor = new ChoiseArray("setColor", PdnResources.GetString("Menu.Setting.Text"),
  55. new BooleanObject[]
  56. {
  57. new BooleanObject("RGBColor", "RGB", true,
  58. new DecimalScope[]
  59. {
  60. new DecimalScope(0, 255, 0, "RColor", "R"),
  61. new DecimalScope(0, 255, 0, "GColor", "G"),
  62. new DecimalScope(0, 255, 0, "BColor", "B")
  63. }
  64. ),
  65. new BooleanObject("HLSColor", "HLS",false,
  66. new DecimalScope[]
  67. {
  68. new DecimalScope(0, 255, 0, "HColor", "H"),
  69. new DecimalScope(0, 255, 0, "LColor", "L"),
  70. new DecimalScope(0, 255, 0, "SColor", "S")
  71. }
  72. )
  73. }
  74. );
  75. #endregion
  76. #region 单个目标
  77. ChoiseArray binaryType = new ChoiseArray("binaryType", PdnResources.GetString("Menu.Binarystyle.text"),
  78. new BooleanObject[]
  79. {
  80. new BooleanObject("fill", PdnResources.GetString("Menu.solid.text"), true, null),
  81. new BooleanObject("solid", PdnResources.GetString("Menu.Sideline.text"), false, null)
  82. }
  83. );
  84. #endregion
  85. StringArray objectSelect = new StringArray();
  86. objectSelect.key = "objectSelect";
  87. objectSelect.name = PdnResources.GetString("Menu.Targetselection.text");
  88. objectSelect.initialValue = InvariantData.fieldofviewparameters;
  89. objectSelect.Value = FieldOfViewParameters.One;
  90. BooleanObject wholeObject = new BooleanObject("wholeObject", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.Wholeimage.text"), true, null);
  91. wholeObject.Lists.Add(defineObject);
  92. wholeObject.Lists.Add(binaryTypeA);
  93. wholeObject.Lists.Add(targetProcess);
  94. wholeObject.Lists.Add(new BooleanObject("deleteRect", PdnResources.GetString("Menu.Binaryoperation.Binaryextraction.Deleteboundaryobject.text"), null));
  95. wholeObject.Lists.Add(new BooleanObject("holeFill", PdnResources.GetString("Menu.BinaryAction.HoleFilling.Text"), null));
  96. wholeObject.Lists.Add(new BooleanObject("bitsDelete", PdnResources.GetString("Menu.Clasticdelete.text"), null));
  97. wholeObject.Lists.Add(new DecimalScope(0, 100, 0, "bitsDeleteScope", PdnResources.GetString("Menu.suiarea.Text")));
  98. wholeObject.Lists.Add(setColor);
  99. BooleanObject single = new BooleanObject("singleObject", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.Singletarget.text"), false, null);
  100. single.Lists.Add(new IntegerNumber(0, 100, 0, "offset", PdnResources.GetString("Menu.deviation.Text")));
  101. single.Lists.Add(binaryType);
  102. ChoiseArray oneParam = new ChoiseArray("scopeChoise", PdnResources.GetString("Menu.Binaryoperation.Phaseextraction.Extractionmode.text"), null);
  103. oneParam.choiseList.Add(wholeObject);
  104. oneParam.choiseList.Add(single);
  105. oneParam.choiseList.Add(objectSelect);
  106. lists.Add(oneParam);
  107. }
  108. }
  109. }