数字图像处理(3)——频域图像增强

🔥博客主页:是dream

🚀系列专栏:深度学习环境搭建、环境配置问题解决、自然语言处理、语音信号处理、项目开发

💘每日语录:贤才,难进易出;庸才,易进易初出;奴才,易进难出。

🎉感谢大家点赞👍收藏⭐指正✍️

 

 

一、实验内容

(1)傅里叶变换

        实验内容:分别使用OpenCV和Numpy工具包中的函数进行傅里叶变换,要求显示图像移中后的幅值谱和相位谱,以及重构后的图像。结果展示部分应包含原图、幅值谱、相位谱、重构图像。

(2)图像加噪和频域滤波

        实验内容:先给图像添加高斯噪声(0均值,0.1方差),再使用理想低通滤波器对图像进行低通平滑滤波,分析不同截止频率的滤波性能。结果展示部分应包括原图、噪声图、频域噪声图幅值谱、滤波后幅值谱、滤波后相位谱、重构图像等。

二、实验环境

        PaddlePaddle 2.3.2,Python==3.7,Numpy,Cv2,Matplotlib,RAM 8GB

三、实验过程

(1)傅里叶变换思路

        首先添加高斯噪声到原始图像。可以使用均值为0和方差为0.1的高斯噪声。进行傅里叶变换,然后计算频域幅值谱和相位谱。设计不同截止频率的理想低通滤波器。可以尝试不同的截止频率值,如r1、r2、r3等。对频域图像进行滤波,将低频部分保留,高频部分丢弃,以实现低通滤波。计算滤波后的频域幅值谱。进行傅里叶逆变换,以重构滤波后的图像。显示一组图像,包括原始图像、噪声图像、频域噪声图幅值谱、不同截止频率下的滤波后幅值谱、滤波后相位谱、重构图像。

        代码实现如下:

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties

# 1. 读取图像
img = cv.imread('./work/img/paopao.jpg', 0)

# 2. 傅里叶变换
# 2.1 正变换
f_transform = np.fft.fft2(img)

# 2.2 频谱中心化
f_transform_shifted = np.fft.fftshift(f_transform)

# 2.3 计算频谱和相位谱
# 直角坐标转换为极坐标: cv.cartToPolar()函数
magnitude_spectrum, phase_spectrum = cv.cartToPolar(f_transform_shifted.real, f_transform_shifted.imag)

# 3. 傅里叶逆变换
# 3.1 反变换
f_transform_unshifted = np.fft.ifftshift(f_transform_shifted)
reconstructed_image = np.fft.ifft2(f_transform_unshifted)

# 3.2 计算灰度值
reconstructed_image = np.abs(reconstructed_image).astype(np.uint8)

# 4. 图像显示
font = FontProperties(fname="SimHei.ttf")  # 使用系统中的SimHei字体

plt.subplot(2, 3, 1), plt.imshow(img, cmap='gray')
plt.title('原始图像', fontproperties=font)

plt.subplot(2, 3, 2), plt.imshow(np.log(magnitude_spectrum), cmap='gray')
plt.title('幅值谱', fontproperties=font)

plt.subplot(2, 3, 3), plt.imshow(phase_spectrum, cmap='gray')
plt.title('相位谱', fontproperties=font)

plt.subplot(2, 3, 4), plt.imshow(reconstructed_image, cmap='gray')
plt.title('重构图像', fontproperties=font)

plt.show()

        实验结果: 

(2)图像加噪和频域滤波思路

        首先,读取原始图像,然后添加高斯噪声以模拟实际图像的噪声情况。接下来,进行傅里叶变换,将图像转换到频域,分析其幅值谱和相位谱。然后,设计理想低通滤波器,并应用不同截止频率进行滤波,以比较滤波性能。最后,进行傅里叶逆变换以重构图像。实验结果以一组图像形式呈现,包括原始图像、噪声图、频域噪声图幅值谱、不同截止频率下的滤波后幅值谱、滤波后相位谱以及重构图像,以清晰展示频域滤波在去除噪声和恢复图像方面的效果。

        代码实现:

import cv2
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname="SimHei.ttf")
# 1. 读取图像
img = cv2.imread('./work/img/paopao.jpg',0)

# 2. 添加高斯噪声
def addGaussianNoise(image, mean=0, var=0.1):
    row, col = image.shape
    sigma = var ** 0.5
    gauss = np.random.normal(mean, sigma, (row, col))
    noisy = image + gauss
    noisy = np.clip(noisy, 0, 255)
    noisy = noisy.astype(np.uint8)
    return noisy

img_noisy = addGaussianNoise(img)

# 3. 傅里叶变换
f_transform = np.fft.fft2(img_noisy)
fshift = np.fft.fftshift(f_transform)

# 4. 计算幅值谱
magnitude_spectrum0 = 20 * np.log(1 + np.abs(fshift))

# 5. 理想低通滤波
r = 20  # 截止频率的设置
[m, n] = fshift.shape
H = np.zeros((m, n), dtype=complex)  # 滤波核
for i in range(m):
    for j in range(n):
        d = np.sqrt((i - m/2)**2 + (j - n/2)**2)
        if d < r:
            H[i, j] = 1

G = fshift * H  # 理想低通滤波
magnitude_spectrum1 = 20 * np.log(1 + np.abs(G))

# 6. 傅里叶逆变换
f1 = np.fft.ifftshift(G)
img_reconstructed = np.abs(np.fft.ifft2(f1)).astype(np.uint8)

# 7. 图像显示
plt.subplot(2, 3, 1), plt.imshow(img, cmap='gray')
plt.title('原始图像', fontproperties=font)

plt.subplot(2, 3, 2), plt.imshow(img_noisy, cmap='gray')
plt.title('噪声', fontproperties=font)

plt.subplot(2, 3, 3), plt.imshow(magnitude_spectrum0, cmap='gray')
plt.title('频域噪声图', fontproperties=font)

plt.subplot(2, 3, 4), plt.imshow(magnitude_spectrum1, cmap='gray')
plt.title('滤波后的幅值谱', fontproperties=font)

plt.subplot(2, 3, 5), plt.imshow(np.angle(fshift), cmap='gray')
plt.title('频谱(有噪声)', fontproperties=font)

plt.subplot(2, 3, 6), plt.imshow(img_reconstructed, cmap='gray')
plt.title('最终图像', fontproperties=font)

plt.show()

        实验结果: 

四、实验心得 

        在本次实验中,首先读取一张原始图像并添加高斯噪声,以模拟实际噪声情况。然后,进行了傅里叶变换,计算了频域的幅值谱和相位谱。接下来,设计不同截止频率的理想低通滤波器,以控制滤波的效果,并对频域图像进行滤波,保留了低频部分,丢弃高频部分,实现低通滤波。尝试不同的截止频率值以观察滤波性能的变化。然后,计算滤波后的频域幅值谱。最后,进行傅里叶逆变换以重构滤波后的图像,并将一组图像显示出来,包括原始图像、噪声图像、频域噪声图幅值谱、不同截止频率下的滤波后幅值谱、滤波后相位谱、重构图像。

        然后就是如何给图像添加高斯噪声,这是一个常见的图像处理问题。接着使用傅里叶变换技术将图像从空间域转换到频域,以便进行频域滤波操作。通过理想低通滤波器,能够控制截止频率,从而实现不同程度的频域平滑滤波。这对于去除高频噪声或细节以及实现图像平滑非常有用。通过调整截止频率,可以观察到不同滤波效果,这对于理解滤波器设计的重要性非常有帮助。此外,接着就是进行傅里叶逆变换,将滤波后的频域图像恢复到空间域,得到重构图像。这样可以比较原始图像和滤波后的图像,从而评估滤波的效果。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/285425.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

区块链复习

文章目录 考试重点哈希碰撞哈希函数的应用哈希算法对称加密密钥解决方法 椭圆曲线加密算法数字签名国密算法第一章第二章比特币比特币公钥 区块比特币的信息查询去中心化与分布式BIP治理结构 第三章 比特币区块结构头哈希值的作用&#xff1a;防篡改自然分叉&#xff1a; 交易数…

MySQL数据库学习一

1 什么是数据库的事务&#xff1f; 1.1 事务的典型场景 在项目里面&#xff0c;什么地方会开启事务&#xff0c;或者配置了事务&#xff1f;无论是在方法上加注解&#xff0c;还 是配置切面。 <tx:advice id"txAdvice" transaction-manager"transactionMa…

CodeWave 3.4版本新特性AI智能助手功能的革新与实践

目录 1 前言2 CodeWave 3.4版本&#xff1a;AI智能助手功能的新特性2.1 逻辑生成2.2 逻辑解读 3 CodeWave提供了全方位的逻辑组件4 AI智能助手功能的实践案例4.1 生成逻辑的实践4.2 解读逻辑的实践4.3 CodeWave的解读描述和逻辑的对比 5 结语 1 前言 在数字化时代&#xff0c;…

【ModelScope】从入门到进阶

计算机视觉任务 任务&#xff08;Task&#xff09;中文任务&#xff08;Task&#xff09;英文任务说明单标签图像分类image-classification对图像中的不同特征根据类别进行区分通用图像分割image-segmentation识别图像主体与图像背景进行分离文字检测ocr-detection将图像中的文…

Ansible自动化运维(一)简介及部署、清单

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

python设计模式:模板方法模式

更多Python学习内容&#xff1a;ipengtao.com 软件设计和编程中&#xff0c;设计模式是一种有助于解决常见问题的强大工具。其中之一是"模板方法模式"&#xff0c;它是一种行为型设计模式&#xff0c;允许你定义一个算法的骨架&#xff0c;但将一些步骤的具体实现延迟…

微功遥测终端机RTU:守护城市生命线的智能卫士

在城市的繁华背后&#xff0c;隐藏着一套高效运转的“生命线”——排水系统。而在这条生命线上&#xff0c;微功遥测终端机RTU(MGTR-W4131U)发挥着不可或缺的作用&#xff0c;为城市的正常运转提供了坚实保障。 微功遥测终端机RTU(MGTR-W4131U)&#xff0c;顾名思义&#xff0…

Redis双写一致性

文章目录 Redis双写一致性1. 延迟双删&#xff08;有脏数据风险&#xff09;2. 异步通知&#xff08;保证数据最终一致性&#xff09;3. 分布式锁&#xff08;数据的强一致&#xff0c;性能低&#xff09; Redis双写一致性 当修改了数据库的数据也要同时更新缓存的数据&#xf…

云计算:OpenStack 分布式架构添加NFS存储(单控制节点与多计算节点)

目录 一、实验 1.环境 2.安装并配置NFS节点 3.安装并配置存储节点storage02 4.使用NFS存储 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部署compute01计算节点1192.168.204.211 已部署compute02计算节点2192.168.204.212已部…

【AIGC-图片生成视频系列-5】I2V-Adapter:一种用于视频扩散模型的通用图像生成视频适配器

目录 一. 项目与贡献概述 二. 方法详解 a. 整体框架图 b. 帧相似性先验 三. 一般化图像生成动画结果 四. 基于个性化 T2I 模型的动画结果 五. 结合ControlNet动画结果 六. 项目论文和代码 七. 个人思考与总结 在快速发展的数字内容生成领域&#xff0c;焦点已从文本到…

[DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]

文章目录 概要I Introduction小结 概要 提出的架构&#xff0c;双注意力U-Net与特征融合&#xff08;DAU-FI Net&#xff09;&#xff0c;解决了语义分割中的挑战&#xff0c;特别是在多类不平衡数据集上&#xff0c;这些数据集具有有限的样本。DAU-FI Net 整合了多尺度空间-通…

数据流的中位数

题目链接 数据流的中位数 题目描述 注意点 在调用 findMedian 之前&#xff0c;数据结构中至少有一个元素如果列表的大小是偶数&#xff0c;则没有中间值&#xff0c;中位数是两个中间值的平均值 解答思路 使用两个优先队列存储数据流&#xff0c;其中一个优先队列队首为最…

webrtc中的接口代理框架

文章目录 接口代理框架Proxy体系类结构导出接口 webrtc的实际运用PeerConnectionFactoyPeerConnection使用 接口代理框架 webrtc体系庞大&#xff0c;模块化极好&#xff0c;大多数模块都可以独立使用。模块提供接口&#xff0c;外部代码通过接口来使用模块功能。 在webrtc中通…

面向对象基础-析构函数-this-static-const

析构函数 析构函数是与构造函数对立的函数。 构造函数 析构函数 创建对象时手动调用 当对象销毁时&#xff0c;自动调用 函数名称与类名相同 函数名称是~类名 构造函数可以重载 析构函数没有参数&#xff0c;不能重载 用于创建对象时并初始化 用于销毁对象时释放资源 …

webRTC实时通信demo

参考文档&#xff1a; https://www.jianshu.com/p/f439ce5cc0be https://www.w3cschool.cn/socket demo流程示意图&#xff08;用户A向用户B推送视频&#xff09;&#xff1a; #mermaid-svg-0KZaDQ5DBl28zjmZ {font-family:"trebuchet ms",verdana,arial,sans-seri…

影视后期:PR 调色处理,灰片还原,校色偏色素材

灰片还原 确定拍摄灰片的相机型号品牌官网下载专用log文件LUT-浏览-导入slog3分析亮部波形-增加画面对比分析矢量示波器-提高整体饱和 校正LUT可以将前期拍摄的log色彩模式的视频转换为成709色彩模式&#xff0c;即将灰度视频转换为正常效果(灰片还原) 各个相机有对应的校正L…

链路层、网络层、传输层、应用层长度

参考&#xff1a;链路层、网络层、传输层、应用层长度 链接&#xff1a;https://blog.csdn.net/qq_41658597/article/details/120683870 目录 1、概述2、TCP、UDP数据包最大值的确定3、TCP、UDP数据包最小值的确定4、实际应用IP层 1、概述 首先要看TCP/IP协议&#xff0c;涉及到…

PyTorch中常用的工具(4)Visdom

文章目录 前言3.2 Visdom 前言 在训练神经网络的过程中需要用到很多的工具&#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块&#xff0c;合理使用这些工具可以极大地提高编程效率。 由于内容较多&#xff0c;本文分成了五篇文…

李宏毅机器学习第二十三周周报 Flow-based model

文章目录 week 23 Flow-based model摘要Abstract一、李宏毅机器学习1.引言2.数学背景2.1Jacobian2.2Determinant2.3Change of Variable Theorem 3.Flow-based Model4.GLOW 二、文献阅读1. 题目2. abstract3. 网络架构3.1 change of variable formula3.2 Coupling layers3.3Prop…

http——https实现指南

第一部分&#xff1a;HTTPS安全证书简介 什么是HTTPS安全证书&#xff1f; 在网络通信中&#xff0c;HTTPS安全证书是一种由可信任的证书颁发机构&#xff08;CA&#xff09;签发的数字证书&#xff0c;用于保障网站与用户之间的数据传输安全。通过加密和身份验证&#xff0c…
最新文章