当前位置: 首页 > news >正文

ISP Pipeline(4): Anti Aliasing Noise Filter 抗锯齿与降噪滤波器

上一篇文章讲的是:ISP Pipeline(3):Lens Shading Correction 镜头阴影校正-CSDN博客

视频:(5) Anti Aliasing Noise Filter | Image Signal Processing Pipeline Tutorial Series

源码:ISP Pipeline(3):Lens Shading Correction 镜头阴影校正-CSDN博客

Anti-Aliasing Noise Filter 是在图像进入后续 ISP 流程之前,对 Bayer 原始图像进行空间域平滑处理,目的是消除图像中高频噪声和虚假信号,同时尽量保留边缘信息。

1. Aliasing 锯齿产生的原因

  • 原始图像分辨率有限,高频内容(如细线、格栅等)在采样时失真;

  • 在 Bayer 模式下,高频伪影更严重,会影响 demosaic;

  • 解决方式:在采样或处理前做低通滤波(Anti-Aliasing Filter,AA Filter)。

2. Noise 噪声的来源

  • 主要来自于传感器(热噪声、电路噪声)、环境光弱时的随机波动;

  • 原始 Bayer 图中的噪声不仅影响清晰度,还会引入伪彩。

 

滤波器实现方式(常见)

 1. Gaussian Blur / Bilateral Filter

  • 对图像做模糊处理,降低高频分量;

  • Gaussian 是均值滤波的加权版;

  • Bilateral(双边滤波)可以同时平滑图像又保留边缘。

 2. Edge-Preserving Filter

  • 用于保持边缘而去除背景噪声;

  • 比如 Guided Filter、Non-Local Means、Kuwahara Filter

  • 适用于对图像细节要求高的高端 ISP。

 3. Median Filter(中值滤波)

  • 抵抗椒盐噪声、单点突变等;

  • 对于 dead pixel 或突发点状噪声较好。

 代码实现:


def AAF(lsc_img, k):"""inputs:lsc_img = bayer domain image after lens shading correctingk = anti-aliasing correction factor to control strenght of anti-aliasingoutputs:aaf_img = bayer domain image after applying anti-aliasing"""padded_img = np.pad(lsc_img, (2,2), 'reflect') # pad the image to give corner pixels full set of neighborsp1 = padded_img[:-4:1, :-4:1] # create 9 different arrays for p0:p8p2 = padded_img[:-4:1, 2:-2:1]p3 = padded_img[:-4:1, 4::1]p4 = padded_img[2:-2:1, :-4:1]p0 = padded_img[2:-2:1, 2:-2:1] * (k**0.5)p5 = padded_img[2:-2:1, 4::1]p6 = padded_img[4::1, :-4:1]p7 = padded_img[4::1, 2:-2:1]p8 = padded_img[4::1, 4::1]neighbors = np.array([p1, p2, p3, p4, p0, p5, p6, p7, p8]) / ((k + 8)**0.5)aaf_img = (np.sum(neighbors, axis = 0)).astype(np.uint16) # apply the filterreturn aaf_img

自定义 Anti-Aliasing Filter(抗锯齿滤波器),对中心像素及其周围 8 个邻居加权平均,达到 降噪和平滑高频伪影 的目的。

提取邻域:

p1 p2 p3
p4 p0 p5
p6 p7 p8

其中中心像素是:

p0 = padded_img[2:-2, 2:-2] * (k**0.5)

其余 8 个邻居不乘 k 权重,而是在后续归一化除以 sqrt(k + 8)

权重逻辑:

aaf\_img = \frac{\sqrt{k}\cdot p0+p1+p2+...+p8}{\sqrt{k+8}}

其中 k 越大,越强调中心像素,越接近原图(平滑度下降);
k 越小,越平均,图像越模糊。 

http://www.lryc.cn/news/575505.html

相关文章:

  • 6月份最新代发考试战报:思科华为HCIP HCSE 考试通过
  • Spring 框架
  • Pytest项目_day03(Postman使用)
  • Servlet继承结构
  • [附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+vue实现的考研图书电子商务平台管理系统,推荐!
  • Docker 入门教程(二):Docker 的基本原理
  • Java基础知识(十一)GUI图形用户界面设计
  • iOS App 上架流程工具链解析:开发者视角下的协作实践总结
  • ubuntu 远程桌面 xrdp + frp
  • AI in CSR Writing: Revolutionizing Clinical Trial Reports
  • 专题:2025中国游戏科技发展研究报告|附130+份报告PDF、原数据表汇总下载
  • Linux命令与脚本:高效系统管理的双刃剑
  • 记dwz(JUI)前端框架使用之--服务端响应提示框
  • Llama 3 + Qwen2双模型实战:单张3090构建企业级多模态知识库(2025精解版)
  • MyBatis深度面试指南
  • 【PX4-AutoPilot教程-TIPS】PX4系统命令行控制台ConsolesShells常用命令(持续更新)
  • 2025Q1东南亚移动游戏:休闲游戏主导下载,本地化是出海重要战略!
  • Unified、Remark 和Rehype 是 JavaScript 生态中用于处理结构化文本(如 Markdown 和 HTML)的核心工具
  • UDP 和 TCP 可以同时使用相同的端口号
  • 创客匠人解析视频号公私域互通逻辑:知识变现的破圈与沉淀之道
  • Vue-15-前端框架Vue之应用基础编程式路由导航
  • MR30分布式IO:产线改造省时 70%
  • 七天学会SpringCloud分布式微服务——03——一些细节的心得感悟(续)
  • FANUC机器人教程:用户坐标系标定及其使用方法
  • 腾讯混元API调用优化实战:用API网关实现流量控制+缓存+监控
  • 向量数据库milvus中文全文检索取不到数据的处理办法
  • SQL学习笔记3
  • recipes的版本比较老如何更新到新版本?
  • Twitter外贸精准获客全景策略(2025实战版)
  • dlib检测视频中的人脸并裁剪为图片保存