【计算机视觉】超简单!傅里叶变换的经典案例
创作时间:
作者:
@小白创作中心
【计算机视觉】超简单!傅里叶变换的经典案例
引用
CSDN
1.
https://m.blog.csdn.net/Jacklx888/article/details/144643578
傅里叶变换是计算机视觉领域中一项非常重要的技术,广泛应用于图像处理、信号分析等领域。它可以帮助我们从频域的角度理解图像的特性,进行滤波、去噪、边缘检测等操作。本文将通过一个具体的案例,详细介绍傅里叶变换的基本概念及其在图像处理中的应用。
什么是傅里叶变换?
傅里叶变换是一种将时域或空域中的信号转换为频域表示的数学工具。在图像处理中,傅里叶变换可以将一幅图像从空间域(即像素值)转换为频率域(即不同频率分量的幅度和相位)。通过这种方式,我们可以更方便地分析图像中的低频和高频信息,并对其进行处理。
- 低频分量:代表图像中的平滑区域或整体结构,通常对应于图像的背景或大尺度变化。
- 高频分量:代表图像中的细节或边缘信息,通常对应于图像中的纹理、噪声或小尺度变化。
傅里叶变换的应用场景
- 图像滤波:通过去除或增强特定频率分量,可以实现图像的低通滤波(去噪)、高通滤波(边缘检测)等效果。
- 图像压缩:JPEG 等图像压缩算法利用了傅里叶变换的思想,通过对图像的频域表示进行量化和编码,减少存储空间。
- 图像去噪:傅里叶变换可以帮助我们识别并去除图像中的噪声,尤其是周期性噪声。
- 图像配准与重建:在医学图像处理中,傅里叶变换常用于图像配准、重建等任务。
案例场景:图像去噪与边缘检测
我们来实现一个经典的案例:使用傅里叶变换对图像进行去噪和边缘检测。我们将使用 Python 的 numpy 和 opencv 库来处理图像,并展示如何通过傅里叶变换实现这些操作。
代码实现
- 安装依赖库
首先,确保你已经安装了以下依赖库:
pip install numpy opencv-python matplotlib
- 加载并预处理图像
我们将使用一张带有噪声的图像作为示例。你可以从网上下载一张图片,或者使用 OpenCV 自带的测试图像。
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像(灰度图像)
image = cv2.imread('noisy_image.jpg', cv2.IMREAD_GRAYSCALE)
# 显示原始图像
plt.figure(figsize=(8, 6))
plt.imshow(image, cmap='gray')
plt.title('原始图像')
plt.axis('off')
plt.show()
- 执行傅里叶变换
使用 np.fft.fft2 函数对图像进行二维傅里叶变换,将图像从空间域转换为频率域。
# 执行傅里叶变换
f_transform = np.fft.fft2(image)
# 将频率分量移动到图像中心(shift)
f_transform_shifted = np.fft.fftshift(f_transform)
# 计算频谱图(取对数,便于显示)
magnitude_spectrum = 20 * np.log(np.abs(f_transform_shifted))
# 显示频谱图
plt.figure(figsize=(8, 6))
plt.imshow(magnitude_spectrum, cmap='gray')
plt.title('频谱图')
plt.axis('off')
plt.show()
- 创建低通滤波器
为了去除图像中的高频噪声,我们可以创建一个低通滤波器,只保留低频分量。
# 创建低通滤波器(圆形掩膜)
rows, cols = image.shape
crow, ccol = rows // 2, cols // 2 # 中心点
mask = np.zeros((rows, cols), np.uint8)
r = 50 # 滤波器半径
cv2.circle(mask, (ccol, crow), r, 1, -1)
# 显示低通滤波器
plt.figure(figsize=(8, 6))
plt.imshow(mask, cmap='gray')
plt.title('低通滤波器')
plt.axis('off')
plt.show()
# 应用低通滤波器
f_transform_filtered = f_transform_shifted * mask
# 计算滤波后的频谱图
magnitude_spectrum_filtered = 20 * np.log(np.abs(f_transform_filtered) + 1e-6)
# 显示滤波后的频谱图
plt.figure(figsize=(8, 6))
plt.imshow(magnitude_spectrum_filtered, cmap='gray')
plt.title('滤波后的频谱图')
plt.axis('off')
plt.show()
- 执行逆傅里叶变换
使用 np.fft.ifft2 函数将滤波后的频率域图像转换回空间域,得到去噪后的图像。
# 执行逆傅里叶变换
f_ishift = np.fft.ifftshift(f_transform_filtered)
img_back = np.fft.ifft2(f_ishift)
img_back = np.abs(img_back)
# 显示去噪后的图像
plt.figure(figsize=(8, 6))
plt.imshow(img_back, cmap='gray')
plt.title('去噪后的图像')
plt.axis('off')
plt.show()
- 边缘检测
除了去噪,我们还可以利用傅里叶变换进行边缘检测。通过创建高通滤波器,只保留图像中的高频分量,从而突出边缘信息。
# 创建高通滤波器(反向圆形掩膜)
mask_highpass = 1 - mask
# 应用高通滤波器
f_transform_highpass = f_transform_shifted * mask_highpass
# 执行逆傅里叶变换
f_ishift_highpass = np.fft.ifftshift(f_transform_highpass)
img_edge = np.fft.ifft2(f_ishift_highpass)
img_edge = np.abs(img_edge)
# 显示边缘检测结果
plt.figure(figsize=(8, 6))
plt.imshow(img_edge, cmap='gray')
plt.title('边缘检测结果')
plt.axis('off')
plt.show()
关键点解析
- 傅里叶变换:通过 np.fft.fft2 对图像进行二维傅里叶变换,将图像从空间域转换为频率域。np.fft.fftshift 用于将频率分量移动到图像中心,便于观察和处理。
- 频谱图:频谱图展示了图像中不同频率分量的分布情况。低频分量集中在图像中心,高频分量分布在图像边缘。通过观察频谱图,我们可以了解图像的频率特性。
- 低通滤波器:低通滤波器只保留低频分量,去除高频噪声。我们可以通过创建一个圆形掩膜来实现低通滤波器,并将其应用于傅里叶变换后的频率域图像。
- 逆傅里叶变换:通过 np.fft.ifft2 将滤波后的频率域图像转换回空间域,得到去噪后的图像。逆傅里叶变换的结果是一个复数矩阵,我们需要取其绝对值来获得最终的图像。
- 高通滤波器:高通滤波器只保留高频分量,突出图像中的边缘信息。我们可以通过创建一个反向圆形掩膜来实现高通滤波器,并将其应用于傅里叶变换后的频率域图像。
更多扩展
- 自适应滤波器:除了固定的圆形滤波器,你还可以尝试实现自适应滤波器,根据图像的不同区域动态调整滤波器的参数,以获得更好的去噪效果。
- 多尺度分析:结合小波变换(Wavelet Transform),可以在多个尺度上分析图像的频率特性,进一步提升图像处理的效果。
- 图像配准:在医学图像处理中,傅里叶变换常用于图像配准。通过比较两幅图像的频谱图,可以找到它们之间的旋转、缩放和平移关系,从而实现图像的精确对齐。
- 图像重建:在一些应用中,傅里叶变换还可以用于图像重建。例如,在 CT 图像重建中,傅里叶变换可以帮助我们从投影数据中恢复出完整的三维图像。
总结与应用
通过这个简单的图像去噪与边缘检测案例,我们可以看到傅里叶变换在计算机视觉中的强大功能。它不仅可以帮助我们从频域的角度理解图像的特性,还能通过滤波等操作实现图像的去噪、边缘检测等效果。傅里叶变换是图像处理中非常重要的一项技术,广泛应用于图像滤波、去噪、压缩、配准等领域。
热门推荐
生物记录技术的进步有助于确定捕食者微妙的能量收支
大枣上火还是降火?医生给出专业解答
牙釉质发育不良怎么办?四种实用解决方案
银行行号是什么意思
玫瑰精油的功效与用法
机械加工企业的精益生产转型之路
禁忌清单:五种甜品高糖食物,糖尿病患者需谨慎!
如何在云存储中保护个人隐私
独行户外攻略:轻量化装备选择与实战技巧分享
项目管理原则有哪些?如何有效应用这些原则来提升项目成功率?
15岁以下人群糖尿病发病率近4倍增长,新版防治指南推出
考研调剂信息获取指南及医学生复试准备攻略
生花生一天可以吃多少合适
“马王堆帛书的整理工作是没有止境的”——谈《长沙马王堆汉墓简帛集成》修订本
王氏家风:王僧虔《太子舍人帖》及其父与子经典书法作品赏析
【如何选购灯带】灯带什么颜色好看?灯带选购技巧全攻略
无主灯吊顶什么样?
洛克希德·马丁与通用动力联手制造固体火箭发动机
在学校受到惩罚的学生更容易患焦虑症和抑郁症
探讨网红现象:影响力、挑战与社会文化的多重面向
小孩不睡觉失眠怎么办?超实用6招解决儿童睡眠问题
BPO服务外包公司的全面解析:优势、挑战与未来趋势
如何处理受凉引起的腿部麻木和冰凉感
查耳朵听力需要做什么检查
陈良玲,穿旗袍的美女拍卖师,不寻常的职业发展之路
《菜根谭》:息心则见性,意净则心清
羊肉汤的功效与作用:一碗下肚,暖身更暖心!
0.99万可全款提车!这些比老头乐还便宜的“神车”,都是谁在买?
创新防伪科技赋能新消费,动码印章重塑品牌信用生态
如何通过继任计划提升企业人才储备与管理效率?