修复注释乱码
This commit is contained in:
@@ -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>();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user