python - 频域图像直方图
问题描述
我一直在尝试分析图像中低频和高频波的存在。我的目标是能够在视觉上辨别图像是否主要由低频或高频组成。
我的第一直觉是生成彩色图像的傅里叶变换或小波变换的直方图。但是,我不确定如何进行。
鉴于傅立叶变换的强度没有给出频率的表示,我想我可以使用坐标作为我的“箱”和强度作为我的频率来生成一个“直方图”。但我不确定这在数学上是否合理。
是否设置了创建频域直方图的任何默认方式?为此,小波或傅立叶变换效果最好吗?
谢谢大家的帮助。
编辑 1
所以我一直在尝试可视化构成图像傅立叶变换的各个频率。但是没有成功。
我试图对变换后的图像的每个点进行反向变换,并将剩余的矩阵设置为零,但我认为结果不是我所期望的。这里有些例子:
那是我的初始图像,它是通道傅立叶变换,忽略红色的天空。下面是一些点的逆变换,我使用下面的方法来提取频率。r_fft
不移位。
wave_fft_r = np.zeros(r_fft.shape, dtype=r_fft.dtype)
wave_fft_r[i,j] = r_fft[i,j]
wave_img = np.fft.ifft2(wave_fft_r)
我不认为这有助于分析图像是由更多的高频还是低频组成。@CrisLuengo 提到了频率的一维表示,但我不知道该怎么做。
例如,鉴于下图,它似乎比第一个具有更多的高频,但我正在寻找一种以数字方式显示它的方法。并且仅通过查看幅度谱来区分它并不容易。
解决方案
推荐阅读
- javascript - 构建从 postgres 数据库中获取数据而无需重新加载页面的 Flask 应用程序
- php - 如何使用 oauth1.0 进行 POST 请求?(Oauth1.0 POST 方法不起作用)
- java - 如何使用 StringBuilder 方法传递缓存键?
- unity3d - 来自单个方向的 2D 碰撞?
- java - 在 Anylogic(Java、SQL)上查找连续数据的最快方法是什么
- python - 如何使用字典理解排除嵌套字典中的内部字典键?
- node.js - 我可以使用 angluar 的平台浏览器在标题中添加脚本吗
- flexbox - 引导网格系统间隙
- c# - 从 c# 打开 SSMS 查询窗口
- shell - 检查日期是否为所需格式或不使用 shell 脚本