• 计算机视觉---2.2---频率与傅里叶变换


    傅里叶变换的意义

    傅里叶变换的意义在于提取一张图片的频率成分,理论推导见笔记本。

    映射关系

    其映射关系可以大致总结成

    f(x,y)>F(u,v)

    其中图片可以看作是一个矩阵,矩阵里的元素是灰度值。而矩阵又可以看作是函数的离散形式。(就像向量可以看作一元函数离散一样,见笔记本)。那么f(x,y)就可以认为是矩阵的函数形式。f(x,y)就相当于一张图片,x,y是像素坐标,f(x,y)是像素灰度值。

    F(u,v)是这张图片的某个函数。虽然也可以表示为图片,但是它的意义并不是图片而是一种分析数据。

    具体形式

    傅里叶变换的具体形式是

    F(u,v)=f(x,y)e2πi(ux+vy)dxdy
    e2πi(ux+vy)=cos(2π(ux+vy))+isin(2π(ux+vy))
    1. 两个函数的乘积后积分。对应的离散形式就是两个函数在某点的值相乘,求和。
    2. 这是向量的乘法推广,向量的乘法代表在某个方向的分量投影,这里函数的乘法也是一样。
    3. 如果u,v是确定的,那么可以认为这是f(x,y)在特定正弦函数和特定余弦函数上的分量。
    4. 一连串的正弦函数和余弦函数构成了无穷维空间的基。
    5. 同时由于有无穷多的基,所以u,v是连续变化的。
    6. 傅里叶变换结果F(u,v)表示在某特定基(cos(u,v),sin(u,v))上函数的投影值。如果把(u,v)看作是一个平面,那么可以找到u,v坐标系下,函数在特定基上的投影值。
    7. 傅里叶变换结果对图像的旋转是敏感的。同一张图旋转后其傅里叶变换结果不同。
    8. 实际上,是用二维平面各个方向上的正弦余弦函数来对f(x,y)进行重构,u,v指定了方向,u2+v2 指定了频率的大小。

    如图所示

    这里写图片描述

    左图表示的是(u,v)=(0,0.4),傅里叶变换实数部分所对应的图片
    中图表示的是(u,v)=(1,2),傅里叶变换实数部分所对应的图片
    右图表示的是(u,v)=(10,-5),傅里叶变换实数部分所对应的图片

    从图中可以看出,纹理在某个方向出现的频率升高,那么对应点傅里叶变换的数值也会增大。如果图片旋转,频域图也会变化。

    matlab

    A=imread('window.jpg'); %载入图片
    A=rgb2gray(A);
    B=fftshift(fft2(A)); % 进行傅立叶变换,并且移位
    subplot(231)
    imshow(A);
    title('原始图像');
    subplot(232)
    imshow(abs(B),[ ]);
    title('原始频谱图');
    subplot(233)
    imshow(log(abs(B)),[]);
    title('取对数后的频谱图');
    subplot(234)
    imshow(angle(B),[ ]);
    title('相位图');
    subplot(235)
    imshow(real(B),[ ]);
    title('实部图');
    subplot(236)
    imshow(imag(B),[ ]);
    title('虚部图');
    %代码转自网络

    傅里叶变换结果

    傅里叶变换结果
    这里值得注意的是如果不先变化成灰度图,傅里叶变换的结果是一片空白。
    如图这里写图片描述
    没转成灰度图。

    同时imshow里必须加上[]
    否则会导致频谱图一篇空白

    最后必须对频谱取对数再作图,否则会导致一片空白

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    题目1009:二叉搜索树
    腾讯云API 生成Authentication Header加密字符串 C#代码示例
    《神经网络与深度学习》
    《神经网络与深度学习》第一章 使用神经网络来识别手写数字(三)- 用Python代码实现
    Rust语言的多线程编程
    C# DataTable的Select()方法不支持 != 判断
    《神经网络与深度学习》第一章 使用神经网络来识别手写数字(二)- 用梯度下降来训练学习
    C# 对多个文件进行zip压缩
    《神经网络与深度学习》:第一章 使用神经网络来识别手写数字(一)
    谷歌浏览器如何查看或获取Cookie字符串
  • 原文地址:https://www.cnblogs.com/ironstark/p/4892627.html
Copyright © 2020-2023  润新知