图像分析:傅里叶变换、余弦变换与积分图像
1. 概述
之前我们了解了OpenCV提供的图像变换,这些变换本质上是将输入图像映射为输出图像,输出依然是图像。而现在我们要探讨的操作会将图像转换为可能完全不同的表示形式。这些新表示通常还是值的数组,但这些值的含义可能与输入图像的强度值大不相同。例如离散傅里叶变换,其输出“图像”虽仍是数组,但包含了输入图像的频率表示。在某些情况下,变换结果可能是组件列表,而非数组,如霍夫线变换。最后,我们还会学习图像分割方法,它能将图像表示为有意义的连接区域。
2. 离散傅里叶变换(DFT)
对于由离散(整数)参数索引的任何一组值,可以类似于连续函数的傅里叶变换来定义离散傅里叶变换(DFT)。对于N个复数$x_0, x_1, x_2, …, x_{N - 1}$,一维DFT的定义如下(此处公式省略),类似的变换也可定义用于二维数组(更高维的情况也存在)。一般来说,计算N个不同的项$g_k$可能需要$O(N^2)$次操作,但实际上有几种快速傅里叶变换(FFT)算法能在$O(N log N)$时间内完成计算。
2.1 cv::dft()函数
OpenCV的 cv::dft() 函数实现了一种FFT算法,可用于计算一维和二维数组的FFT。其函数原型如下:
void cv::dft(
cv::InputArray src, // Input array (real or complex)
cv::OutputArray dst,
超级会员免费看
订阅专栏 解锁全文
724

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



