• 图像傅里叶变换


      傅里叶变换是一种数学工具,可用于将图像从空间域转换到频域,能够将图像表示为不同频率的正弦和余弦函数的叠加。傅里叶变换通常用于图像处理和分析,可以帮助理解图像中存在的频率信息和模式。

    傅里叶变换原理:

      傅里叶变换通过将图像从空间域转换到频率域来描述图像的特征。这种变换将图像视为一系列不同频率的正弦和余弦波的加权组合。在频率域中,低频表示图像中变化缓慢的部分,而高频表示图像中变化剧烈的部分。

    傅里叶变换的作用:

    • 频率分析: 傅里叶变换可以帮助分析图像中的频率信息,识别边缘、纹理等特征。
    • 滤波处理: 在频率域中进行滤波操作,例如去除图像中的高频噪声或低频信息。
    • 压缩与编码: 可以利用变换后的频域信息对图像进行压缩和编码。

    适用场景:

    • 图像增强与去噪:通过滤波在频域中去除图像中的噪声。
    • 特征提取:识别图像中的纹理、边缘等特征。
    • 图像压缩:利用频域信息对图像进行压缩。
      傅里叶变换的数学表达式如下:
      F ( u , v ) = ∬ f ( x , y ) ⋅ e − 2 π i ( u x + v y )   d x   d y F(u, v) = \iint f(x, y) \cdot e^{-2\pi i (ux + vy)} \, dx \, dy F(u,v)=f(x,y)e2πi(ux+vy)dxdy
      其中, F ( u , v ) F(u, v) F(u,v)是图像在频率域中的表示, f ( x , y ) f(x, y) f(x,y) 是图像在空间域中的表示, u u u v v v 表示频率域中的频率坐标。
        在OpenCV中,可以使用函数 cv2.dft() 来进行傅里叶变换。以下是一个示例代码:
    import cv2
    import numpy as np
    
    def show_images(image):
        cv2.namedWindow('image',cv2.WINDOW_KEEPRATIO)
        cv2.imshow('image',image)
        cv2.waitKey()
        cv2.destroyAllWindows()
    
    def FT(image):
        # 进行二维傅里叶变换
        f_transform = cv2.dft(np.float32(image), flags=cv2.DFT_COMPLEX_OUTPUT)
        f_shift = np.fft.fftshift(f_transform)  # 将频率原点移到图像中心
    
        # 计算幅度谱
        magnitude_spectrum = 20 * np.log(cv2.magnitude(f_shift[:, :, 0], f_shift[:, :, 1]))
    
        return magnitude_spectrum
    
    if __name__ == '__main__':
        # 读取图像
        img = cv2.imread('cat-dog.png', flags=0)
        re_img=FT(img)
        # # 将四张图像连接成一个大图像
        # top_row = np.hstack((img, re_img[0]))
        # bottom_row = np.hstack((re_img[1], re_img[2]))
        combined_img = np.vstack((img, re_img))
    
        show_images(combined_img)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    4.6 - 堆 4.7 - 图
    【软考 系统架构设计师】嵌入式系统④ 嵌入式操作系统
    安装NodeJS并使用yarn下载前端依赖
    批量压缩图片软件-免费图片压缩后高清无损
    FOC系列(一)----DRV8301芯片的学习
    数据仓库及ETL的理论基础
    鸿蒙API9手机号验证
    Node.js -- 会话控制
    如何有效的进行服务器稳定性测试?
    mac知名的清理软件 cleanmymac和腾讯柠檬哪个好
  • 原文地址:https://blog.csdn.net/qq_50993557/article/details/134539393