数字图像处理实验记录六(图像的傅里叶变换和频域处理)

前言:

一、基础知识

1,傅里叶变换是什么

傅里叶变换是一种线性积分变换,通俗来说,通过傅里叶变换就是把一段信号分解成若干个简谐波。
在这里插入图片描述
在这里插入图片描述

二、实验要求

在这里插入图片描述

1.产生一幅如图所示亮块图像f(x,y)(256×256 大小、暗处=0,亮处=255),对其进行FFT:
(1)同屏显示原图f 和FFT(f)的幅度谱图(提示:用二维傅里叶变换函数fft2,为避免傅里叶变换数据变化过大,显示其对数变换后结果log(1.001+abs(FFT(f))) ,用imshow或surf函数显示频谱);
(2)若令f1(x,y)=(-1)x+y f(x,y),重复以上过程,比较二者幅度谱的异同,简述理由;
(3)若将f (x,y)顺时针旋转45 度得到f2(x,y),试显示FFT(f2)的幅度谱,并与FFT(f)的幅度谱进行比较。(提示: 用imrotate函数对图像进行旋转);
2. 对一幅256×256 大小、256 级灰度的数字图像进行频域的理想低通、高通滤波滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。(提示:用二维傅里叶变换函数fft2,二维傅里叶逆变换函数ifft2,中心化函数fftshift,去中心化函数ifftshift。采用不同截断频率D0重复实验,观察结果)

三、实验记录

任务0:

产生一幅如图所示亮块图像f(x,y)(256×256 大小、暗处=0,亮处=255),对其进行FFT:

I = zeros(128,128);
for i = 1:128for j = 1:128if(i>=34&&i<=94&&j>60&&j<=68)I(i,j) = 255;elseI(i,j) = 0;endend
end

任务1:

对其进行FFT,同屏显示原图f 和FFT(f)的幅度谱图:

figure('NumberTitle','off','Name','任务一');
subplot(2,1,1);imshow(I);title('原图');
FFT = log(1.001+abs(fft2(I)));subplot(2,1,2);imshow(fft2(I));title('傅里叶变换后');

任务2:

若令f1(x,y)=(-1)x+y f(x,y),重复以上过程,比较二者幅度谱的异同:

figure('NumberTitle','off','Name','任务二');
I2 = I;
for i=1:128for j=1:128I2(i,j) = (-1)^(i+j)*I(i,j);end
end
subplot(2,2,1);imshow(I);title('原图');
subplot(2,2,2);imshow(fft2(I));title('傅里叶变换后');
subplot(2,2,3);imshow(I2);title('图2');
subplot(2,2,4);imshow(fft2(I2));title('傅里叶变换后');

任务3:

若将f (x,y)顺时针旋转45 度得到f2(x,y),试显示FFT(f2)的幅度谱:

figure('NumberTitle','off','Name','任务三');I3 = imrotate(I,-45,'bilinear');
subplot(2,2,1);imshow(I);title('原图');
subplot(2,2,2);imshow(fft2(I));title('傅里叶变换后');
subplot(2,2,3);imshow(I3);title('图3');
subplot(2,2,4);imshow(fft2(I3));title('傅里叶变换后');

任务4:

对一幅256×256 大小、256 级灰度的数字图像进行频域的理想低通、高通滤波滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图:

figure('NumberTitle','off','Name','任务四');
I = imread('stone.jpg');
I = rgb2gray(I);
I1 = filter_hz(I,30,0);
I2 = filter_hz(I,10,1);
subplot(2,2,1.5);imshow(I);title('原图');
subplot(2,2,3);imshow(I1);title('低通滤波结果');
subplot(2,2,4);imshow(I2);title('高通滤波结果');

四、结果展示

任务0:

在这里插入图片描述

任务1:

在这里插入图片描述

任务2:

在这里插入图片描述

任务3:

在这里插入图片描述

任务4:

在这里插入图片描述

五、反思总结与收获

已经学完了这门课了,考过了,不反思了。注意结果可能会错

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CISA、FBI、EPA 为水系统运营商提供网络安全指南

经过一番停顿后&#xff0c;美国联邦机构发布了指导意见&#xff0c;帮助供水和废水处理系统运营商更好地应对网络攻击&#xff0c;这是威胁行为者越来越多地针对该行业的重要一步。 该文件由环境保护局 (EPA)、联邦调查局 (FBI) 以及网络安全和基础设施安全局 (CISA) 共同编写…

USMART是什么?

一、USMART简介 USMART是一个串口调试组件&#xff0c;可以大大提高代码调试效率&#xff0c;为正点原子为STM32开发的类似linux中shell的调试工具。 一般开发者正常情况下&#xff0c;对单片机功能进行调试的过程大致为&#xff1a;下载——调试——修改——下载——调试——…

大模型是如何实现Function Call函数调用的?

▼最近直播超级多&#xff0c;预约保你有收获 近期直播&#xff1a;《Agent 企业级应用案例实战》 —1— 大模型如何实现函数调用&#xff1f; 大模型要实现精确的函数调用&#xff08;Function Call&#xff09;需要理解能力和逻辑能力&#xff0c;理解能力就是对用户的 Prom…

containerd中文翻译系列(十四)追踪

containerd 自 v1.6.0 起支持 OpenTelemetry 跟踪。 跟踪目前只针对 gRPC 调用。 从 containerd 守护进程发送跟踪结果 通过配置 io.containerd.tracing.processor.v1.otlp 插件。 containerd 守护进程可以将跟踪信息发送到指定的 OpenTelemetry 端点。 version 2[plugins.…

Modern C++ 内存篇1 - std::allocator VS pmr

大年三十所写&#xff0c;看到就点个赞吧&#xff01;祝读者们龙年大吉&#xff01;当然有问题欢迎评论指正。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. 前言 从今天起我们开始内存相关的话题&#xff0c;内存是个很大的话题&#xff0c;一时不…

sqli靶场完结篇!!!!

靶场&#xff0c;靶场&#xff0c;一个靶场打一天&#xff0c;又是和waf斗智斗勇的一天&#xff0c;waf我和你拼啦&#xff01;&#xff01; 31.多个)号 先是一套基本的判断 &#xff0c;发现是字符型&#xff0c;然后发现好像他什么都不过滤&#xff1f;于是开始poc 3213131…

Canvas笔记05:像素操作,可以对图像进行像素级别控制和处理

hello&#xff0c;我是贝格前端工场&#xff0c;最近在学习canvas&#xff0c;分享一些canvas的一些知识点笔记&#xff0c;本期分享canvas像素操作的知识&#xff0c;欢迎老铁们一同学习&#xff0c;欢迎关注&#xff0c;如有前端项目需要协助可私聊。 一、什么是像素操作 Ca…

在windows的控制台实现贪吃蛇小游戏

欢迎来到博主的文章 博主id&#xff1a;代码小豪 前言&#xff1a;看懂这篇文章需要具有C语言基础&#xff0c;还要对单链表具有一定的理解。如果你只是想要试玩这个游戏&#xff0c;可以直接在文章末尾找到源码 由于实现贪吃蛇需要调用Win32 API函数&#xff0c;这些函数我会…

[Java][算法 哈希]Day 01---LeetCode 热题 100---01~03

LeetCode 热题 100---01~03 ------->哈希 第一题 两数之和 思路 最直接的理解就是 找出两个数的和等于目标数 这两个数可以相同 但是不能是同一个数字&#xff08;从数组上理解就是内存上不是同一位置&#xff09; 解法一&#xff1a;暴力法 暴力解万物 按照需求 …

MATLAB知识点:使用逻辑值修改或删除矩阵元素

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章 3.4.4 逻辑运算 3.4.4.3 使用逻辑值修改或删…

【数据分享】1929-2023年全球站点的逐年平均风速(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…

使用Python进行数据的描述性分析,用少量的描述性指标来概括大量的原始数据

在进行数据分析时&#xff0c;当研究者得到的数据量很小时&#xff0c;可以通过直接观察原始数据来获得所有的信息。但是&#xff0c;当得到的数据量很大时&#xff0c;就必须借助各种描述性指标来完成对数据的描述工作。用少量的描述性指标来概括大量的原始数据&#xff0c;对…