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

OpenISP 模块拆解 · 第12讲:双边滤波降噪 (BNF)

OpenISP 模块拆解 · 第12讲:双边滤波降噪 (BNF)

模块作用

BNF 是双边滤波降噪,openISP 中接在 NLM 后继续处理 Y 通道。它根据空间距离和灰度差异共同决定权重,在平滑噪声的同时尽量保护边缘。

openISP 实现

源码类名为BNF(img, dw, rw, rthres, clip)

参数含义
dw5x5 空间距离权重
rw灰度差分段权重
rthres灰度差阈值
clip输出上限

配置中的dw中心权重最大:

8 12 32 12 8 12 64 128 64 12 32 128 1024 128 32 12 64 128 64 12 8 12 32 12 8

核心思想

对每个 5x5 邻域:

weight = spatial_weight * range_weight

空间越近,spatial_weight越大;灰度越接近中心点,range_weight应越大。这样跨边缘的像素会因为灰度差大而权重低。

代码流程

  1. 对 Y 图做 2 像素 reflect padding。
  2. 遍历每个像素的 5x5 邻域。
  3. 计算邻居与中心的绝对差。
  4. 根据rthres把差值映射成rw
  5. dw相乘得到总权重。
  6. 做加权平均。
  7. 裁剪输出。

读源码注意点

  • 源码里每个像素都会print("[x,y]..."),大图会非常慢且输出巨大。
  • rdiff变量后来被替换成 range weight,命名容易误导。
  • 阈值分支依赖rthres=[128,32,8]这种从大到小的配置。

面试问答

Q1: 双边滤波为什么能保边?

因为它不仅看空间距离,还看像素值差异。边缘两侧即使空间上近,但灰度差大,range weight 低,因此不会被强烈平均。

Q2: BNF 和 NLM 的区别是什么?

BNF 是局部滤波,比较单像素灰度差;NLM 是非局部滤波,比较 patch 相似度。NLM 更复杂,BNF 更轻量。

Q3: range threshold 过大或过小有什么影响?

阈值过大时,跨边缘像素也可能参与平均,边缘变软。阈值过小时,只有极相似像素参与,降噪变弱。

Q4: 为什么双边滤波可能产生塑料感?

如果过度平滑,低纹理区域被抹得太干净,而边缘仍保留,会出现不自然的块面感或塑料质感。

Q5: BNF 一般放在锐化前还是后?

通常放在锐化前。先降噪再锐化,可以避免锐化把噪声当细节增强。

http://www.zskr.cn/news/1342865.html

相关文章:

  • 0x.Tools安全最佳实践:如何在非root权限下运行高性能监控
  • 10个Minimal主题实用技巧:从基础配置到高级定制
  • Deployment滚动更新与回滚完全指南
  • CANN/pypto共享内存视图
  • Elasticsearch动态模板配置:自动化字段映射的智能解决方案
  • CANN/pypto one_hot操作文档
  • MediaCrawler:企业级社交媒体数据采集的终极架构实践
  • 易魔声:2000+音色免费开源TTS引擎完全指南
  • 如何为 ChocolateyGUI 开发插件:扩展功能与自定义模块指南
  • 2026年整箱低盐萝卜干精选推荐公司 - 品牌宣传支持者
  • CANN/pypto CODEGEN组件错误码
  • ShareGPT部署完全指南:如何在Vercel上快速搭建自己的分享平台
  • ENLoadingView 深度解析:打造啤酒泡沫般丝滑的加载动画
  • Stylis与主流框架集成:React、Vue和Angular的完整实践指南
  • 终极Chrome自动化指南:使用AutoHotkey实现浏览器自动操作
  • 深入理解RAMPaperSwitch的动画原理:从CAShapeLayer到核心动画实现
  • 终极破解:如何深度掌控JetBrains IDE评估期重置技术?
  • 把“地基“还给内容:从80万在读凡人流IP看漫改长青之路,SoundView情感配音如何让好故事「声」入人心?
  • CANN/PyPTO hypot函数API文档
  • Bpmn Process Designer性能优化指南:大型流程图的渲染与交互优化
  • Rufus终极指南:如何轻松制作Windows和Linux启动盘,告别安装烦恼!
  • Flet按钮控件终极指南:掌握TextButton、ElevatedButton和IconButton的完整定制技巧
  • 6G通信技术迭代:通感算智融合,构建天地一体全域通信体系
  • 蘑菇博客性能优化技巧:10个提升博客访问速度的方法 [特殊字符]
  • 文字修仙项目市场价值与商业化分析
  • 鲁大师-免费龙虾LfClaw-这个大家装过吗?有用吗?
  • 如何快速实现GitHub Desktop中文汉化:5个步骤完成高效本地化
  • AI Agent Harness Engineering 的“幻觉”检测与纠正机制
  • 昇腾CANN cann-competitions:办一场算子优化竞赛的完整流程
  • VvvebJs权威指南:零代码可视化网页构建实战