图像空域图和频谱图的对应关系

2023-05-16

图像空域图和频谱图的对应关系

    • 傅立叶变换的原理
    • 方向性体现
    • 频率的体现
    • 频谱图中的像素点的亮度
    • 空域图和频域图的对应
    • 综合(指纹图像)
    • Matlab代码

傅立叶变换的原理

关于傅立叶变换这里推荐一篇比较有名的博客:https://blog.csdn.net/wenzhilu/article/details/79079183

这个是课堂上的一个作业,在查找资料时发现有些地方很多人写的有点矛盾,不清楚,再加上我上课对教授的提问,就把我的演示PPT完善后整理出来了。这些不是太专业,就是一些基本的知识但是平时很少去思考到。
二维离散傅立叶变换公式
在这里插入图片描述
图像的离散二维傅立叶变换其实就是两个一维的离散傅立叶变换的叠加,

  1. 先对每一行的一维N点序列进行一维离散傅里叶变换得到F(x,v)
  2. 再对得到F(x,v)按列向对每一列做M点的一维离散傅里叶变换
    当然先对列变换再对行变换是一样的!

方向性体现

通过这三个简单图像可以看出,频谱中的白线方向与图像中的边界是垂直的关系,当然边界上下平移是不改变频谱的,但是边界旋转会改变频谱中白线的方向(图省略)
图二图三图一
通过上面三组简单图片可以看出,它的方向性体现为与空域中灰度变化的方向垂直,这个特性在很多的图片中也是可体现出来的。

频率的体现

图四
第一组纯色的图片,他的灰度没有变化,频谱图全黑
第二组图像是渐变图像,它的灰度变化比较平缓,可以看到频谱图上靠近中心点的部分较亮,边缘的地方没有亮点;
第三组图像是沟壑,它的变化就比较强烈,边界比较多,整个频谱图上都比较亮;
经过上面三组图像的比较可以看出:
图像的频率是表征图像中灰度变化剧烈程度的指标-就是灰度梯度;
可以得到结论:
空域图中空域边缘部分/细节 对应频域 高频分量
在这里插入图片描述
噪声 对应频域 高频分量
在这里插入图片描述
平缓变化部分/背景 低频分量
在这里插入图片描述
图六
这里是Roberts梯度算子,还有其他的梯度算子计算原图像素的灰度梯度值;

频谱图中的像素点的亮度

这个亮度我看了很多的帖子,有些说是梯度越大,亮度越亮。但是上一节可以看出梯度越大,频域也就越高,离频谱中心点也就越远(这里的频谱图经过中心话的,中心频率为0,直流分量),这两个结论就有点矛盾了;比如靠近中心点的亮点怎么解释?
上课的时候我提出来这个问题,得到的答案和我之前的猜想是一致的:
原图中和其邻域的灰度梯度为x的像素点的个数越多,它的亮度也就越亮;当然因为有方向性,所以这些相同梯度值的点对应到频域中也不会都分布在一点上;

空域图和频域图的对应

首先说:因为频谱图表示图像梯度的分布图,所以原图和频率图上的点不是一一对应的,,
频谱图上的点表示空域图某点的灰度梯度大小,梯度大其频率高
暗的点数多,就是说其原图像素梯度较小,频率低,图像就较柔和,
比如左图和右图

相反,右图的变化较尖锐,其频谱图像白点数分布广泛
最后关于频率图的亮度越高,他的频率特征也就越明显

综合(指纹图像)

因为指纹图像有局部方向性,那么它的灰度变化是有一定局部的规律,所以可以看出频率图有比较明显的白色轮廓
指纹图像就类似于刚才的沟壑图,它的边界信息较多,灰度变化大,所以频谱分布范围分布广;
在这里插入图片描述

Matlab代码


I=imread('6.jpg');
I=rgb2gray(I);				%将图像转换为灰度图
I=im2double(I);				%将图像的数据格式转换为double型的 
F=fft2(I);					%傅立叶变换
F=fftshift(F);				%对傅里叶变换后的图像进行象限转换
F=abs(F);					%傅里叶变换的模
T=log(F+1);					%数据范围压缩
figure;						%显示
subplot(2,1,1);imshow(I);
subplot(2,1,2);imshow(T,[]); 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像空域图和频谱图的对应关系 的相关文章

  • 朱刘算法(Directed Minimum Spanning Tree/Directed MST/Minimum Arborescence/Optimum Branchings)

    概念 最小树形图 xff1a 有向图所分离出的有向生成树 亦称为最小树形图 xff0c 其应满足以下条件 xff1a 1 恰好有一个入度为0的点 xff0c 称为根结点 2 其他结点的入度均为1 3 可以从根结点到达其他结点 既然要找最小生
  • 仿真复现文章推荐

    以下学长推荐的文章 xff1a 人脸识别 xff1a SphereFace Deep Hypersphere Embedding for Face Recognition 手势姿态 xff1a OpenPose 3D人脸建模 xff1a L
  • 查看GPU显存 使用率

    watch n 0 2 nvidia smi 主要关注GPU Util Memory Usage 0 2表示每隔0 2秒刷新一次终端的显示结果 上面的表格中 xff1a 第一栏的Fan xff1a N A是风扇转速 xff0c 从0到100
  • scipy.ndimage.zoom

    最近邻 选择离它所映射到的位置最近的输入像素的灰度值为插值结果 最临近插值 3X3 的256级灰度图 xff0c 也就是高为3个象素 xff0c 宽也是3个象素的图像 xff0c 每个象素的取值可以是 0 xff0d 255 xff0c 代
  • torch.manual_seed()

    torch manual seed args seed 为CPU设置种子用于生成随机数 xff0c 以使得结果是确定的 if args cuda torch cuda manual seed args seed 为当前GPU设置随机种子 x
  • python torch.optim.SGD

    torch optim sgd学习参数 torch入门笔记14 Torch中optim的sgd Stochastic gradient descent 方法的实现细节 pytorch中使用torch optim优化神经网络以及优化器的选择
  • python zero_grad()

    有两种方式直接把模型的参数梯度设成0 xff1a model span class hljs preprocessor zero span grad optimizer span class hljs preprocessor zero s
  • torch.topk

    torch kthvalue input k dim 61 None keepdim 61 False out 61 None gt Tensor LongTensor k xff1a 第k个最小元素 返回第k个最小元素 input k d
  • torch.normal()

    torch normal means std out 61 None 返回一个张量 xff0c 包含从给定参数means std的离散正态分布中抽取随机数 均值means是一个张量 xff0c 包含每个输出元素相关的正态分布的均值 std是
  • 台式机ubuntu18.04 x86_64 简单ROS版本安装及其他库编译

    本教程是用于只安装ros melodic ros base的情况下 xff0c 为了避免安装opencv3 2 xff0c 而只保留一个opencv3 4 10 xff0c 而一步步安装rqt xff0c cv bridge xff0c r
  • ubuntu 当前文件夹 文件个数

    ls l grep 34 34 wc l
  • python [:,::-1]

    In span class hljs number 33 span t 61 np array span class hljs string 1 2 3 4 5 6 7 8 9 span In span class hljs number
  • numpy.floor

    numpy floor x out 61 None where 61 True casting 61 39 same kind 39 order 61 39 K 39 dtype 61 None subok 61 True signatur
  • Perfdog玩转内存泄漏

    背景交代 最近QC同学在跑游戏的过程中发现玩的时间久了游戏会发生闪退 xff0c 经过和开发人员讨论后又搜集了一些信息 xff0c 最后排除了功能性bug的原因 一 判断是否是内存泄露 拿到真机 xff0c USB连接 xff0c 杀掉多余
  • LCD1602知识详解(很详尽的)

    1602液晶知识详解 xff1a 1 1602液晶基础 VSS xff1a 电源地信号引脚 xff1b VDD xff1a 电源信号引脚 xff1b VEE xff1a 液晶对比度调节引脚 xff0c 接0 5V以调节液晶的显示对比度 xf
  • 如何学习嵌入式软件

    什么是嵌入式 xff1f 嵌入式分为广义和狭义两种 广义的嵌入式就是片上系统 system on a chip xff0c 包括单片机 PSOC NIOS Microblaze等 而狭义的嵌入式就是ARM9 cortex A8等特定的跑操作
  • Raspberry Pi 4B 通过 MAVROS 实现从地面站远程连接飞控板

    Raspberry Pi 4B 通过 MAVROS 实现从地面站远程连接飞控板 0x00 为 RPi 刷写系统0x01 启动 Ubuntu0x02 使用 SSH 连接至 RPi0x03 更换软件源0x04 安装桌面环境 xff08 可选 x
  • LeetCode-T97-交错字符串(interleaving-string)

    题目 原题链接 题目描述 xff1a 给定三个字符串 s1 s2 s3 验证 s3 是否是由 s1 和 s2 交错组成的 样例 case1 输入 s1 61 aabcc s2 61 dbbca s3 61 aadbbcbcac 输出 tru
  • LeetCode-T167-两数之和 II - 输入有序数组(two-sum-ii-input-array-is-sorted)

    题目 原题链接 题目描述 xff1a 给定一个已按照升序排列 的有序数组 xff0c 找到两个数使得它们相加之和等于目标数 函数应该返回这两个下标值 index1 和 index2 xff0c 其中 index1 必须小于 index2 说
  • LeetCode-T95-不同的二叉搜索树 II(unique-binary-search-trees-ii)

    题目 题目链接 题目描述 给定一个整数 n xff0c 生成所有由 1 n 为节点所组成的 二叉搜索树 样例 case1 输入 xff1a 3 输出 xff1a 1 null 3 2 3 2 null 1 3 1 null null 2 2

随机推荐