当过滤器称为非线性时,在图像处理中意味着什么?

信息处理 图像处理 过滤器 图片
2022-01-11 05:13:55

在图像处理中,过滤器称为非线性是什么意思?

这是否意味着滤波器的方程包含导数,如果没有,它会被称为线性?

3个回答

过滤器 F 被称为“线性”,如果对于任何标量和任何图像c1c2I1I2

F(c1I1+c2I2)=c1F(I1)+c2F(I2)

这包括:

  • 衍生品
  • 积分
  • 傅里叶变换
  • Z变换
  • 几何变换(旋转、平移、缩放、扭曲)
  • 卷积和相关
  • 任何线性滤波器元组的组合(即,将一些线性滤波器应用于另一个线性滤波器的输出)F(G(I))
  • 任何两个线性滤波器的结果之和(即一个滤波器的输出,逐像素添加到另一个滤波器的输出F(I)+G(I)

和许多其他人。

非线性滤波器的例子有:

  • 任何线性滤波器结果的平方、绝对值、平方根、exp 或对数
  • 任何两个线性滤波器的结果的乘积(即一个滤波器的输出,逐像素乘以另一个滤波器的输出F(I)G(I)
  • 形态过滤器
  • 中值滤波器

假设您有两个过滤器,一个是线性的,一个是非线性的(用于过滤掉一些噪声损坏的图像)。即,在图像的一个小矩形区域中,您有一些具有非常高或低值的坏像素,看起来有点“奇怪”。

现在,线性过滤器(如“平均”)的工作方式如下:

  1. 在元素上放置一个窗口
  2. 取平均值 - 将元素相加,然后将总和除以元素的数量。

您会注意到,如果您扩大过滤器窗口的区域,您将在更多元素上拉伸它(即,更多元素构成自动对过滤像素值做出贡献的平均值)。

另一方面,对于非线性滤波器,例如中值(将要过滤的像素替换为方形窗口内的中值),增加窗口并不一定会对窗口的中值产生影响,因此不会对过滤后的像素造成直接影响。

这是一个数字示例:假设您有 ai,j(即 3x3 窗口)和锚点(中心像素在位置 (2,2) 的中间,并且值是(亮度级别)40、60、80、89、90 , 100, 101, 105, 185。您会注意到中位数为 90,因此锚像素将变为 90。现在假设您增加窗口大小并为这九个添加更多值,即有一个 5x5 窗口。那里即使在那之后,中位数仍然是 90。因此,输入的变化并不一定会导致输出的比例变化,因此是非线性的。

这让我想起了:很多年前(15 年?),我在一本非学术但相当知名的开发者杂志(cof、cofdr、cof、cofdobbs...)中读到了关于 LPC=Linear Predictive Coding 的解释...它给出了例如,的值对的预测,并解释了对于典型(平滑)信号,可以通过绘制一条通过的直线来完成通过这两个给定的值......因此,预测被称为“线性”。我简直不敢相信自己的眼睛。x[t+1]x[t]x[t1]

当然,“线性”与滤波器的线性无关。假设我想使用三个先前的值来预测一个信号的值,我决定通过一个二次多项式来拟合它们,然后进行外推。然后外推将拟合抛物线,但我的过滤器仍然是线性过滤器,因为外推值是输入的线性组合。