04 数字图像技术——图像特征提取之实验结果与分析
03 数字图像技术——频域滤波实验结果与分析
02 数字图像技术——颜色空间转换与颜色空间分割实验结果与分析
01 数字图像基本操作——图像采样、量化、算术运算、点运算实验结果及分析
一、实验目的
1.了解图像变换的意义和手段;
2.熟悉傅里叶变换的基本性质;
3.熟练掌握FFT变换方法及应用;
4.通过实验了解二维频谱的分布特点;
5.通过本实验掌握利用python编程实现数字图像的傅里叶变换。
二、实验内容
1. 实现数字图像的FFT变换。
2. 掌握图像FFT变换的性质。
3. 图像FFT变换的性质体现规律和特点分析。
4. 实现低通滤波器。
三、实验设备/仪器
电脑、编程语言(Matlab或Python)、图像数据和存储器。
四、实验原理
1.应用傅里叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2.傅里叶(Fourier)变换的定义
对于二维信号,二维Fourier变换定义为:

逆变换:

二维离散傅里叶变换为:

逆变换:

图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
五、实验步骤与要求
- 编写python代码,实现一维信号的傅里叶变换;
- 编写python代码,实现图像的二维傅里叶变换;
- 编写python代码,实现理想低通滤波器;
- 编写python代码,实现巴特沃斯低通滤波器。
- 记录和整理实验报告。
六、各实验流程图、结果及分析
1. 编写python代码,实现一维信号的傅里叶变换;


代码如下:
import matplotlib.pyplot as plt
import numpy as np
"""中文显示工具函数"""
def set_ch():
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=False
set_ch()
def show(ori_func, ft, sampling_period = 5):
n = len(ori_func)
interval = sampling_period / n
# 绘制原始函数
plt.subplot(2, 1, 1)
plt.plot(np.arange(0, sampling_period, interval), ori_func, 'black')
plt.xlabel('时间'), plt.ylabel('振幅')
plt.title('原始信号')
# 绘制变换后的函数
plt.subplot(2,1,2)
frequency = np.arange(n / 2) / (n * interval)
nfft = abs(ft[range(int(n / 2))] / n )
plt.plot(frequency, nfft, 'red')
plt.xlabel('频率 (Hz)'), plt.ylabel('频率谱')
plt.title('傅里叶变换结果')
plt.show()
#生成频率为 1(角速度为 2 * pi)的正弦波
time = np.arange(0, 5, .005)
x = np.sin(2 * np.pi * 1 * time)
y = np.fft.fft(x)
show(x, y)
x2 = np.sin(2 * np.pi * 10 * time)
x3 = np.sin(2 * np.pi * 40 * time)
x+=x2+x3
y

本文介绍如何使用Python实现图像的傅里叶变换,并探讨变换的性质与应用,包括低通滤波器的设计。

2796

被折叠的 条评论
为什么被折叠?



