|
回复 5# dgwxx
嘛,事情也不是那么简单的。denoise从信号处理的角度来说,可以归类于盲解卷积的问题,盲解卷积的一个重要方法就是Wiener滤波。拿fft3dfilter来说,默认的bt=3用的是当前帧+前一帧+后一帧的3D时空Wiener滤波,Wiener滤波基于的是随即过程中谱分析的方法。
Wiener滤波器的构建,是基于谱分析+MSE Estimator的一个优化问题的解:
我们假设噪声是与图像无关的一个信号,那么噪声应该与原图像是叠加关系,设图像为f(x,y,t),噪声是n(x,y,t),包含噪声的图像是s(x,y,t),那么:- s(x,y,t) = f(x,y,t) + n(x,y,t)
复制代码 现在我们想设计一个滤波器,恢复原图像f(x,y,t),如果设这个滤波器的冲击响应是w(x,y,t),那么以上信号s(x,y,t)通过这个滤波器后的输出可以写成:- \hat f(x,y,t) = w(x,y,t) * s(x,y,t)
复制代码 由于我们的目标是让回复的\hat f(x,y,t)尽可能的接近原图像f(x,y,t),那么可以建立一个square error判据:- error(x,y,t) = \sum \sum \sum ((\hat f(x+delx,y+dely,t+delt) - f(x,y,t))^2)
复制代码 其中delx,dely和delt分别表示Wiener滤波器在x,y和t轴上的延迟。
显然error越小则该滤波器w(x,y,t)的性能越好,将error(x,y,t)看成一个于t有关的随即过程,我们可以写出他沿时轴的数学期望:- E(error) = Rss(0) - \integral w(x,y,t)Rws(t+a)dt + \integral \integral w(x,y,t)w(x,y,theta)Rww(t-theta)dtdtheta
复制代码 其中Rss,Rws,Rww分别代表源的自相关函数、源与滤波器的互相关函数和滤波器的自相关函数。目标就是Minimize上面方程,得到w(x,y,t)。
根据Parsaval定律,我们可以将上面的时域表示改写到頻域中,在将滤波器离散化,变成:- E = Pss(0) - W*Pws + W*Pww
复制代码 以上谱函数可以用分块部分重叠经过运动补偿的图像子块估计于是得到滤波器的系数W,重叠是因为规则形状的分块会导致块边缘像素间的相关性丢失,丢失相关性后就会造成块效应,而重叠能让部分相关性得到保留;运动补偿则是因为随即过程问题和时间相关的本质决定的。 |
|