📖数字图像处理课程设计:改进的双边滤波算法。
---
📈以下为项目思路:
读完[Bilateral Filtering for Gray and Color Images](https://alexrao02.github.io/web/BilateralFilteringforGrayandColorImages.pdf)这篇论文,我认为这是一种很简单、粗暴的算法,但越是简单越说明了这个算法的优越性,简单的原理赋予了它更高的效率和可拓展性。以下是我个人对文章的理解:
高斯平滑是一个简单、高效的去噪方法,而本文发现了高斯平滑的不足:虽然图像中的噪点被模糊化,但高斯滤波器会对图像中的边缘像素造成腐蚀,使其扩张,造成边界的模糊。于是文章随即在高斯平滑的基础上提出了双边滤波算法,旨在模糊图明显噪点的同时对边缘像素进行保护,而且双边滤波器很好地保持了高斯平滑算法简单、高效的优点。
我认为双边滤波器的本质就是在高斯平滑的基础上完善了卷积核,通过对卷积核乘上一个由像素灰度一阶导数决定的系数,降低灰度梯度较大的相邻像素对窗口中心像素的影响,使卷积时权重的判断更符合“保边去噪”的原则。
前面说到双边滤波器因其简单的原理,有很好的可拓展性,所以双边滤波器很自然地可以被运用到彩色图像的滤波处理中。
这时需要思考的问题就是如何将原先“像素之间的灰度差异”转变为“像素之间的颜色差异”。在对灰度图像的双边滤波处理中,我们在卷积过程中对比的是邻居像素的灰度值差异,由此类推不难想到我们可以通过比较像素间RGB 值差异来衡量两个像素的颜色差异。在本文结尾提到的对于彩色图像的双边滤波器中,作者使用了两种方法:
- 在 R、G、B 三个颜色通道中分别使用灰度值滤波。
- 直接将每个像素点的颜色置于 RGB 颜色空间中,通过比较两种颜色(R,G,B)向量的欧几里得距离来判断颜色差距,然后再进行卷积。
这两种方法在彩色图像中都得到了一定的平滑效果,但会在图像中的边缘处产生伪影(其实在照片拍摄时由于抖动、相机性能等因素也会产生伪影),造成在图像边缘处有颜色混合、颜色互相入侵的现象。为了解决双边滤波处理后颜色在图像边缘平滑产生的伪影,本文提到了将 RGB 颜色空间变为 CIELab颜色空间的解决办法,得到了更好的结果,但没有详细阐述这个方法的原理。我认为,其实这个方法的本质是 CIELab 空间中的色彩分布比 RGB 空间更均匀,颜色空间的颜色分布均匀度提高后计算出来两个像素颜色向量的欧几里得距离就可以更好地拟合人眼所观察到的色差程度,由于人通过眼睛来观察图像,所以这样的拟合就可以减少人在看图片时所识别出来的伪影。
根据这个思路,我们可以想到:只要能找到比 Lab 色彩均匀度更高的颜色空间,就可以进一步改进和拓展双边滤波器。只要进一步提高算法使用的颜色空间的色彩分布均匀度,就可以更好地保护图像边缘的颜色,降低色差过大的两个像素之间的相互影响,从而得到更好的“去噪保边”效果。
于是,我寻找了相关文献,终于从光学学报 2022,42(1)[改进的CIELAB均匀颜色空间](https://alexrao02.github.io/web/mlabspace.pdf)中,可知目前已有研究找到了比 CIELAB 分布更均匀的颜色空间 MLAB,该研究表明 MLAB 颜色空间对色差的预测与人眼感知差异的匹配程度要显著优于 CIELAB 颜色空间,如果将 MLAB 运用在彩图的双边滤波器中,可以得到更好的平滑效果。
---
🌄改进后的双边滤波算法对比图例:
可见改进后的基于MLAB色彩空间的双边滤波算法可以更好地处理图像边缘的伪影,且使得图像边缘的颜色入侵现象有明显减弱。从去噪角度来说,改进后的滤波算法直观表现更好。
![](https://raw.githubusercontent.com/alexrao02/ImageHost/main/%E6%88%AA%E5%B1%8F2023-02-25%2016.16.16.png)
![](https://raw.githubusercontent.com/alexrao02/ImageHost/main/%E6%88%AA%E5%B1%8F2023-02-25%2016.16.37.png)