修复注释乱码

This commit is contained in:
李伟
2026-04-14 17:11:31 +08:00
parent b8bcefc84b
commit cd03e30bb8
58 changed files with 761 additions and 767 deletions
@@ -1,22 +1,22 @@
// ============================================================================
// 文件å? VoidMeasurementProcessor.cs
// 文件名: VoidMeasurementProcessor.cs
// 描述: 空隙测量算子
//
// 处理流程:
// 1. 构建多边形ROI掩码,计算ROI面积
// 2. 在ROI内进行åŒé˜ˆå€¼åˆ†å‰²æå–气泡区åŸ?
// 2. 在ROI内进行双阈值分割提取气泡区域
// 3. 形态学膨胀合并相邻气泡
// 4. 轮廓检测,计算每个气泡面积
// 5. 计算空隙çŽ?= 总气泡é¢ç§?/ ROIé¢ç§¯
// 5. 计算空隙率 = 总气泡面积 / ROI面积
// ============================================================================
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.CV.Util;
using XP.ImageProcessing.Core;
using Serilog;
using System.Drawing;
using XP.ImageProcessing.Core;
namespace XP.ImageProcessing.Processors;
@@ -32,7 +32,7 @@ public class VoidMeasurementProcessor : ImageProcessorBase
protected override void InitializeParameters()
{
// ── 多边形ROI(由UI注入,最�2个点�──
// ── 多边形ROI(由UI注入,最多32个点) ──
Parameters.Add("PolyCount", new ProcessorParameter("PolyCount", "PolyCount", typeof(int), 0, null, null, "") { IsVisible = false });
for (int i = 0; i < 32; i++)
{
@@ -40,7 +40,7 @@ public class VoidMeasurementProcessor : ImageProcessorBase
Parameters.Add($"PolyY{i}", new ProcessorParameter($"PolyY{i}", $"PolyY{i}", typeof(int), 0, null, null, "") { IsVisible = false });
}
// ── æ°”æ³¡æ£€æµ‹å‚æ•?──
// ── 气泡检测参数 ──
Parameters.Add("MinThreshold", new ProcessorParameter(
"MinThreshold",
LocalizationHelper.GetString("VoidMeasurementProcessor_MinThreshold"),
@@ -109,7 +109,7 @@ public class VoidMeasurementProcessor : ImageProcessorBase
}
else
{
// 无ROI时使用全�
// 无ROI时使用全图
roiMask = new Image<Gray, byte>(w, h);
roiMask.SetValue(new Gray(255));
}
@@ -152,7 +152,7 @@ public class VoidMeasurementProcessor : ImageProcessorBase
CvInvoke.BitwiseAnd(voidImg, roiMask, voidImg);
}
// ── 轮廓检�──
// ── 轮廓检测 ──
using var contours = new VectorOfVectorOfPoint();
using var hierarchy = new Mat();
CvInvoke.FindContours(voidImg, contours, hierarchy, RetrType.External, ChainApproxMethod.ChainApproxSimple);
@@ -183,7 +183,7 @@ public class VoidMeasurementProcessor : ImageProcessorBase
});
}
// 按é¢ç§¯ä»Žå¤§åˆ°å°æŽ’åº?
// 按面积从大到小排序
voids.Sort((a, b) => b.Area.CompareTo(a.Area));
for (int i = 0; i < voids.Count; i++) voids[i].Index = i + 1;
@@ -227,4 +227,4 @@ public class VoidRegionInfo
public double AreaPercent { get; set; }
public Rectangle BoundingBox { get; set; }
public Point[] ContourPoints { get; set; } = Array.Empty<Point>();
}
}