边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取

第一部分 图像的傅立叶变换

一、 实验目的

1.了解图像变换的意义和手段;

2. 熟悉傅里叶变换的基本性质;

3. 熟练掌握FFT的方法及应用;

4. 通过实验了解二维频谱的分布特点;

5. 通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。

二、 实验原理

1.应用傅立叶变换进行图像处理

傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2.傅立叶(Fourier)变换的定义

对于二维信号,二维Fourier变换定义为:

二维离散傅立叶变换为:

三、 实验步骤

1.打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;

2.利用MatLab工具箱中的函数编制FFT频谱显示的函数;

3. a)调入、显示三张不同的图像;

b)对这三幅图像做FFT并利用自编的函数显示其频谱;

c)讨论不同的图像内容与FFT频谱之间的对应关系。

4.记录和整理实验报告。

四、 实验仪器

1计算机, MATLAB软件;

3移动式存储器(软盘、U盘等)。

4记录用的笔、纸。

五、 实验结果及程序

1.程序

I1=imread('F:MATLAB学习实验pictureLENA.TIF'); %读入原图像文件

I2=imread('F:MATLAB学习实验picturecell.tif'); %读入原图像文件

I3=imread('cameraman.tif'); %读入原图像文件

subplot(3,2,1);imshow(I1); %显示原图像

fftI1=fft2(I1); %二维离散傅立叶变换

sfftI1=fftshift(fftI1); %直流分量移到频谱中心

RR1=real(sfftI1); %取傅立叶变换的实部

II1=imag(sfftI1); %取傅立叶变换的虚部

A1=sqrt(RR1.^2+II1.^2); %计算频谱幅值

A1=(A1-min(min(A1)))/(max(max(A1))-min(min(A1)))*225;%归一化

subplot(3,2,2);imshow(A1); %显示原图像的频谱

subplot(3,2,3);imshow(I2); %显示原图像

fftI2=fft2(I2); %二维离散傅立叶变换

sfftI2=fftshift(fftI2); %直流分量移到频谱中心

RR2=real(sfftI2); %取傅立叶变换的实部

II2=imag(sfftI2); %取傅立叶变换的虚部

A2=sqrt(RR2.^2+II2.^2); %计算频谱幅值

A2=(A2-min(min(A2)))/(max(max(A2))-min(min(A2)))*225;%归一化

subplot(3,2,4);imshow(A2); %显示原图像的频谱

subplot(3,2,5);imshow(I3); %显示原图像

fftI3=fft2(I3); %二维离散傅立叶变换

sfftI3=fftshift(fftI3); %直流分量移到频谱中心

RR3=real(sfftI3); %取傅立叶变换的实部

II3=imag(sfftI3); %取傅立叶变换的虚部

A3=sqrt(RR3.^2+II3.^2); %计算频谱幅值

A3=(A3-min(min(A3)))/(max(max(A3))-min(min(A3)))*225;%归一化

subplot(3,2,6);imshow(A3); %显示原图像的频谱

2.结果

六、 思考题

1.傅里叶变换有哪些重要的性质?

线性、时频对偶性、展缩性、时移性、时域和频域的微分性等。

第二部分 图像边缘提取

一。 实验目的:

掌握图像边缘提取的常用算子的特点和程序实现。

二。实验原理:

边缘就是图像中包含的对象的边界所对应的位置。物体的边缘以图像局部特性的不连续性的形式出现的,例如,灰度值的突变,颜色的突变,纹理结构的突变等。从本质上说,边缘就意味着一个区域的终结和另外一个区域的开始。图像边缘信息在图像分析和人的视觉中十分重要,是图像识别中提取图像特征的一个重要属性。

边缘检测(edge

detection)在图像处理和对象识别领域中都是一个重要的基本问题。由于边缘的灰度不连续性,可以使用求导数的方法检测到。最早的边缘检测方法都是基于像素的数值导数的运算。现在使用的边缘检测算法大致可以归纳为两类:梯度(gradient)算子和拉普拉斯(Laplacian)算子。

三。实验内容:

编制一个通用的边缘提取函数。通过输入不同的参数,能够实现Sobel算子、Prewitt算子、Roberts算子、Laplace算子和Canny边缘检测,并比较不同算子处理后的边缘图像的特点。(实验图像任选)

MATLAB图像处理工具箱提供的edge函数可以实现检测边缘的功能,详细的使用语法可以在MATLAB命令窗口键入”help

edge.m”获得帮助。该函数只能应用于灰度图像,其基本原理就是识别图像中灰度值变化较大的像素点。

四。 实验步骤:

a、 读入图像

b、对图像依次进行Sobel算子,Prewitt算子,Roberts算子,Laplace算子和Canny算子运算,比较处理结果。

五。 实验仪器

1计算机;

2 MATLAB软件;

3移动式存储器(软盘、U盘等)。

4记录用的笔、纸。

六、 实验结果及程序

1.程序

I=imread('cameraman.tif');

subplot(2,3,1);

imshow(I);title('(a)原始图像');

subplot(2,3,2);

I1=edge(I,'sobel'); %Sobel算子边缘检测

imshow(I1);title('(b)Sobel算子');

subplot(2,3,3);

I2=edge(I,'prewitt'); %Prewitt算子边缘检测

imshow(I2);title('(c)Prewitt算子');

subplot(2,3,4);

I3=edge(I,'robert'); %Robert算子边缘检测

imshow(I3);title('(d)Robert算子');

subplot(2,3,5);

I4=edge(I,'log'); %Laplace算子边缘检测

imshow(I4);title('(e)Laplace算子');

subplot(2,3,6);

I5=edge(I,'canny'); �nny算子边缘检测

imshow(I5);title('(f)Canny算子');

2.实验结果

3.实验结果分析

由于Robert s

算子是利用图像的两个对角线的相邻像素之差进行梯度幅值的检测,所以求得的是在差分点处梯度幅值的近似值,并且检测水平和垂直方向边缘的性能好于斜线方向的边缘,

检测精度比较高, 但容易丢失一部分边缘, 同时由于没经过图像平滑计算,因此不能抑制噪声,该算子对具有陡峭的低噪声图像响应最好。

Prewit t 算子和Sobel 算子都是对图像进行差分和滤波运算,仅在平滑部分的权值选择上有些差异,

因此两者均对噪声具有一定的抑制能力, 但这种抗噪能力是通过像素平均来实现的, 所以图像产生了一定的模糊, 而且还会检测出一些伪边缘,

所以检测精度比较低, 该类算子比较适用于图像边缘灰度值比较尖锐,且图像噪声比较小的情况。

Laplace算子首先通过高斯函数对图像进行平滑处理, 因此对噪声的抑制作用比较明显, 但同时也可能将原有的边缘也平滑了,

造成某些边缘无法检测到,。此外高斯分布因子σ的选择对图像边缘检测效果有较大的影响。σ越大, 检测到的图像细节越丰富, 但抗噪能力下降,

从而出现伪边缘, 反之则抗噪能力提高, 但边缘检测精度下降, 易丢失许多真边缘, 因此, 对于不同图像应选择不同参数。

Canny 算子也采用高斯函数对图像进行平滑处理, 因此具有较强的去噪能力, 但同样存在容易平滑掉一些边缘信息,

其后所采用的一阶微分算子的方向性较Laplace算子要好,因此边缘定位精度较高。该算子与其它边缘检测算子的不同之处在于, 它使用2

种不同的阈值分别检测强边缘和弱边缘, 并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中,

因此这种方法较其它方法而言不容易被噪声“填充”,更容易检查出真正的弱边缘。通过实验结果可以看出,该算子在上述几种边缘检测算子当中效果最好。

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

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

相关文章

杭州南江机器人现在是否量产_传亚马逊正开发家庭机器人,高约1米可移动

点击右上角关注我,成为科技圈最靓的仔!智东西(公众号:zhidxcom)编 | 王颖 导语:据外媒报道,亚马逊计划今年推出一款可移动家庭机器人,高度约为1米,可通过语音控制。智东西7月15日消息&#xff0…

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题

简介: 云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网络边缘和设备,从而带来云性能成本的降低,也在这波浪潮之下得到快速发展。 作者 | OpenYurt 社区 云…

OS2ATC 2021:开源协作,和而不同

12月26日由中科院软件所主办,清华大学、北京大学以及鉴释科技承办的第九届开源操作系统年度技术会议(OS2ATC)正式拉开序幕,百余位重量嘉宾莅临现场,围绕大会主题“开源协作,和而不同”共同探讨操作系统开源…

ChaosBlade:从混沌工程实验工具到混沌工程平台

简介: ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,已加入到 CNCF Sandbox 中。起初包含面向多环境、多语言的混沌工程实验工具 chaosblade,到现在发展到面向多集群、多环境、多语言的混沌工程平台 chaosblade-box,平台支持…

python 按行写入_Python中将变量按行写入txt文本

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿

简介: RTS NetSDK是未来直播和通信一体化SDK的基石。在RTS NetSDK之上,加一个Multimedia Framework,以及QoS消息处理,就可以构成一个一体化SDK。这对于已经有自己的Framework的客户来说是个好消息,不需要为直播和通信分…

Forrester云原生开发者洞察白皮书,低代码概念缔造者又提出新的开发范式

简介: 云原生时代的到来为开发者群体带来了前所未有的机遇,让开发者可以更加专注业务价值创造与创新,并使得人人成为开发者成为现实。广大开发者如何转型成为云原生开发者?运维等专业人员在云原生时代如何避免边缘化的囧境&#x…

彻底理解内存泄漏,memory leak

作者 | 码农的荒岛求生来源 | 码农的荒岛求生内存申请就好比去停车场找停车位,找到停车位后你就可以把车停在这里。从这个类比看什么是内存泄漏呢?内存泄漏看上去是停车场的车辆只进不出导致最终找不到停车位,从程序员的角度看就是内存只申请…

动态后台获取_后台管理系统的权限以及vue处理权限的思路

一般来说,在(后台)管理系统(最早的企业级的项目和网站的后台管理系统现在大部分人都叫后台管理系统)中才会有权限之说。权限分为功能级权限和数据级权限。这篇文章主要谈论功能级权限。一、名词解释:权限的…

php文件遍历类,PHP 遍历文件夹及文件类及处理类

FindFile.class.php用于遍历目录文件/** 遍历文件夹及文件类* Date: 2013-03-21* Author: fdipzone* Ver: 1.0*/class FindFile{public $files array(); // 存储遍历的文件protected $maxdepth; // 搜寻深度,0表示没有限制/* 遍历文件及文件夹* param String $spath 文件夹路径…

ARMv9刷屏 —— 号称十年最大变革,Realm机密计算技术有什么亮点?

简介: 让我们看下ARMv9机密计算相关的新特性Realm。 ARMv9的新闻刷屏了。ARMv9号称十年以来最重大变革,因此让我们看下ARMv9中机密计算相关的新特性Realm。(注:本文是对Introducing the Confidential Compute Architecture的部分翻…

JVM性能提升50%,聊一聊背后的秘密武器Alibaba Dragonwell

简介: 你要知道的关于Alibaba Dragonwell一些重要优化措施。 今年四月五日,阿里云开放了新一代ECS实例的邀测[1],Alibaba Dragonwell也在新ECS上进行了极致的优化。相比于之前的dragonwell_11.0.8.3版本,即将发布的dragonwell_11.…

34 年了,“杀”不死的 Perl!

作者 | 祝涛 出品 | CSDN(ID:CSDNnews)2021年12月18日,Perl迎来了自己34岁的生日。当程序员聊到Perl会聊些什么呢?在各大平台搜索Perl时,你会发现大家对Perl的态度呈现出一种两级分化的状态&#xff…

python的stack用法_Python numpy.stack函数方法的使用

numpy.stacknumpy.stack(arrays, axis0, outNone) [source]沿着新的轴连接数组序列。axis参数在结果的维度中指定新轴的索引。例如,如果axis0,它将是第一个维度;如果axis-1,它将是最后一个维度。1.10.0版中的新功能。参数 :a…

“不服跑个分?” 是噱头还是实力?

简介: Linux内核社区常常以跑分软件得分,来评价一个优化补丁的价值。让软件跑高分,就是实力的体现! 一、背景:性能之战 “不服跑个分”已经沦为手机行业的调侃用语,但是实话实说,在操作系统领域…

Medusa 又一个 Shopify 的开源替代品!

作者 | Eason来源 | 程序员巴士Medusa是一个开源的headless商务引擎,具有速度快且可定制的优点。由于 Medusa 分为 3 个核心组件 - 公开的REST API headless商务部分、商店的前端以及admin面板 - 大家可以自由地整体使用该平台或者来适配设置电子商店。在本教程系列…

python围棋程序在屏幕上找棋盘_用C语言编程 在屏幕上显示围棋棋盘

展开全部--以怎么不用 MS VC++6 ??编C语言一般都用啊还有\xCD是C语言Ascii代码 表示一个图形用循环32313133353236313431303231363533e58685e5aeb931333264643133语句啊!等我一下 晚上写出来 贴…

coredump 瘦身风云

简介: minicoredump神也! 继上一篇非典型程序员青囊搞定内存泄露问题后,美美地睡了一觉。睡梦中,突然金光闪闪,万道光芒照进时光隧道,恍惚来到大唐神龙年间。青囊此时化身狄仁杰高级助理,陪同狄…

谁来拯救存量SGX1平台?又一个内核特性合并的血泪史

简介: 今天的故事主角,是一个被称为Flexible Launch Control的SGX平台特性。 前言 自从Intel内核开发人员Jarkko Sakkinen于2017年9月2日在intel-sgx-kernel-devlists.01.org邮件列表上发出v1版的SGX in-tree驱动以来,时间已经过去了3年多了…

DataWorks 功能实践速览

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 功能推荐:独享数据集成资源组 如上期数据同步解决方案介绍,数据集成的批数据同步任务运行时,需要占用一…