)
目录前置Sobel 算子基础原理2.1 基于 Sobel 输出计算灰度指标与梯度指标2.1.1 扇区分割的目的和 Sobel 的关联①灰度指标②梯度指标③方向补偿因子S2.2 像素灰度调整规则全部判断依托 Sobel 衍生出的 6 个指标Case1斜坡下半区中心线下方Case2斜坡上半区中心线上方Case3中心线邻近Case4其余情况像素保持原值。2.3 工程附加机制与 Sobel 输出的关联2.4 Sobel 算子在本算法中的角色总结2.5 局限性结合 Sobel 特性补充与两类经典算法对比结合梯度视角以下总结至《Edge sharpening through ramp width reduction》论文算法的整套流程建立在 Sobel 梯度输出之上Sobel 提供每个像素梯度幅值Mag与梯度方向后续全部的指标计算、斜坡判断、像素位置判定都依赖这两个输出。 先回顾 Sobel 基础原理再把 Sobel 输出如何服务于本算法每一步做串联完整梳理整套算法。前置Sobel 算子基础原理Sobel 是离散图像常用一阶梯度算子利用 3×3 卷积核分别计算水平方向梯度\(G_x\)、垂直方向梯度。灰度沿x水平方向变化量正值代表像素向右灰度升高灰度沿y垂直方向变化量正值代表像素向下灰度升高。由进一步得到本算法必须的两个量梯度幅值表征该点灰度变化剧烈程度梯度方向值域([-\pi,\pi])。物理含义灰度上升最快的方向沿着方向前进图像灰度不断增大。本算法关键点不仅要计算中心像素(i,j)的还要计算 8 邻域全部像素的 Sobel 梯度幅值与方向用于后续灰度指标、梯度指标插值计算。⚠️注意Sobel 本身对噪声有一定平滑但是 Sobel 依然会响应噪声点产生虚假梯度论文依靠后续斜坡一致性条件过滤噪声而不是依靠 Sobel 本身。2.1 基于 Sobel 输出计算灰度指标与梯度指标算法拿到每个像素经 Sobel 算出的把划分为 8 个扇区。每一个扇区介于一条主轴水平 / 竖直和一条对角线45° 倍数之间。示例 Zone1也就是 Sobel 算出灰度上升方向落在水平向右与 45° 右下之间。2.1.1 扇区分割的目的和 Sobel 的关联3*3 窗口中心像素窗口坐标Sobel 给出的梯度方向可以是内任意连续角度不是只能取 0、45、90° 这类离散角度。 但指标的采样模板只定义在主轴方向、对角线方向因此取该扇区两个边界角度主轴角度、对角线角度分别计算两套使用权重做线性插值把两套模板结果融合得到Sobel 输出真实角度\(\theta\)对应的指标。权重以 Zone1 为例Sobel 梯度严格水平向右完全使用水平模板Sobel 梯度严格 45° 对角线完全使用对角线模板。①灰度指标沿 Sobel 梯度的低灰度侧灰度统计沿 Sobel 梯度的中心位置灰度统计沿 Sobel 梯度的高灰度侧灰度统计。1边界角度水平方向窗口按列划分 L/M/H每一列做竖直加权平均。2边界角度45° 对角线如果按照如下排列H的计算是否有误呢是否为3线性插值得到真实下灰度指标 权重完全使用水平方向指标完全使用 45° 对角线指标。Zone1 下先算 0°、45° 两套模板再插值这个不等式的物理含义沿着 Sobel 给出的灰度上升方向灰度单调增大确认该点落在斜坡边缘上。噪声点经过 Sobel 会得到随机很难满足这个有序单调关系噪声被筛除。②梯度指标注意不是重新跑一遍 Sobel是直接复用已经算好的 Sobel 梯度幅值 Mag做模板采样 插值。沿 Sobel 梯度方向低灰度侧的 Sobel 梯度幅值统计沿 Sobel 梯度方向中心位置的 Sobel 梯度幅值统计沿 Sobel 梯度方向高灰度侧的 Sobel 梯度幅值统计。代表沿梯度方向上低灰度侧、中心、高灰度侧位置的梯度幅值统计用于判断当前采样像素处于斜坡的哪一段。1角度 0°2角度3同样用插值得到最终梯度指标的作用利用沿梯度方向上 Sobel 梯度幅值的变化趋势判断当前像素处在斜坡的哪一段。 真实图像斜坡的特性论文图 2 (d)沿灰度上升方向Sobel 梯度幅值先增大到达斜坡中心线二阶方向导数过零点达到峰值之后再减小。G持续增大 → 还没到中心线斜坡下半区G达到峰值 → 中心线附近G持续减小 → 越过中心线斜坡上半区③方向补偿因子SSobel 梯度角度不同模板采样的几何投影间距不一样不同角度下得到的灰度差天然幅度不一致。S用来做几何补偿保证不同走向边缘修正强度一致。论文原因水平方向和对角线方向上 L‑M‑H 像素分组之间几何投影间距不同导致不同角度下计算得到的灰度差值天然存在幅度差异S用来补偿该几何效应保证不同走向边缘锐化修正幅度保持一致。不是简单像素采样间距等于。2.2 像素灰度调整规则全部判断依托 Sobel 衍生出的 6 个指标前置条件由 Sobel 梯度方向定义的灰度上升方向上灰度单调递增判定为斜坡上像素进入后续处理否则直接跳过。斜坡中心线沿 Sobel 梯度方向的二阶方向导数过零点对应 Sobel 梯度幅值峰值位置属于连续域概念不一定刚好落在离散像素网格。Case1斜坡下半区中心线下方沿 Sobel 灰度上升方向Sobel 梯度幅值持续变大尚未到达幅值峰值中心线。降低像素灰度越靠近 Sobel 梯度幅值峰值中心线修正量被衰减趋近 0。Case2斜坡上半区中心线上方沿 Sobel 灰度上升方向Sobel 梯度幅值开始下降已经越过幅值峰值中心线。抬高像素灰度靠近中心线修正量衰减。Case3中心线邻近当前位置 Sobel 梯度幅值指标大于沿梯度方向前后两侧处于幅值峰值附近像素灰度保持不变。核心Sobel 梯度幅值最大的邻近像素不做改动保证边缘位置不漂移。Case4其余情况像素保持原值。整体效果以 Sobel 识别出的斜坡中心线梯度幅值峰值位置为锚点下半区往下压灰度、上半区往上抬灰度斜坡被向中间挤压过渡宽度减小。2.3 工程附加机制与 Sobel 输出的关联梯度幅值阈值过滤利用 Sobel 输出的若Mag小于预设阈值直接判定非边缘像素跳过整套指标运算加速计算。Sobel 幅值很小代表局部灰度几乎无变化属于平滑背景。锐化系数默认仅压缩斜坡宽度放大修正量引入过冲伪影。多次迭代迭代时每一轮都要重新对图像做 Sobel 计算。因为图像灰度已经被上一轮修改梯度幅值、梯度方向全部发生变化不能复用第一轮 Sobel 结果。单次迭代斜坡大约向中心线收缩各 1 像素。彩色图像处理原文提取亮度通道整套算法包含 Sobel 梯度计算、指标、灰度修正运行在亮度通道得到每个像素的绝对灰度偏移量将同一个叠加至 R、G、B 三通道。2.4 Sobel 算子在本算法中的角色总结提供方向锚点确定灰度上升方向决定模板旋转、扇区选择整套全部是沿着 Sobel 梯度方向做统计。没有就无法区分斜坡的上下半区。提供幅值一方面用于阈值筛除背景另一方面构成通过沿梯度方向 Mag 的变化趋势判断像素在斜坡上的位置下半区 / 峰值 / 上半区。间接参与斜坡判定的物理前提就是 Sobel 给出的灰度上升方向噪声会让 Sobel 输出虚假破坏该单调条件从而抑制噪声增强。对比传统非锐化掩模非锐化掩模把 Sobel / 高通滤波结果直接叠加原图直接放大高频包含噪声本算法不用 Sobel 输出直接做修正项而是把 Sobel 作为几何定位工具依靠斜坡空间分布做条件判断所以默认参数不会放大噪声。2.5 局限性结合 Sobel 特性Sobel 本身容易受强噪声干扰极强噪声下Sobel 输出错误和Mag斜坡条件被破坏算法失效。算法依赖斜坡边缘的Sobel‑Mag 先增后降的分布特性屋顶型边缘不具备该分布锐化效果微弱。离散采样 Sobel 梯度是离散近似真实连续域的二阶导数过零点不一定落在像素点会带来位置估计的离散误差。补充与两类经典算法对比结合梯度视角算法梯度算子使用方式核心行为噪声表现斜坡宽度缩减 (本文)Sobel 仅作为定位工具用梯度方向、梯度幅值变化趋势判断斜坡区域与像素位置修正量来自邻域灰度统计不是梯度本身挤压斜坡过渡宽度锚定梯度幅值峰值位置不放大噪声非锐化掩模高通滤波梯度信号直接作为修正量叠加原图增大边缘灰度差边缘宽度不变放大噪声Perona‑Malik 各向异性扩散梯度用来控制扩散传导系数迭代迭代修改图像灰度梯度大保留梯度小做平滑迭代改变图像梯度本身抑制噪声但抹除弱边缘