OpenISP 模块拆解 · 第13讲:边缘增强 (EEH)

OpenISP 模块拆解 · 第13讲:边缘增强 (EEH)

模块定位

EEH 文档对应代码 model/eeh.py,类名 EE,即 Edge Enhancement。它通过边缘滤波器提取高频分量,再把经过 LUT/阈值控制的增强量加回原图。通常作用在 Y 通道,因为人眼主要通过亮度边缘感知清晰度。

边缘增强不是增加真实分辨率,而是提高局部对比,让边缘看起来更清楚。

背景原理

锐化常见形式是:

text 复制代码
edge = high_pass(img)
out = img + gain * edge

如果直接对所有高频都增强,噪声也会被放大。因此工程锐化通常包含阈值、限幅、正负边缘控制和边缘图输出。

openISP 实现

EE 输入参数:

  • img: 单通道图像,通常是 Y。
  • edge_filter: 3x5 边缘滤波器。
  • gain: 两档增益。
  • thres: 两个阈值。
  • emclip: edge enhancement map 的限幅范围。

流程:

  1. 对图像做 ((1,1),(2,2)) reflect padding,以适配 3x5 filter。
  2. 对每个像素计算 edge map:
text 复制代码
em = sum(window * edge_filter) / 8
  1. emlut() 根据阈值和 gain 计算增强量。
  2. 将增强量加回中心像素。
  3. 输出增强图和 edge map。

emlut 的含义

emlut() 把边缘响应分成几个区间:

  • 很强的负边缘:用 gain[1] 增强。
  • 中等负边缘:抑制为 0。
  • 弱响应区域:用 gain[0] 轻微增强。
  • 中等正边缘:抑制为 0。
  • 很强的正边缘:用 gain[1] 增强。

最后增强量除以 256 并限制在 emclip 范围内。

这种设计的目的,是避免对某些响应区间过度增强,同时限制 halo 和噪声放大。

为什么输出 edge map

execute() 返回 (增强后的图像, em_img)。这个 edge map 后续可以给 FCS 使用:伪彩往往出现在强边缘附近,FCS 可以根据边缘强度决定是否压低色度。

这体现了 ISP pipeline 中模块之间的联动:锐化模块不仅产生增强结果,也提供边缘信息给后续模块。

参数和调试

  • edge_filter: 决定检测什么方向和频率的边缘。
  • gain: 越大锐化越强,但噪声和 halo 风险也越高。
  • thres: 控制哪些边缘响应参与增强。
  • emclip: 限制增强量,防止过冲。

调试时重点看文字、斜边、头发、树枝和高反差边缘。过强锐化会出现白边、黑边、颗粒感和不自然轮廓。

实现注意点

当前 clipping() 固定 clip 到 255,说明本模块假设输入输出是 8-bit 亮度图。若前级不是 8-bit,需要同步调整。

emlut() 中阈值区间存在一些边界未覆盖的情况,例如等于阈值时走默认 0。通常影响不大,但严格实现会明确所有边界。

学习重点

  • EE 是高频增强,不是恢复真实细节。
  • 锐化最好作用在亮度通道,避免彩色边缘。
  • 阈值和 clip 是控制噪声、halo 的关键。
  • edge map 可以服务于后续 FCS。

面试问答

Q1: 为什么锐化通常作用在 Y 通道?

人眼对亮度边缘更敏感。只锐化 Y 可以提升主观清晰度,同时避免放大色度噪声和伪彩。

Q2: EE 过强有什么现象?

会出现白边、黑边、halo、噪声颗粒增强,甚至让图像显得很硬。

Q3: 为什么 EE 需要阈值?

阈值能避免把微弱噪声当边缘增强,也能控制哪些边缘响应需要被抑制或强化。

Q4: EE 和降噪如何配合?

通常先降噪再锐化。否则锐化会把噪声当作细节放大。

Q5: edge map 为什么还能用于 FCS?

伪彩常出现在强边缘附近,edge map 能告诉 FCS 哪些位置更需要压制色度。

相关推荐
几司6 小时前
OpenISP 模块拆解 · 第14讲:伪彩抑制 (FCS)
isp
几司7 小时前
OpenISP 模块拆解 · 第16讲:亮度对比度控制 (BCC)
isp
几司10 小时前
OpenISP 模块拆解 · 第15讲:色相饱和度控制 (HSC)
isp
几司10 小时前
OpenISP 模块拆解 · 第3讲:镜头阴影校正 (LSC)
isp
几司21 小时前
OpenISP 模块拆解 · 第6讲:色度噪声过滤 (CNF)
isp
几司1 天前
OpenISP 模块拆解 · 第1讲:坏点校正 (DPC)
笔记·学习·isp
几司1 天前
OpenISP 模块拆解 · 第12讲:双边滤波降噪 (BNF)
人工智能·计算机视觉·isp
几司1 天前
OpenISP 模块拆解 · 第5讲:白平衡增益控制 (AWB)
isp
几司1 天前
OpenISP 模块拆解 · 第10讲:颜色空间转换 (CSC)
isp