我有兴趣了解为什么在图像(或信号)上应用中值滤波器会导致噪声减少的数学原因。
中值滤波器降噪特性背后的数学原理是什么?
直觉:直觉是这样的:你的噪音是一些罕见的事件或事件,与其他事件相比,看起来像是不应该存在的异常值。
例如,如果您正在测量高速公路上每辆车经过您时的速度并绘制它们,您会看到它们通常在 mph 到 mph 的范围内。但是,当您为老板检查数据时,您会看到记录的速度为英里/小时。这个值不仅对高速公路上实际汽车的速度没有物理意义,而且它还与您的其他数据显着不同。将此事件归结为一些奇怪的测量错误,您将其删除,并将其余数据提供给您的老板。
但是,当您日复一日地继续进行测量时,您会注意到时不时地,您会得到那些疯狂的速度测量结果。例如,在 1 小时内,您测量了 1000 辆汽车,它们的速度到英里/小时之间,但是其中 3 辆的速度分别为英里/小时、英里/小时和英里/小时,这不仅违反了当地的州法律,还有那些理论物理学。
您厌倦了不断地进入,并手动删除那些由廉价雷达引起的错误数据点。毕竟,你的老板真的只对速度统计感兴趣,而不是每个实际值。他喜欢为他的老板制作漂亮的直方图。
那些错误的和大量的数字是您认为的一种“噪音” - 由您从阴暗的当铺购买的廉价雷达引起的“噪音”。噪声是加性高斯白噪声吗?(AWGN)。是也不是——它的光谱是宽带和白色的,但它在时间上是罕见的、稀疏的并且非常局部化。最好将其称为“椒盐”噪声(尤其是在图像处理领域)。
因此,您可以做的是通过中值过滤器运行您的数据。您的中值滤波器将采用速度点(点 1 到 5)的块,找到中值,并将该值作为“平均”速度吐出。然后它将取接下来的 5 个点(第 2 点到第 6 点),取那个中位数,然后把它作为平均值吐出,等等。
当您遇到一种超光速时会发生什么?假设您的 5 个速度是 [45, 65, 50, 999999, 75]。如果您采用正常平均值,那么您的“平均”速度将非常大。但是,如果您取中位数,您的“平均值”将为 65。哪个最接近您真正尝试测量的平均值?中值指标。
因此,如果您使用中值滤波器过滤您的数据,您一定会删除这些异常值 - 因此您已经忠实地“去噪”了您的信号。相反,如果您尝试通过传统过滤(仅是移动加权和)来去除噪声,您将在数据中“涂抹”错误,而不是摆脱它。
数学:数学是这样的:中位数测量是所谓的顺序统计。也就是说,它会在订购后沿某个点返回您的数据的值。最大值和最小值也是订单统计信息 - 它们在订购后返回数据的极值点。取中位数也会返回您的有序数据的值,但从中间开始。
但为什么它们与均值过滤器不同?好吧,均值滤波器使用所有数据计算平均值。如果您从最大值、最小值和中值中注意到,您会在不使用所有数据的情况下得到答案。事实上,中位数所做的只是对数据进行排序,然后选择中间的值。它永远不会“触及”异常值,例如您测量的那些大速度。
这就是为什么中位数 - 一种顺序统计 - 能够为您“消除”异常噪声。离群噪声在中位数前面隔离,中位数永远不会靠近它或考虑它,同时仍然可以很好地估计集中趋势。
假设具有正态分布的独立随机变量,一个值超出例如 2 个标准差的概率约为 0.01。
如果您有一个宽度为 3 的中值滤波器,则该三元组必须在均值的同一侧包含两个异常值,才能使异常值通过。此事件的概率为 0.00005。
随着中值滤波器宽度的增加,异常值通过的概率呈指数下降。