基于MATLAB的数字图像边缘检测算子的实验对比研究
- 格式:pdf
- 大小:1.28 MB
- 文档页数:3
《图像处理中的数学方法》实验报告学生姓名:赵芳舟教师姓名:曾理学院:数学与统计学院专业:信息与计算科学学号:联系方式:梯度和拉普拉斯算子在图像边缘检测中的应用一、数学方法边缘检测最通用的方法是检测灰度值的不连续性,这种不连续性用一阶和二阶导数来检测。
1.(1)一阶导数:一阶导数即为梯度,对于平面上的图像来说,我们只需用到二维函数的梯度,即:,该向量的幅值:,为简化计算,省略上式平方根,得到近似值;或通过取绝对值来近似,得到:。
(2)二阶导数:二阶导数通常用拉普拉斯算子来计算,由二阶微分构成:2.边缘检测的基本思想:(1)寻找灰度的一阶导数的幅度大于某个指定阈值的位置;(2)寻找灰度的二阶导数有零交叉的位置。
3.几种方法简介(1)Sobel边缘检测器:以差分来代替一阶导数。
Sobel边缘检测器使用一个3×3邻域的行和列之间的离散差来计算梯度,其中,每行或每列的中心像素用2来加权,以提供平滑效果。
-1-21000121-101-202-101(2)Prewitt边缘检测器:使用下图所示模板来数字化地近似一阶导数。
与Sobel检测器相比,计算上简单一些,但产生的结果中噪声可能会稍微大一些。
-1-1-1000111-101-101-101(3)Roberts边缘检测器:使用下图所示模板来数字化地将一阶导数近似为相邻像素之间的差,它与前述检测器相比功能有限(非对称,且不能检测多种45°倍数的边缘)。
-10010-110(4)Laplace边缘检测器:二维函数的拉普拉斯是一个二阶的微分定义:0101-41010(八邻域)(5)LoG边缘检测器由于噪声点(灰度与周围点相差很大的像素点)对边缘检测有一定的影响,所以效果更好的是LoG算子,即Laplacian-Guass算子。
引入高斯函数来平滑噪声:该函数的Laplace算子:它把Guass平滑滤波器和Laplace锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测,所以效果比单用Laplace算子要更为平滑,效果更好。
基于matlab的牦牛图像边缘检测研究牦牛图像边缘检测是牦牛线性体型评定的基础。
为此,介绍了牦牛数字图像检测的步骤。
首先将RGB图像灰度化处理,而后对图像平滑降噪,再用高斯拉普拉斯算子对这一系列操作后的图像探测目标物体的边缘,检测出预想的目标图像。
结果表明,经过一系列的预处理以后,检测出的牦牛图像边缘明显,便于后续计算区域内的牦牛数量以及判断区域是否过度放牧等实际问题。
标签:图像处理;中值滤波;高斯拉普拉斯算子引言牦牛是高寒地区的特有牛种,不同类型的牦牛体型特征不同。
经长期的研究和实践发现,具备标准功能体型的牦牛市场好,销量高,经济收益高。
该题目的研究和实现可以直接利用直接应用于青藏高原牦牛的养殖,针对目前高原地区的传统老旧的皮尺测量体标的方式,通过人眼辨别能力去统计牦牛数量的过时方式等等,该算法的研究与应用可以实现自动化,智能化,数字化的管理。
具有重要的研究价值和应用意义。
基于牦牛的图像分割算法进行研究,可以提取出牦牛的整体轮廓,方便为后续的牦牛体型的三维图像的重建,饲养机械设备,生理指标的动态监测,体型体尺、体重、性别等指标参数,牦牛等级划分和种类识别提供便利,有着巨大的研究价值和实用性。
1 图像预处理图像在转换或传送中,因为存在有光学系统的失真、数字化过程数据丢失或者噪声污染等因素,会使图像质量会受到一定水平的干扰,甚至淹没图像的特征。
这为后续的边缘检测、分割、分析判断等操作造成了不必要的困扰。
那么在图像进行后续处理之前,为了改善图像的视觉效果、方便人机化操作,突出图像的特性便于计算机处理,对图像进行预处理操作就很有必要了。
图像预处理,顾名思义就是对图像进行特征抽取等预先操作,包括图像的点运算、几何变换、直方图均衡化、降噪、平滑、锐化、增强、复原等步骤。
2 系统流程2.1 数字图像的读取和灰度首先,利用imread()函数将原牦牛图像存入matlab的Workspace空间。
然后再利用rgb2gray()函数将原牦牛RGB图像转换为灰度图像,为后续步骤中查看图像直方图信息提供便利。
数字信号处理实验报告实验二图像的边缘检测姓名:张成辉学号:2011704009专业:仪器仪表工程实验三图像的边缘检测一、实验目的1.进一步理解边缘检测的基本原理2.掌握对图像边缘检测的基本方法3.学习利用Matlab图像工具箱对图像进行边缘检测二、实验原理图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。
三、实验要求对边缘检测的要求:使用Matlab图像处理工具箱中的方法对图片的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。
四、实验步骤1.打开MATLAB软件;2.利用MATLAB图像工具箱中已有函数进行图像的边缘检测;3.显示原图和处理过的图像。
4.记录和整理实验报告五.实验程序与结果因为我选取图像的时候觉得人物的轮廓边缘比较清晰,所以我选择简单的人物图像,原图如下:在图像的傅立叶变换的实验中,我看到了图像经过调用Matlab中的FFT函数经过处理之后,我们看到了图像的频谱,也就是图像梯度的分布图,我们还可以看出图像中央是直流低频成分,四角是高频成分。
此实验是在此基础上进行图像的边缘检测,并对常用的边缘检测算子:梯度运算sobel算子和canny进行对比实验。
5.1 canny算子Matlab程序:a = imread('c:/5.jpg');a=rgb2gray(a); % 选取的是jpg格式的图片,试用要进行灰度处理imshow(a);title('灰度图');ffta = fft2(a); % 获取2维离散傅里叶变化后的图像,保存到fftIsffta = fftshift(ffta); % 将傅里叶变化的中心移到图像中心,保存到sfftIRR = real(sffta); % 取实部II = imag(sffta); % 取虚部A = sqrt(RR.^2 + II.^2); % 计算频谱幅值A = (A - min(min(A)))/(max(max(A)) - min(min(A)))*225; % 灰度拉升,将变换后的图像拉升到0~255区间b=edge(a,'canny',[0.03,0.06]); %灰度图的边缘提取c=edge(a,'canny',[0.05,0.1]);d=edge(a,'canny',[0.05,0.1],2);figure;subplot(1,3,1),imshow(b), axis on;title('canny 阈值=0.02');subplot(1,3,2),imshow(c), axis on;title('canny 阈值=0.07');subplot(1,3,3),imshow(d),axis on;title('默认');figure;imshow(A);title('频谱图');Matlab运行结果图如下:5.2 Sobel 算子(索贝尔算子)Matlab 程序:a = imread('c:/5.jpg');a=rgb2gray(a); % 灰度处理b=edge(a,'sobel',0.02);c=edge(a,'sobel',0.07);[d,e]=edge(a,'sobel');subplot(1,3,1),imshow(b), axis on;title('prewitt 阈值=0.02');subplot(1,3,2),imshow(c), axis on;频谱图灰度图title('prewitt 阈值=0.07')subplot(1,3,3),imshow(d),axis on;title('默认');Matlab运行结果图如下:六.结论由上边的结果图可以看出,canny边缘检测定位精度较高,图像边缘很清晰,而Sobel算子对噪声具有平滑作用,受噪声影响较小,可提供较为精确的边缘方向信息,但同时也会检测出许多伪边缘,检测到的边缘宽度较粗,边缘位置定位精度不高。
第32卷第1期2018年1月北京测绘Beijing Surveying and MappingVol. 32 No. 1January 2018引文格式:高美欢,刘玉梅,王刚.基于M A T L A B的图像边缘检测算法的比较与分析[J].北京测绘,2018(1):48-51.D O I:10. 19580/i. c n k i 1007-3000. 2018. 01. 012基于MATLAB的图像边缘检测算法的比较与分析高美欢刘玉梅王刚(山东科技大学测绘科学与工程学院山东青岛266590)[摘要]图像的边缘中包含有图像的大部分信息,并且图像边缘检测是图像处理与分析的关键性步骤,也是模式识别与计算机视觉领域的主要研究内容之一,因此,研究边缘检测算子对图像处理十分重要。
运用M A TLA B对Sobel算子、L O G算子及Canny算子三种常用的边缘检测算子进行了仿真实验,分析了其各自的优缺点,得出Canny算子是三种算子中边缘检测效果最好的边缘检测算子。
为今后的实际应用,选择合适的算子提供了参考依据。
[关键词]图像处理;边缘检测;算法[中图分类号]P 237 [文献标识码]A〇引言图像边缘是图像局部强度变化最显著的部 分,也是指其周围像素灰度有阶跃状变化或者屋 顶状变化的那些像素的集合,其反映了图像特性 的不连续性。
图像预处理中的关键步骤就是边 缘检测,其检测结果直接影响后期的图像特征提 取以及图像处理。
像素的灰度值变化比较小的 地方是沿图像的边缘方向上;而像素的灰度值变 化比较大的地方是垂直于边缘的方向上。
根据 这种变化特点,将图像的边缘分为了阶梯状、脉 冲状和屋顶状三种类型。
一阶微分图像的峰值和二阶微分图像的零 交叉处表示阶梯状类的图像边缘;相反,一阶导 数的零交叉和二阶导数的峰值表示脉冲状和屋 顶状类的图像边缘。
因此,边缘检测的基本思想 就是求一阶导数的局部极大值和二阶导数的过 零点处,或者求一阶导数的零交叉和二阶导数的 局部极大值。
基于MATLAB数字图像的边缘检测探究摘要:随着MATLAB数字图像的边缘检测技术不断发展,其已广泛用于国内外工程技术、遥感、林业、医学等各个领域。
基于此,本文首先介绍了MATLAB软件的特点,并对基于MATLAB数字图像的边缘检测的功能、算法及其图像的处理过程进行相关探究。
关键词:MATLAB;数字图像;边缘检测中图分类号:TP391 文献标识码:A一般来说,数字图像的边缘信息是极其重要的,该信息是提取一个图像特征的重要属性,同时可更加方便地对数字图像的边缘信息进行比较和量化,适合对图像中各物体的具体位置进行检测和确定。
因此,对基于MATLAB数字图像的边缘检测进行相关的探究是有必要的,有利于我们提取更好、更为精确的图像特征。
1 MATLAB技术特点MATLAB是由Math Works公司开发出的一种用于可视化图形处理和数值计算的程序化设计语言,这种编程语言操作简单、高效,且功能强大。
MATLAB软件是一种将矩阵运算、数值分析、信号处理、图形图像处理和仿真集于一体的软件,也是国际上公认的一种优秀的数学应用软件。
在MATLAB软件中有功能性工具箱和学科性工具箱,它的功能性工具箱主要是用来扩充其图示建模仿真功能、符号计算功能、文字处理功能等内容;而它的学科性工具箱具有较强的专业性,如统计工具箱、优化工具箱、控制工具箱、图像处理工具箱、小波工具箱及通信工具箱等。
2 图像边缘检测的功能与算法在MATLAB软件中,函数一阶导数的极值点会与函数二阶导数的拐点和零交叉点的平滑信号相对应。
目前,常用的图像边缘检测算法主要有高斯-拉普拉斯(LOG)算子、Sobel 算子、Canny算子等。
2.1 高斯-拉普拉斯(LOG)算子高斯-拉普拉斯(LOG)算子是一种既具有图像平滑功能,又具有边缘增强功能的二阶微分算法。
该方法先利用二维的高斯算子对数字图像进行最佳的平滑处理,而后再利用二维拉普拉斯算子找出平滑图像的陡峭边缘,对平滑数字图像的边缘进行增强处理。
边缘检测matlab实验报告引言边缘检测在图像处理领域中是一项十分重要的任务。
它可以帮助我们从图像中提取出物体的边缘信息,对于图像分割、目标识别等任务都具有重要意义。
本实验旨在通过利用MATLAB中提供的边缘检测函数,实现对图像中边缘的提取,并对实验结果进行分析和探讨。
实验步骤1. 导入图像首先,我们需要从MATLAB工作环境中导入需要进行边缘检测的图像。
我们可以使用`imread`函数将图像读入到MATLAB的内存中。
matlabimage = imread('example.jpg');2. 灰度化灰度化是边缘检测的前提条件,它可以将一幅彩色图像转化为灰度图像,使得后续的操作更加简便。
我们可以使用`rgb2gray`函数将彩色图像转化为灰度图像。
matlabgray_image = rgb2gray(image);3. 边缘检测接下来,我们可以使用MATLAB中提供的边缘检测函数进行实际的边缘检测操作。
MATLAB中有许多边缘检测算法可供选择,例如Sobel算子、Canny算子等。
本实验我们选择使用Canny算子进行边缘检测。
matlabedge_image = edge(gray_image, 'Canny');4. 结果显示最后,我们可以使用`imshow`函数将原始图像和边缘检测结果显示出来,以便于观察和分析。
matlabsubplot(1, 2, 1);imshow(gray_image);title('原始图像');subplot(1, 2, 2);imshow(edge_image);title('边缘检测结果');5. 结果分析通过以上步骤,我们可以得到原始图像和边缘检测结果。
我们可以观察边缘检测结果,进一步分析图像中的边缘信息。
同时,我们还可以对不同的边缘检测算法进行对比实验,以评估它们的性能和适用性。
实验结果下图展示了使用Canny算子进行边缘检测的实验结果。
实验1 点运算和直方图处理一、实验目的1. 掌握利用Matlab图像工具箱显示直方图的方法2. 掌握运用点操作进行图像处理的基本原理。
3. 进一步理解利用点操作这一方法进行图像处理的特点。
4. 掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。
二、实验的硬件、软件平台硬件:计算机软件:操作系统:WINDOWS 2000应用软件:MATLAB三、实验内容及步骤1. 了解Matlab图像工具箱的使用。
2. 利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中的至少2个。
⑴图1灰度范围偏小,且灰度偏低,改正之。
⑵图2暗处细节分辨不清,使其能看清楚。
⑶图3亮处细节分辨不清,使其能看清楚。
图1 图2 图33. 给出处理前后图像的直方图。
4. 利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操作,观察结果。
四、思考题1. 点操作能完成哪些图像增强功能?2. 直方图均衡化后直方图为何并不平坦?为何灰度级会减少?五、实验报告要求1.对点操作的原理进行说明。
2.给出程序清单和注释。
3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。
实验2 图像平滑实验一、实验目的1.通过实验掌握图像去噪的基本方法;2.学会根据情况选用不同方法。
二、实验的硬件、软件平台硬件:计算机软件:操作系统:WINDOWS 2000应用软件:MATLAB三、实验内容及要求1.实验内容请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。
(1)对静态场景的多幅图片取平均;(2)空间域模板卷积(不同模板、不同尺寸);(3)频域低通滤波器(不同滤波器模型、不同截止频率);(4)中值滤波方法。
2.实验要求(1)图片可根据需要选取;(2)对不同方法和同一方法的不同参数的实验结果进行分析和比较,如空间域卷积模板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;模板大小可以是3×3,5×5,7×7或更大。
利用MATLAB实现数字图像处理中的边缘检测算法比较数字图像处理是一门涉及数字计算机技术和图像处理技术的交叉学科,其应用领域涵盖医学影像、安防监控、工业质检等诸多领域。
在数字图像处理中,边缘检测是一项重要的技术,用于检测图像中物体边界的位置,对于后续的目标识别、分割等任务具有至关重要的作用。
本文将利用MATLAB软件实现数字图像处理中常用的几种边缘检测算法,并进行比较分析。
1. Sobel算子Sobel算子是一种经典的边缘检测算子,其原理是利用离散卷积来计算图像灰度的一阶导数。
在MATLAB中,可以通过edge函数结合Sobel算子进行边缘检测。
Sobel算子在水平和垂直方向上分别使用以下模板进行卷积计算:2. Prewitt算子Prewitt算子也是一种常见的边缘检测算子,其原理与Sobel算子类似,同样是利用离散卷积计算图像的一阶导数。
Prewitt算子在水平和垂直方向上的模板如下:3. Canny边缘检测Canny边缘检测是一种多阶段的边缘检测算法,包括高斯滤波、计算梯度、非极大值抑制、双阈值处理和边缘跟踪等步骤。
在MATLAB 中,可以通过edge函数选择Canny算法进行边缘检测。
Canny算法能够有效地抑制噪声,并得到更准确的边缘位置。
4. Roberts算子Roberts算子是一种简单直观的边缘检测算子,其原理是通过计算邻近像素之间的差值来检测边缘。
Roberts算子包括两个模板:比较与分析在MATLAB中实现以上几种边缘检测算法后,我们可以对它们进行比较与分析。
首先可以从边缘检测效果来看,不同算法对于同一幅图像可能会有不同的表现,有些算法可能会更加灵敏,有些则可能会更加平滑。
其次可以从计算效率和复杂度来比较,不同算法在实际运行中所需的时间和计算资源也会有所不同。
综合来看,针对不同的应用场景和要求,选择合适的边缘检测算法至关重要。
有时候需要考虑到灵敏度和准确性,有时候则需要考虑到计算效率和实时性。