minliu 发表于 2024-7-5 15:00

图像的傅里叶变换咨询

<p>用MATLAB的fft函数和fftshift函数,对下图一的对角线图进行傅里叶变换,得到如图二和图三,是否正确?</p>

<p >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>

<p >原图</p>

<p >&nbsp; &nbsp;</p>

<p >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图一</p>

<p >&nbsp;</p>

<p >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;FFT 图</p>

<p > &nbsp;</p>

<p >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图2</p>

<p >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>

<p >&nbsp; &nbsp; &nbsp; FFTSHIFT 图</p>

<p > &nbsp;</p>

<p >&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;图三</p>

<p >&nbsp;</p>

<p >请问,图二/图三是否正确?</p>

吾妻思萌 发表于 2024-7-9 10:46

<p>嘶我尝试用imagej做了FFT,请参考</p>

<p> &nbsp;</p>

吾妻思萌 发表于 2024-7-9 11:05

<p>又用python做了FFT看起来结果一致</p>

<p>附上代码,仅供参考</p>

<pre>
<code class="language-python">import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
from scipy.fft import fft2, fftshift

# 读取图像
image = plt.imread('path_to_your_image.jpg')# 替换为你的图像路径

# 将图像转换为灰度(如果需要)
if len(image.shape) == 3:# 如果是彩色图像
    image = np.dot(image[...,:3], )

# 执行快速傅里叶变换
f = fft2(image)
fshift = fftshift(f)

# 计算幅度谱
magnitude_spectrum = 20 * np.log(np.abs(fshift))

# 显示FFT结果
plt.figure(figsize=(10, 5))

# 显示幅度谱
plt.subplot(121)
plt.imshow(magnitude_spectrum, cmap='gray')
plt.title('Magnitude Spectrum')
plt.axis('off')

# 显示中心化后的FFT结果
plt.subplot(122)
plt.imshow(np.abs(fshift), cmap='gray')
plt.title('FFT Shifted')
plt.axis('off')

plt.show()</code></pre>

<p>&nbsp;</p>

<p> &nbsp;</p>
页: [1]
查看完整版本: 图像的傅里叶变换咨询