激光散斑降噪

信息处理 图像处理 过滤器 离散信号 噪音
2022-01-16 04:06:14

我正在尝试处理包含 100000 像素波形的一维信号。由于它是通过激光扫描系统获得的,因此它会被一些恼人的散斑噪声破坏。我尝试使用众所周知的非线性图像处理滤波器(例如 Lee 和 Kuan 滤波器)对其进行预滤波,显然针对信号的一维性质进行了修改。

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2784081/(见引文5,7)

然而,得到的信号与具有相同支持大小(例如 15 px)的“朴素”均值滤波器的结果相同。

由于一维处理,这是“预期”的行为还是我可能编写了错误的代码?你能给我链接一些这些算法的工作代码或其他一些减少斑点的代码吗?我在 codeforge 上找到了一些源代码,但我认为 Lee 和 Kuan 算法没有正确实现。

非常感谢您提前。

编辑:添加了一些信号图像:

1) 原创 原版的

2) 平均 1x15 平均 1x15

3) 平均 1x15,叠加宽滤波器 1x15,输入参数 nm = 1.0 和 nv = 0.1 宽滤波器 1x15,nm = 1.0 和 nv = 0.1

4) 平均 1x15,叠加宽滤波器 1x15,输入参数 nm = 1.0 和 nv = 0.2 宽滤波器 1x15,nm = 1.0 和 nv = 0.2

5) 平均 1x15,叠加宽滤波器 1x15,输入参数 nm = 1.0 和 nv = 0.3 宽滤波器 1x15,nm = 1.0 和 nv = 0.3

我们可以在 3,4,5 中看到均值和宽没有区别:均值信号与宽滤波器 1 完全一致。

请注意,在像素 50569 处,有一个我想减少的散斑示例,局部平均值为 121.666,局部方差为 16.755。因此可以发现噪声方差的估计为0.13771,然后我根据上述观察尝试了参数。此外,请注意,在像素 50652 处,信号较低,因此去斑效应也较低。在那里,局部均值是 40.933,局部方差是 4.195,比率是 0.102,因此在高峰值上的比率是顺序的。

再次感谢您的关注

1个回答

在我看来,小波可以为您的噪声过滤问题提供一个巧妙的解决方案。以防您不知道小波变换使用两个滤波器(也称为母小波和父小波)。这两个滤波器产生一个大小为原始信号一半的子信号(也称为子带)。我的意思是说你的信号长度是 100。在小波变换后,你会得到 2 个大小为 50 的信号。其中一个信号是原始信号的近似值,另一个是细节信号。通常噪声分量出现在细节部分。

为了去除噪声,通常做的是进行小波变换。它的实现在 matlab (dwt() ) 中可用。这将导致两个结果 cA 和 cD。

[cA,cD] = dwt(X,'haar')

然后我建议你在 cD 上执行通常的噪声去除算法,并使用 cA 和 cD'(即过滤的 cD)重建原始信号。

cD_1 = someProcessing( cD )

X = idwt(cA, cD_1,'haar')

请查看以下链接以获取有关使用小波进行噪声过滤的更多信息 1. 博士论文题为“使用小波的信号恢复和降噪”从这里下载。