轮廓滤波
功能介绍
模块位置:图像处理-轮廓滤波
对轮廓进行滤波,包括以下几种方法:
- 线性插值:当相邻两点距离大于 插值间隔 并且不超过 最大允许插值间隔 时,按线性比例在两点之间插入若干新点,最多 每段最大插入点数 个,用于修补小缺口或加密曲线。
- 中值滤波:用滑动窗口中的中位数替换当前点,可有效去除尖峰噪声而基本保持边缘形状,窗口宽度由 内核大小(中值滤波) 指定。
- 平均:滑动窗口做简单平均(均值),平滑随机噪声并弱化高频抖动,窗口宽度由 内核大小(平均) 指定。
- 抽取:沿曲线累计距离达到 抽取间隔距离 时保留一个点,其余跳过,以降低点数、简化轮廓。
- 高斯滤波:对 x、y 序列卷积离散高斯核,核宽度由 内核大小(高斯滤波) 与 标准差 共同决定,兼顾平滑与细节保留。
- 百分比滤除:统计全局 x 或 y 分位区间,仅保留位于 百分比下限/上限 范围内的点(方向由 滤除方向 指定),剔除整体离群值。
- 离群点滤波:包含半径滤波和统计滤波两种方式:
- 判断每个点指定半径内点数量是否满足阈值,来剔除离群点;
- 对每个点的k邻域点的平均距离进行统计,剔除距离满足一定条件的点;
输入
| 输入 | 类型 | 说明 |
|---|---|---|
| 轮廓源 | 轮廓 | 输入轮廓像 |
| 区域2D | / | 可仅对感兴趣区域进行处理,通过绘制或继承得到一个输入区域:区域类型、区域列表、启用坐标系、坐标系。 |
使用场景
参数说明
闭合
启用后将曲线首尾视为相邻,滤波时按循环序列处理(适用于闭合轮廓)
方法 - 线性插值
插值间隔
对轮廓相邻点距离大于此值的位置进行插值,插值点间距离为插值间隔;单位与轮廓单位一致;
最大允许插值间隔
当轮廓相邻点距离大于此值时,认为非缺口不进行插值;
每段最大插入点数
限制两个相邻点之间插值数量;
![]() | ![]() |
|---|---|
| 线性插值前 | 线性插值后(插值间隔 = 0.001,最大允许插值间隔 = 3, 每段最大插入点数 = 2) |
方法 - 抽取
抽取间隔距离
累计轮廓长度达到该值时保留一个点;
![]() | ![]() |
|---|---|
| 抽取前 | 抽取后(抽取间隔距离 = 0.1) |
方法 - 中值滤波
内核大小
计算中值时滑动窗口长度,奇数效果最佳;
![]() | ![]() |
|---|---|
| 滤波前 | 滤波后(内核大小 = 11) |
方法 - 平均
内核大小
计算平均值时滑动窗口长度;
![]() | ![]() |
|---|---|
| 滤波前 | 滤波后(内核大小 = 11) |
方法 - 高斯滤波
内核大小
执行滤波时高斯核长度;
标准差
高斯核标准差 σ,决定平滑强度;
![]() | ![]() |
|---|---|
| 滤波前 | 滤波后(内核大小 = 11, 标准差 = 1) |
方法 - 百分比滤除
滤除方向
按 X 或 Y 方向进行滤除;
百分比下限
低于下限的部分被滤除;
百分比上限
高于上限的部分被滤除;
![]() | ![]() |
|---|---|
| 滤除前 | 滤除后(半径 = 0.2, 最小临近点数量 = 15) |
方法 - 离群点滤波
离群点滤波方法
支持半径滤波和统计滤波两种;
有序搜索
启用时,数据被当成有序数组处理;否则当成无序2d点组成的轮廓;
半径
到当前点距离小于次半径的认为是临近点(半径滤波参数);
最小临近点数量
当前点临近点数量低于最小临近点数量时被认为是离群点(半径滤波参数);
![]() | ![]() |
|---|---|
| 滤波前 | 滤波后(半径 = 0.2, 最小临近点数量 = 15) |
K均值
用于统计分析的邻近点数量(统计滤波参数);
标准差乘数
某点的邻域点的平均距离 > 全局平均距离 + 标准差乘数 * σ,则判定为离群点(统计滤波参数);
输出
| 输出 | 类型 | 默认启用 | 额外启用条件 | 说明 |
|---|---|---|---|---|
| 区域列表 | 区域集 | 否 | / | 传递给下游模块的输入区域集合,保留用户在界面上框选的所有区域 |
| 区域中心列表 | 2D点集 | 否 | / | 每个输入区域计算所得二维几何中心 |
| 输出轮廓 | 轮廓 | 是 | / | 输出处理后的轮廓 |
| 输出点集 | 2D点集 | 是 | / | 处理后的轮廓对应的2D点集 |









