双边滤波算法-bilateral
2026/5/16 19:12:23 网站建设 项目流程


一、双边滤波算法概述
1.双边滤波算法是一种非线性图像平滑技术
2.双边滤波可以在去除噪声的同时能够有效的保留图像的边缘
3.双边滤波可以克服传统高斯滤波导致的边缘模糊的缺陷

二、双边滤波的核心
1.保边去噪
2.双边滤波集合空间邻近度和像素值相似度两个权重来计算滤波结果
3.空间权重:距离中心像素越近,影响越大,类似高斯滤波。
4.值域权重:像素值和中心像素越相似,影响越大,差异大权重降低。
5.在图像平坦区域,值域权重接近 1,相当于高斯模糊;在边缘区域,像素值差异大,值域权重降低,从而保护边缘细节不被模糊
6.两个高斯函数(空间域高斯核与值域高斯核)权重的乘积来决定邻域像素的贡献,从而在平滑图像噪声的同时,能较好地保护图像边缘和细节

三、双边滤波函数的关键参数
cv2.bilateralFilter(img, 9, 75, 75)
1.滤波核的直径
2.颜色空间标准差sigma_color
3.坐标空间标准差sigma_space;
d控制参与滤波的空间邻域大小;sigmaColor控制参与滤波的像素颜色(或灰度)差异范围,值越大,允许差异越大的像素参与平均
sigmaSpace控制空间权重随距离衰减的速度。

四、双边滤波算法的实现方式
1.双边滤波的FPGA硬件加速方案采用空域/值域权重预存技术,通过帧消隐期检测参数变化实现滤波系数动态更新
2.采用查表法优化灰度模板计算,将二维空间模板转换为一维数组降低时间复杂度
3.比较常用的双边滤波算子核大小为3*3,5*5,7*7比较常用。

五、范数
||·|| 这个符号,在数学里叫范数(Norm),在图像处理里,通常指欧几里得范数(L2 范数)
||p - q|| 是两点之间的欧氏距离:


五、双边滤波(Bilateral Filter)的两个核
对于gray灰度图:
1.空间权重核
3*3,那么就是9个参数的核
5*5, 那么就是25个参数的核
7*7, 那么就是49个参数的核

2.像素差值核
灰度值差0~255,使用256个参数核


对于rgb图
1.空间权重核
3*3,那么就是9个参数的核
5*5, 那么就是25个参数的核
7*7, 那么就是49个参数的核

2.像素差值核
当三个通道的方差使用是一样的话,值差0~255,使用256个参数核
当三个通道的方差使用是不一样的话,值差0~255,使用3*256个参数核

对于yuv图
1.空间权重核
3*3,那么就是9个参数的核
5*5, 那么就是25个参数的核
7*7, 那么就是49个参数的核

2.像素差值核
当三个通道的方差使用是一样的话,值差0~255,使用256个参数核
当三个通道的方差使用是不一样的话,值差0~255,使用3*256个参数核

六、双边滤波算法在FPGA中实现
在FPGA中实现双边滤波算法,核心挑战是在实时条件下的视频流,
需要平衡“边缘保持效果”和“硬件资源/吞吐率”。

方法一:pipeline + 在线计算
实现方式:
在滑动窗口win_buff中直接使用公式计算指数函数。
实现的架构为:
line_buff + N*N的win_buff来实现。
其中exp函数使用IP核或者Coric来计算权重。

优点:
1.精度高,设计透明,忠实原始算法
2.帧率低,资源多的情况下,可以这么使用

缺点:
1.消耗资源比较多,特别是DSP+LUT
2.Latency延迟大
3.II=1的流水实现不了
4.不适合高分辨率高帧率的设计
5.不适合高并行度NPPC像素的设计


方法二:LUT查找表法
设计空域权重表 + 值域权重表
空域表:对于 N×N 窗口,存储每个相对坐标的固定权重(1 张 N×N 小表)。
值域表:对灰度图(8-bit)只需深度 256 的表;对 RGB/YUV 三通道通常共用一张深度 256 的表(若 σ 相同)。
运行时:绝对差作为值域表地址,窗口坐标作为空域表地址,并行读出权重并相乘。完全避免在线 exp,可轻易达到 II=1。

方法三:快速版本的双边滤波算法设计

将不可分离的双边滤波近似设计为可以分离的近似双边滤波!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询