数字图像处理——实验一 离散傅里叶变换(代码)

2023-11-01

clc;
clear;
close all;
a=imread('Lena512C.bmp');
f=rgb2gray(a);  %原图为三维图像,转为二维图像

figure(1);
subplot(2,2,1);
imshow(f);
title('原图像');

H=fft2(f);  %傅里叶变换
Ha=abs(H);
subplot(2,2,2);
imshow(Ha,[]);
title('原始幅度谱');

Ha1=log(1+Ha);
subplot(2,2,3);
imshow(Ha1,[]);
title('对数变换幅度谱');

Ha1s=fftshift(Ha1);
subplot(2,2,4);
imshow(Ha1s,[]);
title('频谱中心化幅度谱');

figure(2);
subplot(1,3,1);
imshow(f);
title('原图像');

subplot(1,3,2);
imshow(Ha1s,[]);
title('幅度谱');

ang=angle(H);
subplot(1,3,3);
imshow(ang,[]);
title('相位谱');

figure(3);
lamp=real(ifft2(Ha));
subplot(1,3,1);
imshow(log(1+lamp),[]);
title('幅度谱重建结果');

Hang=complex(cos(ang),sin(ang));
lang=real(ifft2(Hang));
subplot(1,3,2);
imshow(lang,[]);
title('相位谱重建结果');

mix=complex(Ha.*cos(ang),Ha.*sin(ang));
lang1=real(ifft2(mix));
subplot(1,3,3);
imshow(lang1,[]);
title('幅度谱+相位谱重建结果');

figure(4);
subplot(3,2,1);
imshow(f);
title('原图像');

subplot(3,2,2);
imshow(Ha1s,[]);
title('幅度谱');

[M,N]=size(f);
cen_row=(M+1)/2;
cen_col=(N+1)/2;

D=30;
F=fftshift(fft2(f));
F1=F;
F2=F;
for i=1:M
    for j=1:N
        d=((i-cen_row)^2+(j-cen_col)^2)^0.5;
        if d>D
            F1(i,j)=0;
        end
        if d<D
            F2(i,j)=0;
         end
    end
end

f1=real(ifft2(ifftshift(F1)));
subplot(3,2,3);
imshow(f1,[0,255]);
title('低通滤波后图像');

subplot(3,2,4);
imshow(log(1+abs(F1)),[]);
title('低通滤波后幅度谱');

f2=real(ifft2(ifftshift(F2)));
subplot(3,2,5);
imshow(f2,[0,255]);
title('高通滤波后图像');

subplot(3,2,6);
imshow(log(1+abs(F2)),[]);
title('高通滤波后幅度谱');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数字图像处理——实验一 离散傅里叶变换(代码) 的相关文章

  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • MATLAB 图中轴标签与轴之间的距离

    我正在使用 MATLAB 绘制一些数据 我想调整轴标签与轴本身之间的距离 但是 只需向标签的 位置 属性添加一点即可使标签移出图窗窗口 是否有 保证金 属性或类似的东西 在上图中 我想增加数字和标签 Time s 之间的距离 同时自动扩展数
  • 作为动画的八度情节点

    我有以下八度脚本 TOTAL POINTS 100 figure 1 for i 1 TOTAL POINTS randX rand 1 randY rand 1 scatter randX randY hold on endfor 当我运
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • Matlab 一个图上有多个图例 2014b

    我想在一个地块上有多个传说 该解决方案在 2014b 版本之前完美运行 我试图弄清楚如何使用手柄优雅地制作它 但到目前为止还没有成功 欢迎任何想法 2013b 的示例 x 1 50 y1 sin x 2 y2 cos x 2 f figur
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 如何正确从表中删除 NaN 值

    在 Matlab 中阅读 Excel 电子表格后 不幸的是 我的结果表中包含了 NaN 例如这个 Excel 表格 将产生此表 其中出现额外的 NaN 列 我尝试使用以下代码片段删除 NaN measurementCells readtab
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • 将 Matlab 数组移植到 C/C++

    我正在将 matlab 程序移植到 C C 我有几个问题 但最重要的问题之一是 Matlab 将任何维度的数组都视为相同 假设我们有一个这样的函数 function result f A B C result A 2 B C A B and
  • 在 MATLAB 中绘图后恢复轴

    从文本文件绘制多种方法的输出后 未显示轴的右侧和上侧 我需要拥有它们并将它们加粗 就像当前的轴一样 绘制的数据来自存储每种方法数据的文件 每个数据文件都是一个 256x2 文件 包含 0 1 之间的值 第一列是精度 第二列是召回率 figu
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到

随机推荐

  • 11尺寸长宽 iphone_使用Matlab测量图像目标尺寸

    在传统的数字图像处理当中 边缘检测与形态学为两门非常重要的技术 在笔者的第一篇文章中已经重点介绍了各种边缘检测算子 因此这次笔者将结合一些较为简单的形态学算法 使用Matlab为大家介绍一个很有意思的测量目标尺寸的小项目 效果如下 图1 效
  • 盘点了109个金融行业活动案例,找到了最常用的10种

    电商平台有 双11 消费节 家居品牌有 家装节 随着近两年大众财富管理意识的成长 金融行业也诞生了 理财节 银行 券商同行们会在特定时间段内做主题活动 活动形式丰富且多元化 除了传统的积分 红包等 还有直播 盲盒 转盘抽奖等多种活动形式 事
  • SpringBoot项目后端开发逻辑梳理总结

    SpringBoot项目中包含Mapper层 Dao层 Entity层 model层 DTO层 VO层 Service层和Controller层 本篇以学生信息表增删改查为例 梳理各个层之间的逻辑关系 开发流程和注意事项 目录 一 各层之间
  • Upload-labs文件上传漏洞(MIME限制)——Pass02(详解)

    0 00 题目描述 本题要求对数据包中的MIME进行检查 0 01 MIME介绍 所以首先要搞清楚MIME在数据包的哪里 MIME是个什么 关于MIME 由百度百科可知 MIME Multipurpose Internet Mail Ext
  • 如何提高oracle数据库的性能,想提高Oracle性能,如何优化数据库?

    我们今天主要向大家介绍的是如何优化数据库来大提高Oracle性能 以下我们就介绍几个比较简单的步骤来大幅的提高Oracle性能 沃尔玛你很形象将其比喻成优化数据库的三板斧 数据库优化的讨论可以说是一个永恒的主题 资深的Oracle优化人员通
  • chatgpt赋能python:如何放大Python运行出来的图

    如何放大Python运行出来的图 Python是一种流行的编程语言 广泛应用于数据科学 人工智能 机器学习等领域 在这些领域 数据图表是非常重要的 而将这些图表放大可以帮助我们更好地理解数据 发现规律和趋势 在Python中 matplot
  • vue-json-view 一款用于展示json的vue组件,支持大体积json文件快速解析渲染

    在线示例 开发背景 项目开发过程中遇到展示json的场景 且json文件体积过大 小则几百kb 也尝试了已经开源的部分组件 但由于节点过多 渲染速度过慢 无法使用 已有项目技术选型为vue 无法再使用react相关技术 所以考虑自己开发一款
  • 【数据结构】--栈--括号匹配

    在pop 那个地方卡了好一会 原来是NULL这个情况没有考虑 用栈实现 输入一行符号 以 结束 判断其中的括号是否匹配 括号包括 lt gt 例如 输入 Result as x lt lt gt gt right a b gt The 6
  • Cookie详细分析及JSP Cookie操作

    Http协议中Cookie详细介绍 Cookie简介 网络早期最大的问题之一是如何管理状态 即服务器无法知道两个请求是否来自同一个客户端 用户 当时最简单的方法是在请求时 在页面中插入一些参数 并在下一个请求中传回参数 这需要使用包含参数的
  • 计算机网络题库---选择题刷题训练(100多道精品)

    第一章 概述 1 下列四项内容中 不属于Internet 因特网 基本功能是 D A 电子邮件 B 文件传输 C 远程登录 D 实时监测控制 2 Internet是建立在 C 协议集上的国际互联网络 A IPX B NetBEUI C TC
  • RT-Thread:RW007-通讯速度

    目录 1 测量方法 2 硬件准备 3 软件准备 4 使用env配置工程 5 代码修改 下载测试下行速度 6 代码修改 下载测试上行速度 7 总结 1 测量方法 影响通讯速度原因 1 单片机运行速度 2 单片机和RW007通讯的速度 3 RW
  • 常用矩阵定义概念

    1 托普勒斯矩阵 Toeplitz matrix 一维情况下 行响亮不断的向右一定一格形成的循环矩阵 2 双块循环矩阵 doubly block circulant matrix 这是卷积核展开之后 加速与图像卷积过程 因为是两行两行一起循
  • Python爬虫编程实践--task01

    主要内容 HTTP基础 HTML基础 requests get的使用 API的使用 HTTP HTTP是一个客户端 用户 和服务器端 网站 之间进行请求和应答的标准 通过使用网页浏览器 网络爬虫或者其他工具 客户端可以向服务器上的指定端口
  • jersey实现web service接口+客户端调用

    jersey实现web service接口 客户端调用 jersey百度百科 Jersey是一个RESTFUL请求服务JAVA框架 与常规的JAVA编程使用的struts框架类似 它主要用于处理业务逻辑层 与Struts类似 它同样可以和h
  • 手机app登录显示服务器异常,手机app 连接云服务器异常

    手机app 连接云服务器异常 内容精选 换一换 通过内网连接云手机实例时 需要在租户VPC中创建一台弹性云服务器 作为连接云手机的跳板机器 若创建云手机服务器时未使用自定义网络 还需在云手机租户的VPC和服务器所在VPC之间建立对等连接 如
  • RSA算法的详细设计(C++)及不同优化策略的比较

    本篇文章总结了我对RSA算法的理解和设计 并在后文对优化运行效率的方法做了对比分析 一 RSA算法简介 密码学是研究如何隐密地传递信息的学科 它被认为是数学和计算机科学的分支 和信息论也密切相关 在很久之前的传统密码学中 使用的都是对称加密
  • DXLAM、ubuntu16、tf1.13、anaconda环境配置

    DXSLAM环境的点点滴滴 配置该代码环境有两种方法 方法一 利用docker 方法二 直接配置 配置流程 1 配置ORBSLAM2环境 1 1ORB SLAM2配置 1 2测试单目并处理RGBD的数据集 2 配置tf环境 2 1 配置an
  • Sqoop MySQL 8 迁移Hadoop 3 提示:master:9000/sqoop/base-house already exists

    今天尝试使用Sqoop 将MySQL 8 指定库表数据 迁移至Hadoop 3 提示如下错误 2023 03 01 14 52 20 547 ERROR tool ImportTool Import failed org apache ha
  • 李航-机器学习-感知机(perceptron)-原始形式

    机器学习 感知机 perceptron 感知机模型 感知机模型 感知机学习策略 感知机算法实现 代码实现 运行程序可得 运行程序 感知机模型 感知机是一种线性的 二类分类模型 可以将空间划分为正类和负类 是一种判别模型 输入为具体的实例 输
  • 数字图像处理——实验一 离散傅里叶变换(代码)

    clc clear close all a imread Lena512C bmp f rgb2gray a 原图为三维图像 转为二维图像 figure 1 subplot 2 2 1 imshow f title 原图像 H fft2 f