上一篇讲到傅里叶变换,这一节继续图像频域增强的内容。
傅里叶变换(续)
这是上一篇傅里叶变换公式的截图:
我们说,通过公式就可以把空域转换成频域了,上一节提到可以把F(u,v)直接当做一幅图像。其实这并不准确,因为在公式中,有一个存在。它所代表的是复数(忘记的小伙伴可以百度搜一下什么是复数)。那么我们想要以图像的方式观察频域就不能直接通过F(u,v)去看了,毕竟我们也不知道复数所代表的像素值应该是什么东西。因此,我们退而求其次,想办法把复数转换掉不就可以了?所以我们选择如下方法:
每一个F(u,v)都是一个复数,我们将它的实部称为R(u,v),虚部称为I(u,v),然后代入公式计算就可以得到一个F(u,v)的幅度值。
回归主题,我们计算F(u,v)的幅度值就是为了把它变成一幅图像呈现在我们面前。现在你应该知道了,真正的频域图像(称作频谱图)应该该是F(u,v)的幅值而不是F(u,v)本身。(这在后面编码时非常有用)
频谱图具有一些很优秀的特性。比如下面这一幅:
这是一幅没有经过平移(将低频集中在中央操作)的频谱图,它的四个角所代表的就是低频部分。若想将低频部分移动到中心,需要进行一丢丢运算:
原公式:
为了让频谱图更好看些,我们可以这样操作:
所以上面的公式就改写为:
滤波器
我们的图像是二维的,但其实对于滤波器而言,一维和二维理解起来差不多。因此我们以一维来讲,比较容易画图。
之前在说空域滤波器时有提到过,图像的频率所代表的含义其实就是像素值变化的快慢。基于这一点来看,那图像的能量主要集中在低频部分就很好理解了。就像上面那张频谱图,白色主要集中在四个角上,也就是主要集中在低频上。
为什么图像的能量主要集中在低频部分?
我们说,任何一幅图像,具有局部不变性,也就是在一小片区域内的像素值几乎一样,而真正属于“边界”的地方是很少的,因此图像的能量主要来源于低频。
与空域类似,频域滤波器也有两种,分别叫做高通滤波器和低通滤波器。
低通滤波器
低通滤波器是只允许低频通过不允许高频通过的滤波器。从一维来看,低通滤波器大致长这个样子:
我们利用低通滤波器和我们的频谱进行卷积操作,就可以得到一个过滤掉高频部分的频谱了。
同理,高通滤波器也是类似的。不再赘述。
在实际的应用中,上述的低通滤波器太过于理想。一般而言,不能直接应用在图像的频域上,会造成振铃效应(可以搜索看看振铃效应相关的图像)。因此在现实中,通常会使用一些别的低通滤波器。
例如:
巴特沃斯低通滤波器
n=1的巴特沃斯低通滤波器剖面如图:
以下三幅图分别是:(a)原图 (b)使用理想低通滤波器 (c)使用巴特沃斯低通滤波器
(b)的振铃现象较明显
除此之外,还有其他常用滤波器,如,梯形低通滤波器和指数低通滤波器。不再一一介绍。
高通滤波器
高通滤波用于消除对应图像灰度值缓慢变化的低频分量。与上述低通滤波器差不多,也有对应的巴特沃斯高通滤波器、梯形高通滤波器、指数高通滤波器等。
以下是对图像(图a)使用高通滤波器的效果图(图b)。
同态滤波
同态滤波是一种在频域中同时将图像亮度范围压缩和将图像对比度增强的方法。也可用于消除图像中的乘性噪声。
一幅图像可以使用光照模型来表示:
其中,表示光照强度,
表示反射率(乘性噪声的原理类似这个)。同态滤波方法就是利用上述公式将图像中的照明分量和反射率分开,这样同态滤波函数就可以分别作用于这两个分量上。
同态滤波基本思想:将非线性问题转化为线性问题。
同态滤波做了以下的操作,将乘法变为加法,处理过后再恢复:
1、等号两边取对数
2、傅里叶变换
3、用相对应的同态滤波函数处理
4、傅里叶反变换到空域
5、两边取指数