边缘指示函数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
种不同的阈值分别检测强边缘和弱边缘, 并且仅当弱边缘与强边缘相连时才将弱边缘包含在输出图像中,
因此这种方法较其它方法而言不容易被噪声“填充”,更容易检查出真正的弱边缘。通过实验结果可以看出,该算子在上述几种边缘检测算子当中效果最好。
边缘指示函数matlab,matlab图像处理——傅立叶变换边缘提取相关推荐
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?
https://www.douban.com/note/164400821/ 写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!! ...
- 【转】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?...
写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!!一.傅立叶变换的由来关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶 ...
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换
[纯技术帖]为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换来源: 陈诚--WECN的日志 写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,内容 ...
- 傅立叶变换的原理、意义以及如何用Matlab实现快速傅立叶变换
本帖最后由 xiaoliu 于 2011-7-28 21:00 编辑 一.傅立叶变换的由来 关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象 ...
- 为什么要进行傅立叶变换?如何用Matlab实现快速傅立叶变换?
http://blog.sina.com.cn/s/blog_9015f32301014jbp.html 写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在 ...
- QT实现图像处理-傅立叶变换、傅立叶反变换、平滑、锐化与模板匹配
From: http://www.cnblogs.com/qytan36/archive/2010/04/04/1704226.html 实验环境: 1,Linux操作系统 2,QT3编程开发环境 3 ...
- Python信号分析 | 连续信号的傅立叶变换
1.连续周期信号的傅立叶级数 由傅立叶级数的形式可以看出,其都属于积分形式,故在MATLAB中和Python中均可以用积分函数来实现求解. 例:Python中代码如下: ""&qu ...
- 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识
本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...
- hough变换连接边缘matlab,matlab图像处理hough变换程序执行问题
matlab图像处理hough变换程序执行问题0 pxkd82013.04.23浏览184次分享举报 程序如下: I= imread('D:\MATLAB7\fenkuai.bmp','bmp');% ...
最新文章
- 一片哗然!ICLR 2020被曝47%的审稿人没发过相关论文
- Origami – 用于 Quartz 的免费的交互设计框架
- 接入Tinker热修复和踩坑
- NumberUtils用法
- canva怎么拼接图片_搭配图片:短款外套+纱裙的冬季搭配,可爱又青春!|周二搭配...
- ASP.NET MVC5----了解我们使用的@HTML帮助类
- H5 FormData 表单数据对象详解 与 Json 对象相互转换
- 【书籍推荐】深入解析Windows操作系统(第4版)
- [kuangbin带你飞]专题一 简单搜索 - H - Pots
- 游戏音效是用什么软件做的?
- lintcode算法-3 983 · 棒球游戏
- 校园网如何更改ip地址
- 瑞斯康达串口-console接口线序和通用调试线改造图文教程
- 单片机程序配置成开漏输出_单片机的GPIO配置
- 7-45 实验8_2_推销员的便条 (100 分)
- Windows编程 从消息窗口到基本窗口 游戏循环窗口框架的简单实现
- Python面向对象基础练习——设计一个名为 MyRectangle 的矩形类来表示矩形
- 网卡VXLAN的offload技术介绍
- 倍增算法入门 超详细解答+LCA+RMQ(ST表)+例题剖析
- okhttp下载保存图片并更新图库
热门文章
- 国外数学奇才称:“平行线可相交”,到死未被认可,12年后被证实
- 《Nature》颠覆性发现!第四种热传递方式找到了
- 爱因斯坦和高中几何问题
- oracle9i 随机端口_修改 Oracle9i 8080端口问题
- Java 源程序的良好书写规范有哪些_使用Java作为程序语言时,好的命名规范有哪些...
- jquery添加div实现消息聊天框
- java中随机数Random和ThreadLocalRandom()用法与区别
- Unity3d LookAt参数说明
- 全民加速节:解读CDN的应用场景与产品价值
- 海纳威上云 构建数字化透明工厂