使用傅里叶变换进行图像边缘检测
今天我们介绍通过傅里叶变换求得图像的边缘
什么是傅立叶变换?
简单来说,傅里叶变换是将输入的信号分解成指定样式的构造块。例如,首先通过叠加具有不同频率的两个或更多个正弦函数而生成信号f(x),之后,仅查看f(x)的图像缺无法了解使用哪种或多少原始函数来生成f(x)。
这就是傅立叶变换最神奇的地方。将f(x)函数通过一个傅立叶变换器,我们就可以得到一个新的函数F(x)。F(x)的是最初生成f(x)函数的频率图。因此,通过查看F(x)我们就可以得到用于生成f(x)函数的原始频率。实际上,傅立叶变换可以揭示信号的重要特征,即其频率分量。
例如下图,该图中有f(x)函数合成时的两个不同频率的原函数和对应的傅里叶变换结果F(x)。

生成该图片的代码如下:
Fs = 150.0; #采样率
Ts = 1.0 / Fs; #采样间隔
t = np.arange(0,1,Ts)#时间向量
ff1 = 5; #信号频率1
ff2 = 10; #信号2的频率
y = np.sin(2 * np.pi * ff1 * t)+ np.sin(3 * np.pi * ff2 * t)
从图中可以看出,由于原始函数是由两个不同频率的输入函数组成的,因此经过傅立叶变换后的相应频率图显示了两个不同频率的尖峰。
这是对傅立叶变换的比较简单的解释。它是一个非常复杂但非常有用的功能,在数学,物理和计算机视觉中得到了广泛的应用。
图像处理中的傅立叶变换
现在我们知道了傅里叶变换对信号处理的作用。它将输入信号从时域转换到频域。
但是它在图像处理中有什么用?它将输入图像从空间域转换为频域。换句话说,如果要在进行傅立叶变换后绘制图像,我们将看到的只是高频和低频的频谱图。高频偏向图像中心,而低频偏向周围。具体形式如下图所示。

上面对图像进行傅里叶变换的结果可以通过如下代码实现:
import numpy as np
import cv2 from matplotlib
import pyplot as plt
img = cv2.imread('scenery.jpg', 0

最低0.47元/天 解锁文章
1616

被折叠的 条评论
为什么被折叠?



