本文系微信公众号(ISP Algorithm)原创文章,转载请注明出处。
一,简述
本文主要介绍亮度噪声的滤波方法,亮度噪声主要是在YUV空间中的Y分量上。
降噪的本质就是一个加权平均操作。每一个像素点的值,都由其本身和其邻域内的其他像素点的值经过加权平均后得到的。
P(i,j)为当前像素点及其周围领域区域像素值,W(i,j)为区域内每个像素点的权重。
不同的算法其实只是计算W(i,j)方法不同而已。
实际中应用中经常用到的方法:Average,Gaussian, Bilateral,Non-Local Means。
1, Average
滤波窗口内所有像素点权重相同,即W(i,j)=1
2, Gaussian
考虑距离因素:滤波窗口内,距离中心待处理像素点越远,距离越小.
以邻域7x7为例
3, Bilateral
1,考虑距离因素
2,像素点本身值的关系:与中心像素点差值越小,权重越大
以邻域7x7为例
4, Non-LocalMeans
非局部均值,利用图像中的冗余信息来进行去噪,它利用了整幅图像的信息来进行降噪。原始做法:在整幅图像中搜索相似块,块的相似度越高,给予其越高的权重。
实际用法:在某一个局部区域内搜索相似块,然后根据不同的相似度,赋予不同的权重,加权平均得到最终的降噪结果。
我们以搜索区域13x13,匹配块3x3为例来进行详细介绍。
从图中可以看出这种情况下由于采用3x3的块进行匹配计算相似度,故实际参与滤波的像素点个数为11x11=121个。
怎么计算两个块之间的相似度,对最终滤波结果起着决定性的作用。
实际应用中,为了减少计算量,实际中会用SAD来衡量两个块的相似度
blockC为中心3x3的块,blockK为13x13中与blockC匹配的3x3的块如图所示效果图,src为输入图像,SAD为用SAD计算相似度,new为另一种方法计算相似度(在此不做详细说明),我们可以看到滤波效果new>SAD,不同的块匹配相似度计算方法,滤波效果截然不同.
总结:1,实际做成硬件算法,一般用NLM的改进形式
2,NLM的核心在于块匹配准则,不同块匹配准则,结果可能差异很大。
3,除了本文new的效果,还有一些其他的匹配准则,效果更好,本文就不一一列举了。
限于自己水平有限,不足之处请留言批评指正,谢谢。
如想了解pipeline中那个算法,也可留言说明,我会尽量把自己知道的提前更新出来,谢谢。