Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 3.6 KB

2.7.md

File metadata and controls

70 lines (49 loc) · 3.6 KB

傅里叶描述子

傅里叶描述子,在 ximgproc 中有实现。网上一篇具体介绍的文章:https://www.cnblogs.com/edie0902/p/3658174.html

我知道的一种应用是用来做形状匹配,ximgproc 对应章节也有调用的函数实现。个人的实验代码在 test_shape.ipynb 最后的 block 中,以下是复制:

import math

img1 = cv2.imread('./image/shape/13.png', -1)
contours1, _ = cv2.findContours(img1, cv2.RETR_TREE, method=cv2.CHAIN_APPROX_NONE)

img2 = cv2.imread('./image/shape/14.png', -1)
contours2, _ = cv2.findContours(img2, cv2.RETR_TREE, method=cv2.CHAIN_APPROX_NONE)

# 计算傅里叶描述子,这个在之后没用到,只是单纯演示;返回 CV64F2
descriptors = cv.ximgproc.fourierDescriptor(contours1[0], nbElt=-1, nbFD=-1)

# sampling contour we want 256 points
fit = cv2.ximgproc.createContourFitting(1024,16)
fit.setFDSize(16)

cs1 = cv2.ximgproc.contourSampling(contours1[0].reshape((-1, 1, 2)), 256)
cs2 = cv2.ximgproc.contourSampling(contours2[0].reshape((-1, 1, 2)), 256)
alphaPhiST, _ = fit.estimateTransformation(cs1, cs2)

out_shape = cv2.ximgproc.transformFD(cs1, alphaPhiST, fdContour=False)

show_images([
    ('img1', draw_points(img1, contours1[0])),
    ('img2', draw_points(img2, contours2[0])),
    ('Use Fourier', draw_points(img2, out_shape)),
])

其他的应用,以下是 AI 的回答:

傅里叶描述子(Fourier Descriptors)是一种用于描述信号形状特征的方法,它基于傅里叶级数和傅里叶变换的理论。傅里叶描述子广泛应用于多个领域,包括但不限于图像处理、模式识别、音频分析和生物医学信号处理。以下是傅里叶描述子的一些主要作用和应用:

1. **形状分析**:
   - 傅里叶描述子可以用来分析和比较不同形状的特征。通过将形状的边界表示为傅里叶级数,可以提取形状的特征,如凸性、凹性和对称性。

2. **特征提取**:
   - 在图像处理中,傅里叶描述子可以用来提取图像的特征,这些特征可以用于图像识别、分类和匹配。

3. **信号分析**:
   - 在信号处理中,傅里叶描述子可以用来分析周期性信号的频率成分,以及非周期性信号的频谱特性。

4. **数据压缩**:
   - 通过保留主要的傅里叶系数,可以对信号进行压缩,从而减少所需的存储空间或传输带宽。

5. **图像和信号重建**:
   - 利用傅里叶描述子,可以从其傅里叶系数重建原始信号或图像,这在图像去噪和信号恢复中非常有用。

6. **模式匹配**:
   - 在模式识别领域,傅里叶描述子可以用来匹配和识别不同的模式,如指纹匹配、面部识别等。

7. **动态系统分析**:
   - 在系统辨识和控制理论中,傅里叶描述子可以用来分析系统的动态响应。

8. **音频处理**:
   - 在音频处理中,傅里叶描述子可以用来分析音频信号的频率成分,实现音效处理、语音识别等功能。

9. **生物医学信号分析**:
   - 在生物医学领域,傅里叶描述子可以用来分析心电图(ECG)、脑电图(EEG)等生物医学信号,帮助诊断和监测疾病。

10. **纹理分析**:
    - 在计算机视觉中,傅里叶描述子可以用来分析图像的纹理特征,用于纹理分类和识别。

傅里叶描述子的主要优势在于它们能够提供信号或形状的紧凑表示,这有助于简化复杂的数据分析和处理任务。然而,它们也有局限性,比如对噪声的敏感性和在处理非周期性或非平稳信号时的局限性。