窗函数在图像处理中的应用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liubing8609/article/details/85524689

窗函数在图像处理中的应用

1. 频谱混乱的三角函数图像

下图是一个45度倾斜的单一频率的余弦函数图像,请注意图中的边界都不是均匀过渡到外界的,全是不连续的跳变。

https://img-blog.csdn.net/20180524085021172?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

下面来看看这幅图的频谱会是什么样?

https://img-blog.csdn.net/20180524085232658?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

频谱混乱的原因有两个:

第一个重要的原因就是一个域(不论是时域还是频域)的不连续导致了另一个域的振荡,拖尾,泄漏。所以下图中的频谱就会看起来非常混乱。

第二个原因就是DFT的周期性。当使用MATLAB中的函数FFTFFT2的时候,一定要意识到,所做的计算本质上离散傅里叶级数(为什么是级数而不是变换,我会再写一篇文章说明)Discrete Fourier transformDFT)。要知道,DFT的计算隐含着默认的周期性,这一周期性不论是在时域还是在频域都是无穷的,都是无限循环的,从二维信号上讲,即沿着X方向循环复制,也在Y方向循环复制。下图中用红色方框框出的只是其中的一个周期。

https://img-blog.csdn.net/20180425172531208?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

请注意上图中左图中(空间域)余弦信号图和他相邻的图像在红色边缘处的各种不连续(discontinuity)。这种不连续直接导致了右图中(频率域)及其混乱,复杂的频谱。所以,在处理任何图像时,千万不要忽视了图像的边缘。比如说,FFT之前的0填充,这也是一种会经常用到的避免频谱泄漏的有效方式。

汉宁窗

现在对原始图像进行加窗,这里选择的是汉宁窗(hanning window)。下图为汉宁窗的时间域函数图像及其频谱特征。

总的来说,窗函数都比较光滑,就好像一个高斯滑动均值滤波器磨平了原始信号中边缘的不连续。

https://img-blog.csdn.net/20180426094105120?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

https://img-blog.csdn.net/20180426102704718?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

请注意上图中我用红框框出的几个重要参数,这是衡量窗函数的三个重要指标。

对图像加窗

加窗后的频谱图远比加窗前的更集中,更清晰。

https://img-blog.csdn.net/20180426101333318?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

https://img-blog.csdn.net/20180426102528252?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

2. 著名的Cameraman.tiff

刚才的那个例子中,空间域的不连续是非常明显,显而易见的(TIPS:一个域的不连续导致了另外一个域的频振荡和拖尾,不只是从空间域/时间域到频域是这样)。下面用图像处理中的经典图像来看另外一种情况。在这个例子中,边界上的跳变远没有上一个例子那么明显,但也会引起频谱的泄露,污染了(smear)真实的频谱信息,而这种情况最为常见,最容易被忽视。

下图为cameraman的原图和频谱图,注意频谱图中我用箭头标出的一条白色的中轴线,也是频谱的泄漏造成的。

https://img-blog.csdn.net/20180426103441563?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

产生这根白线的原因主要是,原始图像在DFT周期复制的时候,头顶的蓝天部分较亮,而脚下草坪部分较暗。由于图像横向边缘的灰度值突变(见下图),在频谱图中的Y方向产生了频谱的泄露。当然了,图像的纵向边缘也能看到一些灰度的不平滑过渡,势必也会引起图像频谱在X方向的改变,但在此例中并不明显。

https://img-blog.csdn.net/20180426105521393?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

下面看看加窗后的图像和加窗后频谱的改变。

https://img-blog.csdn.net/2018042611025985?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

https://img-blog.csdn.net/20180426110546479?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

频谱图中间的那条白线,没了!

3. 上三角矩阵和下三角矩阵

理论上讲上三角矩阵和下三角矩阵的频谱都应该只有一条斜线,不管是左斜还有右斜,但是往往大家看到的上/下三角矩阵的频谱图当中还有一个十字架。这都是因为没有加窗出现了DFT周期性的边界不连续。

https://img-blog.csdn.net/20180427213534403?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

注意图中的十字架,这是本不该出现在频谱图中的成分。

https://img-blog.csdn.net/20180523173419890?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

下图是加窗后的真实频谱,见下图。

https://img-blog.csdn.net/20180524084635844?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhZHV6aW1hbWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

总结,这篇文章用三个简单的例子,粗略的解释了窗函数在DIP中的应用。实际图像处理的工作中,但凡是用到了频谱操作,很多时候正确的使用窗函数往往是大有裨益的!

【转载】https://blog.csdn.net/daduzimama/article/details/80079215

猜你喜欢

转载自blog.csdn.net/liubing8609/article/details/85524689
今日推荐