![数字图像分割的MATLAB仿真研究_第1页](http://file4.renrendoc.com/view10/M02/08/1E/wKhkGWV5KNmAT7C4AAEgeefW1z4170.jpg)
![数字图像分割的MATLAB仿真研究_第2页](http://file4.renrendoc.com/view10/M02/08/1E/wKhkGWV5KNmAT7C4AAEgeefW1z41702.jpg)
![数字图像分割的MATLAB仿真研究_第3页](http://file4.renrendoc.com/view10/M02/08/1E/wKhkGWV5KNmAT7C4AAEgeefW1z41703.jpg)
![数字图像分割的MATLAB仿真研究_第4页](http://file4.renrendoc.com/view10/M02/08/1E/wKhkGWV5KNmAT7C4AAEgeefW1z41704.jpg)
![数字图像分割的MATLAB仿真研究_第5页](http://file4.renrendoc.com/view10/M02/08/1E/wKhkGWV5KNmAT7C4AAEgeefW1z41705.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字图像分割的MATLAB仿真研究摘要图像分割作为图像处理中一个极为重要的步骤,它是图像分析的基础,没有一个好的图像分割效果,其分析结果必然会有许多误差。经过几代人的努力,如今已经出现了许许多多的算法、方法来解决图像分割这个问题,但是图像分割至今仍是图像处理学术界一个难以攻克的难题。本文就现今较为常用的边缘检测算子:Roberts算子、Sobel算子、Prewitt算子、LoG算子、Canny算子,以及阈值分割法的三种常用算法:双峰法、大津法、迭代法进行仿真,然后通过仿真结果比较各种算法的优劣。关键词:图像分割,边缘检测,算子,阈值AbstractAsaveryimportantstepinimageprocessing,imagesegmentationisthebasisofimageanalysis.Withoutagreatimagesegmentationeffect,theanalysisresultswillinevitablyhavemanyerrors.Afterseveralgenerationsofefforts,therehavebeenmanyalgorithmsandmethodstosolvetheproblemofimagesegmentation,butimagesegmentationisstilladifficultproblemfortheimageprocessingacademia.Inthispaper,Robertsoperator,Sobeloperator,Prewittoperator,LoGoperator,Cannyoperatorandthreecommonalgorithmsforthresholdsegmentation,namely,bimodalmethod,OTSUmethodanditerativemethod,aresimulated,andtheadvantagesanddisadvantagesofvariousalgorithmsarecomparedthroughsimulationresults.Keywords:ImageSegmentation,EdgeDetection,Operator,Threshold目 录1 绪论11.1 题目背景及目的11.2 数字图像分割国内外研究状况21.3 文章主要内容及结构安排32 基于MATLAB在图像处理的应用介绍42.1 MATLAB简介42.2 MATLAB图像处理工具箱42.3 MATLAB对图像处理的支持53 图像分割基础63.1图像分割的概念63.2图像分割的基本方法63.3图像分割精度评判标准74 边缘检测方法84.1 edge函数84.2 梯度算子84.2.1Roberts算子94.2.2Sobel算子124.2.3Prewitt算子154.3 LoG算子204.4 Canny算子264.5常用算子的边缘检测比较分析及总结345阈值分割方法355.1 双峰法355.2 最大类间方差法395.3 迭代法426总结与展望456.1 总结456.2 展望45参考文献46致谢49数字图像分割的M数字图像分割的MATLAB仿真研究唐家彬自动化学院 绪论题目背景及目的随着现代信息处理技术的不断进步,越来越多的信息通过计算机来处理,图像就是其中最为重要的组成部分之一,因为人类传递信息的方式之一便是通过图像信息,而图像信息的处理之中的关键步骤就是图像分割。图像处理在如今的应用领域十分广泛:领域应用内容物理、化学谱分析、结晶分析法律、公安指纹识别、人脸识别宇航卫星定位、星际照片处理生物细胞分析、染色体分析、血球分析农林植被分布勘测、农作物产量估计海洋海洋污染勘测、鱼群探查军事侦查,图像制导、图像融合通讯传真、电视、可视电话、图像通信水利河流分布、水利水害勘测工业计算机视觉、机器人、自动控制地质资源勘测、地图绘制、GIS交通汽车识别、交通指挥等环境水质及大气污染调查文化多媒体、动画气象云图分析医学医学影像(肿瘤及其他病理定位、解剖学结构的研究等)表1.1图像处理应用领域图像分割是图像分析之前,图像处理之中必不可少的部分,图像分割是把一个图像按照人们所希望的目标,分成数个具有各自特征的部分,这才使得下一步图像分析能进行下去。倘若图像分割的结果其效果不理想,不能达到预期目标,就会导致图像分析出现偏差,有效且合理的图像分割能够为接下来的图像处理的步骤提供很大的便利,因此图像分割技术在图像处理中的地位是十分重要的。1.2数字图像分割国内外研究状况 图像分割技术从1970年代开始就一直广受关注,虽然研究者对此进行了各方面的研究,但是至今仍旧无法选择出一个最好的、能够普遍使用的方法。目前来说,图像分割已经有了几千种算法,但是无非都是基于图像像素的一些特性来分割:相似性、不连续性等,因此图像分割可分为区域分割、边缘分割以及区域和边缘相结合的算法。现实中有着光与噪声的干扰,这就使得边缘分割方法难以实现,因此出现了许多不同算子来实现边缘分割,这些不同的算子各有其特点及应用场景,有如下特点:1、Roberts算子对图像的边缘定位准确,但对噪声敏感,因此大多使用在边缘明显且噪声较小的情况;2、Sobel算子相比于其他算子对噪声的敏感度较低,它不仅可以获得很好的边缘分割效果,还可以获得较好的噪声平滑作用,但是也使得边缘分割的精度降低了,这是由于它在平滑噪声的过程中增加了一些伪边缘。3、Prewitt算子对噪声有抑制作用,但是由于其对噪声的抑制是通过像素平均的原因,导致对边缘的定位不如Roberts算子。4、Laplacian(拉普拉斯)算子一般不在有噪声的情况下单独使用,因为它对噪声有加强作用,若需要在有噪声情况下使用,则一般是与能够平滑噪声的算子结合使用。Laplacian利用零交叉性质进行边缘定位,判断像素是在边缘的亮侧还是暗侧。5、Canny算子具有大部分算子的优点:高精度的边缘定位、能有效抑制噪声、低误判率等,但是其实现步骤较为复杂。阈值分割相对应的方法:全局阈值分割、迭代法、最大类间方差法,将在下文介绍。图像分割是图像分析的基础,深入研究算法,改进原有算法,甚至提出新的算法都是为了一个目标前进,那就是能够获得更好的图像分割结果,这是现今的图像分割技术的一个发展趋势。1.3文章主要内容及结构安排 本文就图像分割的两种常用方法——边缘检测法和阈值分割法进行了MATLAB仿真,并且就各个算法的仿真结果进行比较分析。 本文第一章主要介绍图像分割的研究意义以及背景;第二章针对MATLAB软件进行介绍;第三章介绍了图像分割的基础内容——概念、基本方法、评估标准;第四章主要对边缘检测法中各个算子进行MATLAB仿真比较;第五章对阈值分割法中的三个阈值选取算法进行仿真与分割效果比较;第六章是图像分割的总结与未来展望;第七章为本文参考文献;第八章是致谢所有本文有帮助的人。2 基于MATLAB在图像处理的应用介绍2.1MATLAB简介MATLAB是Matrix(矩阵)和Laboratory(实验室)两个词结合而生的,它是由美国的CleverMoler博士在1980年开发的,其开发的最初目的是为解决线性代数课程的矩阵运算问题,而在之后的几十年里,Matlab逐渐成为世界最强大的数学软件之一,它衍生出了许多的应用领域,如:信号检测、图像处理、工程计算等领域。2.2MATLAB图像处理工具箱 MATLAB提供了多种不同功能的图像处理工具箱:1、绘图工具箱:plot(基本绘图函数)、title(标题)、xlabel(X轴标记)、grid(网格线)等多种绘图函数。2、图像显示工具箱:imshow(以处理图像的方式显示图像)、subimage(以单幅图像的形式显示排列好的多幅图像)等。3、像素值和统计工具箱:std2(矩阵元素的标准差)、regionprops(度量图像区域的特性)等。4、图像变换工具箱:fabeam(扇形射束变换)、phantom(创建头部幻影图像)等。5、图像分析工具箱:edge(寻找灰度图像的边缘)、houghlines(基于霍夫变换的线段提取)等。6、图像去模糊工具箱:deconvblind(盲去卷积法)、deconvreg(规则滤波法)等。7、图像配准工具箱:cpselect(控制点选择工具)、normxcorr2(归一化的二维互相关)等。8、形态学操作工具箱:bwperim(寻找目标的周长)、imdilate(膨胀图像)等。9、彩色空间工具箱:cmunique(去除索引图像的彩色图中不需要的颜色)、rgb2ntsc(RGB转变为NTSC)等。2.3MATLAB对图像处理的支持 1、图像的支持MATLAB支持以下几种图像文件的格式:JPEG、BMP、PCX、TIFF、PNG、GIF、HDF、ICO、CUR、XWD、RAS、PBM、PGM、PPM、TGA。但是MATLAB的图像处理功能中可处理的格式只有以下七种:JPEG、BMP、PCX、HDF、TIFF、XWD、TGA。2、图像操作的支持MATLAB提供了一系列指令来让使用者判断图像文件的类型,如:isbw(返回真则为二值图像)、isgray(返回真则为灰度图像)、isind(返回真则为索引图像)、isrgb(返回真则为RGB图像)。除此之外,MATLAB能通过imread和imwirte操作转换图像文件格式,不仅如此还提供了很多函数来转换图像类型。3、图像运算的支持 MATLAB支持图像点运算,即将输入图像映射为输出图像,普遍用于改变图像的灰度范围和分布。 MATLAB支持图像线性点运算,即点运算函数f是线性函数时的运算,其线性系数a大于1时可增大输出图像的对比度,a小于1时则减小对比度;若a=1且b=0,则输出图像和输入图像相同;若a=1且b≠0,则输出图像相较于输入图像仅导致灰度值上移或者下移。 MATLAB也同样支持图像非线性点运算,它对应着非线性映射函数。4、MATLAB对图像的存储运算和显示方式 在MATLAB中,其提供了uint8(8位无符号正整数)这个特殊数据类型来存储图像。但是在编程时,在进行中间运算的图像处理过程仍然需要用double(64位双精度浮点)类型,因为MATLAB默认采用的数值类型就是double类型。要进行uint8与double类型转换可通过以下操作:imu8=uint8(round(imdoub*255));imdoub=double(imu8)/255;3 图像分割基础3.1图像分割的概念为了将图像的表现形式变得更加简单且更容易理解分析,图像分割这一理念便出现了。在计算机视觉领域,图像分割指的是将数字图像细分为多个图像子区域的过程。通俗来说,图像分割就是将一个图像中具有不同种视觉共性的部分分开。3.2图像分割的基本方法 如今已有许多较为成熟的分割方法:聚类法:这种方法较为少用,它能保证结果是收敛的,但是无法保证分割结果是最好的,因为分割的效果是随着最初选择的聚类变化而变化的。直方图法:图像直方图有多种如灰度直方图、颜色直方图、视觉直方图,应用于图像分割的便是灰度直方图。基于灰度直方图的分割方法十分有效,但是其受噪声干扰严重。边缘检测法:对于一个图像来说,其基本单位就是像素点,而像素点对应的幅值是灰度值,当一片区域的灰度值到了某个地方不连续了,就表示这个区域结束了,即将进入下一个区域,而这个不连续的地方就是区域与区域之间的边缘。边缘检测法就是通过找到这个边缘来分割图像。区域分割法:区域分割法在不同的领域有不同的分割方法,可分为串行区域和并行区域两个技术领域。(1)对于串行区域技术:它有两种方法,第一种是区域生长法,第二种是区域分裂合并法,它是区域生长法的逆向过程。(2)对于并行区域技术,有阈值分割法:阈值分割法是将输入图像G通过以下公式转化输出图像I:I(x,y)={10fx,y≥Sf(x,y)<S 其中S是阈值,公式可以看出确定一个合适的阈值S是阈值分割法的关键,阈值确定的方法有很多种。阈值分割法应用范围十分广泛,这也是因其算法简单、效率高导致的。水平集方法:最初由Osher和Sethian提出,在图像分割中被应用于确定图像的轮廓,缺点是计算量太大,优点是能够获得十分清晰明显的边缘。3.3图像分割精度评判标准随着图像分割技术的日渐完善,也同时导致对分割精度的需求越来越高。由于分割算法不可避免的会导致误判,从而把不属于该类的像素点分配到该类,因此出现了许多评估分割精度的标准,假设图像中有n+1个类,Pij表示属于类i但被误判为类j的像素点个数,Pii表示正确分类的像素个数。以上是评判标准的前提。 1、PA(PixelAccuracy):像素精度,分割后的图像中,分割正确的像素占预测分割图像总像素的比例,这是最简单的精度标准。PA=i=0nPiii=0nj=0nPij 2、MPA(MeanPixelAccuracy):均像素精度,计算每个类内被分类正确的像素比例后求所有类的像素比例平均值,比PA稍微精确一点。MPA=1n+1i=0nPiij=0nPij 3、MIoU(MeanIntersectionoverUnion):均交并比,把完美分割的结果图像中的像素点的集合称为预测集合,把实际分割结果图像的像素点的集合成为真实集合,而MIoU就是计算预测集合A与真实集合B的交集和并集之比。MIoU=1n+1i=0nPiij=0nPij+4、FWIoU(FrequencyWeightedIntersectionoverUnion):频权交并比,类似加权平均数的做法,根据每个类出现的频率为每个类添加权。FMIoU=1i=0nj=0nPiji=0 在这么多种分割精度评判标准中,MIoU成为独一的香饽饽,众多研究者都喜欢用它来作为评判标准,这也是因其简洁、代表性强。4 边缘检测方法 图像分割最为常用的方法之一便是边缘检测方法,边缘检测法是通过检测图像的边缘来进行分割,而边缘即是图像的像素点的幅值发生突变的地方,边缘检测的目的便是找到这个地方。边缘检测法中有许多边缘检测算子,在不同应用场景使用不同的算子能够有不同的效果,边缘检测算子检查每个像素的邻域并且对灰度变化率进行量化,同时也包含方向的确定。4.1edge函数 MATLAB中已经集成了大部分常用边缘检测的算子,并且提供了edge函数来调用算子,可以通过edge函数指定不同的算子来对输入图像进行边缘检测。以下是部分edge函数的使用方法: BW=edge(I):返回一个二值化图像BW,其中I表示一个灰度图像或二值化图像,在edge函数检测到边缘的地方为1,其他地方为0,edge函数默认使用Sobel算子。 BW=edge(I,method):使用指定算子检测图像边缘。 BW=edge(I,method,threshold):返回所有大于指定阈值的边缘。 BW=edge(I,method,threshold,direction):指定要检测的边缘的方向,Sobel和Prewitt算子可以检测水平方向、垂直方向或者二者同时存在的边缘。Roberts算子可以检测水平45°、水平135°或者两个角度都存在的边缘。这个语法只在Sobel算子、Prewitt算子和Roberts算子上有效。 BW=edge(___,'nothinning'):这条指令能够跳过边缘细化阶段,能够加快分割效率。这种语法也是只有在Sobel算子、Prewitt算子和Roberts算子上才有效。 BW=edge(I,method,threshold,sigma):指定sigma,即标准差。这种语法只有在LoG算子、Canny算子时才有效。4.2梯度算子 梯度算子也称Hamilton算子,它是任意n维标量函数f(x1,···,xn)=f(x)的向量算子,在图像分割中也称作一阶算子。梯度算子已经是较为早期出现的算子,如今的算子都是基于梯度算子进行改进的。4.2.1Roberts算子 Roberts算子是最简单的算子。它寻找边缘的原理是利用局部差分算子,即采用对角线方向相邻的两个像素之差近似梯度幅值来检测边缘。Roberts算子的定位精度高,但是对噪声十分敏感,适用于小噪声的边缘检测。 Roberts算子对原始图像F(x,y)进行运算得到输出图像G(x,y),输出图像即为Roberts算子检测出边缘的图像。Roberts算子公式为:G(x,y)={[F(x,y)–F(x+1,y+1)]2+[F(x+1,y)-F(x,y+1)]2}1/2 (4.1)由于公式(4.1)计算量较大,研究者在实际应用中通常使用绝对差来近似代替上条公式:G(x,y)≈|F(x,y)-F(x+1,y+1)|+|F(x+1,y)-F(x,y+1)| (4.2)通过公式(4.2),可以得到Roberts算子的卷积因子,即Roberts算子模板:G1 G2100-101-10MATLAB对图像处理提供了很大的支持,下面是用MATLAB对Roberts算子进行图像边缘检测的仿真。 由于原始图是600*800的大小,因此将原始图通过rgb2gray(I),使其变换为灰度图,再将大小缩小到原来的0.6倍(imresize(I,0.6)),得到下图。图4.1转换后的灰度图使用edge函数调用Roberts算子,在MATLAB中的代码如下图:图4.2MATLABRoberts算子代码实现代码第一行是读取gdut.jpg灰度图像;第二行调用edge函数的Roberts算子,设置Threshold(灵敏度阈值)为0.05,第三行是显示提取边缘后的图片,第四行为图片设置标题。在不同的灵敏度阈值的情况下,运行结果如下图所示:图4.3不同Threshold值Roberts算子仿真结果图可以看到当Threshold=0.01的时候,由于Roberts算子太过敏感,导致对图像噪声过于敏感,使得边缘提取后打印的图片中,出现了很多不属于真实边缘的白点,这些白点都是阈值过小而产生的伪边缘,可见在这样Threshold值下的边缘提取精度是非常粗糙的。 当Threshold=0.05的时候,仿真结果图中几乎将原图的所有物体的边缘都提取出来了,甚至于石头上的字体都能提取的十分精准。但仍然有些地方,如刻着“广东工业大学”字样的石头的边缘有些不连续,石头的左下角、右下角和草地重合之处的边缘几乎无法提取出来。对于此时的噪声敏感度适中,仅有些许白色小点。 当Threshold=0.1的时候,石头的边缘几乎不可见,石头上的“广东工业大学”字样变成了一些白点,提取出的大部分边缘都是柱子与横杆,但可以看到也是有大部分边沿线条不连续。此时的噪声基本不影响图像。 综合以上分析可以得到一个结论,对于Roberts算子来说,灵敏阈值并不是越低越好,应该根据不同的噪声影响以及图像的复杂程度,适当选取它的值,这样才能得到结果较为准确的边缘提取图像,在本例中选用Threshold=0.05最为合适。 下面来讨论Roberts算子对噪声的影响。通过NI=imnoise(I,'…')函数给图像添加高斯噪声(gaussian)以及椒盐噪声(salt&pepper),而后对其进行Roberts边缘提取。在不同噪声的影响下,边缘提取仿真结果如下图:图4.4不同噪声影响下的Roberts算子仿真结果图 可以看到原图对应的Roberts算子运算结果是十分理想的,但是在边缘不明显的地方,如有阴影的、柱子横杆密集的等地方,边缘不连续。当添加了高斯噪声之后,Roberts运算就出现了满屏雪花的情况,虽然能够大致看出物体的轮廓,但是在轮廓之内基本都是噪声作为填充,结果十分不理想。当添加了椒盐噪声之后,Roberts算子的运算结果仍旧十分不理想,这也是Roberts算子对噪声比较敏感的原因。虽说也能看清柱子以及石头等轮廓,但椒盐噪声的白点也存在于边缘提取图中的每一个角落,这会直接影响到之后的图像分析步骤的结果。椒盐噪声相对于高斯噪声,影响没有高斯噪声那么夸张,这是由于椒盐噪声的噪声比高斯噪声小。经过上述的分析比较,可以证实一个结论:Roberts算子的边缘定位精准,但仅适用于小噪声甚至于无噪声图像。而且对于图像中边缘不明显的地方,它的效果也不是很理想。4.2.2Sobel算子 Sobel算子,也称作索贝尔-费德曼算子或索贝尔滤波器。Sobel算子是1968年时由美国计算机科学家IrwinSobel和GaryFeldman在史丹佛大学的SAIL(人工智能实验室)提出的。因此以他们的名字来命名它。 Sobel是一种离散型差分近似运算图像亮度函数的梯度值的算子。在图像的任何一点使用它,其运算将会产生对应的梯度向量或是其范数。 理论上来说,Sobel算子是一个整数的小型滤波器,对图像在水平和垂直方向上做卷积。因此它需要的运算资源较少。但是在图像的频率变化快的地方,Sobel算子得到的梯度的近似值也较为粗糙。 Sobel算子的模板如下:GxGy121000-1-2-1-101-202-101将算子模板与图像卷积得到Sobel算子公式:Gx=[F(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[F(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)] (4.3)Gy=[F(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]-[F(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)] (4.4)结合公式(4.3)和(4.4),可以得到(x,y)像素点的梯度值,即为灰度值:G=[(Gx)2+(Gy)2]1/2 (4.5)在实际应用之中,通常使用这个公式的绝对近似值,因此公式(4.5)变换为:|G|=|Gx|+|Gy| (4.6)如果梯度大于某一阈值,则可认为该(x,y)点为边缘点。下面是基于Sobel算子的MATLAB边缘检测的仿真。代码如下:图4.5MATLABSobel算子代码实现在不同的灵敏度阈值的情况下,运行结果如下图所示:图4.6不同Threshold值Sobel算子仿真结果图可以看到当Threshold=0.01的时候,由于Sobel算子的阈值太小,导致对图像噪声过于敏感,使得边缘提取后打印的图片中,出现了很多不属于真实边缘的白点,这些白点都是伪边缘,是阈值过小造成的影响,可见在这样Threshold值下的边缘提取精度是非常粗糙的。 当Threshold=0.05的时候,仿真结果图中几乎将原图的所有物体的边缘都提取出来了,甚至于石头上的字体都能提取的十分清晰。 当Threshold=0.1的时候,石头的边缘几乎不可见,石头上的“广东工业大学”字样变成了一些白点,提取出的大部分边缘都是柱子与横杆,但可以看到也是有大部分柱子边沿线条不连续。 综合以上分析,对于Sobel算子来说,灵敏阈值也并不是越低越好,应该根据不同的噪声影响以及图像的复杂程度,适当选取它的值,这样才能得到结果较为准确的边缘提取图像,所以在Sobel算子中也选用0.05的Threshold值. 下面来讨论Sobel算子对噪声的影响。和Roberts算子的操作同样的,给Sobel算子添加高斯噪声和椒盐噪声,并对其图像进行Sobel运算。图4.7不同噪声影响下的Sobel算子仿真结果图可以看到原图对应的Sobel算子运算结果是十分理想的,石头上的坑洼都能够检测出来,柱子上的横纹也能够提取出来。当添加了高斯噪声之后,Sobel算子和Roberts算子的提取结果差不多,都是出现了轮廓内由噪声白点填充满了的情况,对于光亮的地方高斯噪声白点较为稀少,光暗的地方白点更多。当添加了椒盐噪声之后,Sobel算子的运算结果仍旧不太不理想,除了图像本身存在的石头、柱子横梁、草地等物体的轮廓,还多出了大部分椒盐噪声的白点。由于高斯噪声对图像边缘检测的影响比较具有代表性,因此Sobel算子与Roberts算子的比较的仿真结果便是建立在高斯噪声的影响之上,并且Threshold值都为0.05。对比仿真结果图如下:图4.8Roberts算子与Sobel算子在高斯噪声影响下的仿真图通过对比两张图发现,Sobel算子运算的图像上半张图中的横梁以及柱子的边缘相较于Roberts算子运算的图像更加清晰,而且在Sobel算子的边缘检测图像中,石头内部的噪声白点比Roberts算子的边缘检测图像更稀疏,这说明Sobel算子具有一定的噪声平滑作用,这也是Roberts算子不如它的地方。比较二者的卷积因子,可以发现Sobel算子检测水平及垂直方向的边缘比Roberts强,而斜向边缘的Sobel便不如Roberts算子了。若是仔细对比无噪声影响的Roberts算子和Sobel算子的仿真图,不难发现Sobel算子造成的边缘不连续之处少于Roberts算子造成的边缘不连续,这是因为Sobel算子运算的方向比Roberts算子多。综上分析可以得知Sobel算子具有运算简单、效率快的优点,它在检测垂直和水平方向上具有一定优势,且能够抑制少量噪声。4.2.3Prewitt算子 Prewitt算子最早在1970年由J.M.S.Prewitt提出,它的原理和Sobel算子相似,都是利用在水平和垂直方向的两个模板和图像进行卷积运算完成检测的。 Prewitt算子的模板如下:Gx Gy111000-1-1-1-101-101-101将算子模板与图像卷积得到Sobel算子公式:Gx=[F(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[F(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)] (4.7)Gy=[F(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]-[F(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)] (4.8)结合(4.7)和(4.8)式子,可以得到Prewitt(x,y)像素点的梯度值,即为灰度值:G=[(Gx)2+(Gy)2]1/2 (4.9)和Sobel算子一样,公式(4.9)也可以变换为:|G|=|Gx|+|Gy| (4.10)如果求得的梯度大于某一阈值,则可认为该(x,y)点为边缘点。下面是用MATLAB对Prewitt算子进行图像边缘检测的仿真。使用edge函数调用Prewitt算子对图像进行边缘检测。代码如下: 图4.9MATLABPrewitt算子代码实现在不同的灵敏度阈值的情况下,运行结果如下图所示:图4.10不同Threshold值Prewitt算子仿真结果图 对比图4.10的仿真结果可发现,对于Prewitt算子,也和上面两个算子有着同样的规律,Threshold值取0.05是较为合适的。因此采用0.05的灵敏阈值来进行接下来的仿真。讨论Prewitt算子对噪声的影响也和上述两种算子一样,利用噪声污染函数,给图像添加方差为0.5的高斯噪声、均值为0.01的椒盐噪声。不同噪声影响的对比仿真图如下:图4.11不同噪声影响下的Prewitt算子仿真结果图不难看出,原图对应的Prewitt算子运算结果也是十分理想的,甚至石头上的坑洼都能够检测出来,柱子上的横纹也能够提取出来。当添加了高斯噪声之后,Prewitt算子和上述两个算子的提取结果差不多,都是出现了轮廓内由噪声白点填充满了的情况,结果依旧不太理想。当添加了椒盐噪声之后,Prewitt算子运算得到的结果也和前两个算子相似,除了图像本身存在的石头、柱子横梁、草地等物体的轮廓,还多出了大部分椒盐噪声的白点。通过对比三个一阶算子的仿真图,发现Prewitt算子对于高斯噪声的影响和Sobel算子几乎相同,二者均比Roberts算子更能平滑高斯噪声。但是三个算子对椒盐噪声的响应都不太一样。图4.12椒盐噪声影响下的Roberts算子仿真图4.13椒盐噪声影响下的Sobel算子仿真图4.14椒盐噪声影响下的Prewitt算子仿真 仔细观察各个算子的椒盐噪声颗粒的形状。Roberts算子的椒盐噪声颗粒大部分呈现横或者竖的“一”字形;Sobel算子的椒盐噪声颗粒大部分呈现的是缺了四个角的正方形或者“+”形态,而Prewitt算子则是大多呈现出正方形的白色颗粒。 会有如此奇特的现象出现的原因是三个算子的模板不同,对图像的像素点计算的方向和大小也有着细微的差别。Roberts算子由于是二阶矩阵作为卷积因子,所以计算出的边缘是比较粗糙的,因此将噪声误判为边缘从而展现出来的噪声白点便会只有横或竖的“一”字形。Sobel算子和Prewitt算子都是三阶矩阵作为卷基因子,但二者也有细微的不同,差别就是矩阵元素,这就导致Sobel算子产生的噪点本应该是正方形的白点,但却因为矩阵元素加上的权重“2”,致使中间部分太过突出,从而呈现出缺了四个角、不完整的正方形。 综上所述,Prewitt算子具有和Sobel算子相近的特点,但是与Sobel算子有所不同的是,Prewitt算子认为邻域像素对当前像素产生的影响是等价的,所以Prewitt的加权平均的权值是均等的。Prewitt算子和Sobel算子相较于Roberts算子好在能够有一定的噪声抑制作用,但是不如Roberts算子的地方就在于对边缘的定位。4.3LoG算子 以上介绍的都是一阶微分算子,它们都是基于图像灰度变化曲线求导的思想,能够较为突出图像的边缘。而对于二阶微分算子来说,它们基于的思想是对图像变化曲线导数的曲线求导,相当于对图像变化函数二次求导,然后其二阶微分函数曲线会形成一个过零点,这个过零点两边会产生一个波峰、一个波谷,通过设定阈值对过零点进行检测。确定了过零点,便相当于确定了一个边缘点。这样带来的好处就是对边缘的定位能力提升了。 二阶微分算子有很多,而其中最具有代表性的就是拉普拉斯算子。 拉普拉斯算子的常用模板有多种,根据不同邻域系统选择不同的模板:0101-410101414-2041411111-81111选择第一个模板则有以下公式:G=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)拉普拉斯算子具有旋转不变性,即梯度与坐标轴方向无关。同时它也有个致命缺点,就是增强了噪声的影响。所以在使用拉普拉斯算子时通常都要先对图像进行噪声平滑处理,这样才不会使噪声的影响过大。由于拉普拉斯算子有着这种放大噪声影响的缺陷,所以在1980年,Marr和Hildreth提出将Laplace算子与高斯低通滤波相结合,形成了LoG算子。这种算子不仅具有拉普拉斯算子的优点,还将其缺点弥补了。LoG算子首先对图像F(x,y)进行尺度为σ的高斯平滑:Gσ(x,y)=12πσ2e−x2+y 再对其使用拉普拉斯算子检测边缘:G=∂2Gσ(x,y)∂x2+∂2G下面是用MATLAB对LoG算子进行图像边缘检测的仿真。使用edge函数调用Prewitt算子对图像进行边缘检测。代码如下:图4.15LoG算子边缘检测MATLAB代码实现由于LoG算子是二阶微分算子,二阶算子运算得到的梯度比一阶算子小,若是用一阶算子适用的Threshold值来比较,则会将所有梯度值舍弃,从而找不到边缘。因此设定的Threshold阈值需要比一阶算子小。所以下面MATLAB仿真的Threshold值设定为0.01、0.004、0.001。在不同的阈值的情况下,运行结果如下图所示:图4.16Threshold=0.001的LoG算子仿真结果图 当Threshold=0.01的时候,LoG算子运算后的输出图像中不仅包含了真正的边缘,还包含了大量误判的边缘,这就是阈值选取太小的原因。因此Threshold值需要选择大一点。图4.17Threshold=0.01的LoG算子仿真结果图 当阈值Threshold=0.01的时候,LoG算子的输出图像忽略了许多不太明显的边缘线条,并且有部分检测出来的线条断断续续的;石头的边缘线条和石头上的字样都被忽略了。可见此时的Threshold值过大了。图4.18Threshold=0.004的LoG算子仿真结果图 当Threshold=0.004的时候,此时LoG算子提取出的边缘已经十分完整,不仅如此,其边缘线条不连续之处很少。虽说有还些部分的轮廓缺失,但这也是原图不够清晰的原因,就像“广东工业大学”字样的“广”字,原图上看上去是比较模糊的,所以这个时候的阈值已经十分适合这个场景的LoG算子使用。接下来的噪声影响仿真便使用Threshold=0.004的阈值进行。 给图像添加高斯噪声与椒盐噪声,不同噪声影响的对比仿真图如下:图4.19高斯噪声下的LoG算子边缘检测仿真图 观察图4.19不难看出,LoG算子已经尽可能完整地提取出了图像中各个物体的边缘线条,不仅如此,柱子以及横梁上的高斯噪声被LoG算子中的高斯低通滤波器有效抑制了。虽然与部分柱子因为被高斯噪声污染的发白,致使其边缘变的模糊,从而没能被LoG算子提取出柱子的轮廓来。但是观察横梁的边缘,其平滑噪声效果仍旧十分明显。至于草地和石头上的高斯噪声白点虽然说被减少了不少,但依然存在,可见其抑制噪声的效果也是有限的。图4.20椒盐噪声下的LoG算子边缘检测仿真图 LoG算子对于椒盐噪声的处理效果没有高斯噪声那么明显,但是也能看出有部分椒盐噪声被过滤了,并且大部分椒盐噪声在图中的表现形式变成了一个个放大了的小圆圈。这种圆圈特征比较明显,意味着可以在LoG算子运算之后,进行的噪声消除的操作也更加容易。 综合以上的分析,可以证明LoG算子对噪声有着较好的抑制作用,且边缘定位的精度也很准确,它可以说是Laplacian的改进版本。4.4Canny算子 Canny算子一般包含了三个步骤:1、滤波:利用高斯滤波器对图像进行噪声平滑处理,得到一个与原始图像相比有些模糊的图片。2、寻找梯度:利用一阶偏导的有限差分公式计算出每个像素点的梯度与方向。3、边缘跟踪:设定阈值来确定大小在什么范围的梯度是边缘,Canny算子中使用的是滞后阈值。滞后阈值有两个阈值组成:高阈值和低阈值。高阈值用来跟踪较为明显且容易确定的强边缘,而低阈值则是用来跟踪那些较为模糊、难以确定的弱边缘。Canny算子的性能和其选择的参数(高斯滤波器大小和阈值)有很大关系。因此在不同的场景选择不同的合适的参数是十分重要的。MATLAB的Canny算子边缘检测代码如下:图4.21MATLAB的Canny算子边缘检测代码 不同Threshold阈值的仿真结果如下;图22.Threshold=0.05的Canny算子仿真结果图图4.23Threshold=0.1的Canny算子仿真结果图图4.24Threshold=0.2的Canny算子仿真结果图 通过以上三张图可以看出,图4.22中Threshold=0.05时由于阈值选取过小导致产生过多的伪边缘。图4.23中的Threshold=0.1时阈值选取较为适中,但是产生的边缘与实际有些偏差,就如“广东工业大学”的“学”字都变形了。图4.24就是Threshold选的太大,使得一部分不明显的边缘被舍弃。 因此在Canny算子中选用0.1的阈值较为合适。Edge函数对于Canny算子还提供了高斯滤波器标准差参数的选项,下面是不同标准差下的仿真结果:图4.25sigma=5的仿真结果 当sigma=5的时候,可以看到输出图像只保留了原图的大致特征轮廓,其细节完全被掩盖,这时候的图像被过分模糊化了,因此sigma值不可过大。图4.26sigma=1的仿真结果 当sigma=1时,这时图像中的细节纹理被保留了下来,比起sigma=5的情况来看,细节显然要多很多,但同时也会带来一些小噪声的伪边缘,这是无法避免的。 倘若将sigma继续减小,如sigma=0.05时可以得到下图:图4.27sigma=0.05的仿真结果 此时的图像所展现出来的线条可以说是非常细节了,首先是“广东工业大学”字样,甚至于原图看上去都有些模糊的繁体“广”字都较为完整的呈现出来;其次是图片最下方的瓷砖地板,瓷砖地板的竖线纹理也有部分被保留且展现出来。Sigma=0.05带来这么多边缘细节效果的同时,也使得噪声的影响得以存活,让大部分边缘出现了许多毛刺。 滤波器的标准差σ决定着滤波器宽度,而滤波器宽度决定了滤波器的平滑程度。通过上述比较分析可以得知,滤波器的标准差σ越大,则滤波器平滑程度越强,这时图像的特征就会被过分模糊。而标准差σ越小,图像的平滑程度越弱,从而图象的细节纹理也会更多的被保留下来,但同时也会使噪声等不在期望以内的伪边缘出现。因此需要根据不同的需求,适当调节滤波器标准差σ的值,来获取预期内的Canny算子边缘检测效果。 评估一个算子,必不可少的就是它对噪声的抑制作用,因此同样的让canny算子对不同噪声影响下的图像进行运算。因此下面对无噪声、高斯噪声和椒盐噪声影响下的图象进行仿真(为了增大抑制噪声的效果,下面仿真都是在标准差sigma=2的情况下进行的):图4.28无噪声影响的Canny算子仿真结果 可以看到,图4.28中虽有些地方因为标准差选取过大造成细节丢失,但是提取出来的边缘线条几乎都是十分完整且连续的,不会如同其他一阶算子般有多处不连续的地方。图4.29高斯噪声影响的Canny算子仿真对于仿真图中的高斯噪声,Canny算子处理的效果相比于其他算子算是非常好的,除了石头和草地上的高斯噪声影响严重以外,而柱子和横梁上的高斯噪声的影响被Canny算子有效抑制了大部分,所以看到柱子和横梁的边缘轮廓比较清晰。不过其实如果想要将高斯噪声过滤的更多,则可以像上面说到的,增大标准差σ来获得更强的噪声抑制效果,但是这样获得的物体边缘就缺少了很多细节,具体是否要增大标准差来获得更强的平滑噪声效果,还得看具体的需求。图4.30椒盐噪声影响的Canny算子仿真 从图4.30中可以看出,此时的标准差对于椒盐噪声显然也有很好的抑制效果。除了少部分椒盐噪声造成的伪边缘以不规则形状呈现在图中石头中和图中右上角以外,大部分椒盐噪声已经被滤波器过滤了。而真实的边缘除了少部分细节被忽略,大部分都被提取出来。 综合以上的仿真分析来看,Canny算子适用范围十分广泛,应用灵活。不仅能精准的定位边缘,而且对噪声有较强抑制作用,还可以根据对图像边缘细节需求的不同,调节噪声平滑程度。4.5常用算子的边缘检测比较分析及总结 对于上述一阶算子,它们最大的区别就是各自模板不同。Roberts算子的模板是二阶矩阵,Sobel算子和Prewitt算子模板都是三阶矩阵,但二者的矩阵元素又不相同,这就导致它们对边缘检测的效果有着不同之处。通过对比以上的三个梯度算子的仿真结果,可以得出结论,Prewitt算子具有和Sobel算子相近的特点,但是与Sobel算子有所不同的是,Prewitt算子认为邻域像素对当前像素产生的影响是等价的,所以Prewitt的加权平均的权值是均等的。Prewitt算子和Sobel算子相较于Roberts算子好在能够有一定的噪声抑制作用,但是不如Roberts算子的地方就在于对边缘的定位。 对于上述的二阶算子,有LoG算子。它和一阶算子最大的区别就是它是图像灰度变化曲线二次求导,这就使得二阶算子对于灰度变化能够更加敏感,因此对于图像中的边缘细节,它相较于一阶算子有一定优势。不仅如此,LoG算子还自带有高斯滤波器,这就使得LoG算子具有比一阶算子更好的噪声抑制效果。但是如果对比LoG算子和一阶算子的边缘检测仿真图能够发现,LoG算子的细节虽然比一阶算子更多,但是其边缘线条却不如一阶算子清晰,也正是这个原因,二阶算子通常被用来图像锐化处理。 Canny算子相比于一阶算子,多出了噪声平滑的功能,并且能够提取的边缘比一阶算子更加细致,不如一阶算子的缺陷就是容易产生伪边缘。Canny算子相比于LoG算子,比其多出了灵活性,Canny算子能够灵活的调整滤波器的标准差,进而能够控制噪声的平滑程度。 通过以上的分析,可以说Canny算子是比上述其他几种算子都要完美的算子,但是并不能说它是最好的算子,因为图象处理技术正在进步,未来必将有更好的算子出现。5 阈值分割方法 图像分割的方法除了上述的边缘检测法,还有阈值分割法。阈值分割法是直接对图像进行分割的算法,由于阈值分割法成本低廉、实现简单、性能稳定,所以它的应用范围十分广泛。 阈值分割法顾名思义,是利用阈值进行图像分割,它是通过设定阈值来对图像中的像素点进行分区,因而阈值分割法中最为重要的便是如何选取一个适合的阈值。对于阈值的选取现今已经存在在了多种方法,如:迭代法、OTSU(最大类间方差法)、双峰法、最大熵法、自适应阈值等等,这些方法各有各的优点。下面将对迭代法、OTSU和双峰法进行MATLAB仿真。5.1双峰法 双峰法也称作灰度直方图双峰法,是Prewitt在二十世纪七十年代提出的。它的原理是当图像的灰度直方图呈比较明显的双峰状态,则选取双峰间的谷底极小值作为阈值。 双峰法虽然有着方法简单、效率快的优点,但是同时也具有很大的局限性。如当双峰距离不远时,分割效果是不错的,倘若双峰距离较远,很可能是前景与背景有部分灰度值重叠,这时的情况就不适用双峰法。并且当多张图片使用同个灰度直方图,由于其分割过于死板,很可能导致分割失败。 虽然双峰法已经算是过时的产物,但是它为后来的分割方法打下了基础。 下面是对双峰法的MATLAB仿真,首先需要绘制出图像的灰度直方图,利用MATLAB提供的imhist指令生成直方图:图5.1哈士奇原图图5.2哈士奇图的灰度直方图 通过观察图5.2的灰度直方图可以估计两个较大的波峰是在灰度值为145和230的附近,因此大约可以知道双峰法需要的阈值是在[190,200]的区间。通过指令[count,x]=imhist(I)(x:灰度级)可以得到变量:count(每一级灰度像素像素个数)。打开count变量表,找到需要的区间,如下图:图5.3count变量表 通过图5.3count变量表的查找,可以找到两个波峰之间的波谷为变量表中序号是194的876,而序号为194时,灰度值是193,所以可以确定波谷所在的点时(x,count)=(193,876),从而可以确定双峰法所设定的阈值为193/255。 利用图5.4中的指令将图像按照设定阈值进行分割:图5.4双峰法MATLAB仿真代码图5.5哈士奇图双峰法分割仿真图 通过仿真图5.5可以看到,此时的阈值只分割出了4只小狗的轮廓,但是小狗的毛发、四肢以及五官都被分到黑色一类,不仅如此,四只小狗前面的草地也和它们融为一体,这种分割效果是不太理想的,从另一方面也说明了双峰法更适合元素构成比较简单的图像,对于复杂的图像分割效果不尽如人意。为了验证双峰法的适用范围,下面使用了一张图像构成简单的五毛硬币图来进行分割仿真,与上面的结果进行对比。图5.6硬币原图 接着将这张硬币图的直方图绘制出来:图5.7硬币图的灰度直方图 同样的找到其波谷处的阈值,进行分割:图5.8硬币图双峰法分割仿真结果从上图5.8中可以看到,五毛硬币的轮廓分割的较为完整,硬币右边边缘的反光以及阴影也呈现了出来,可以看得出分割效果相比于上面的四只哈士奇图像要好很多,这正是因为硬币图像构成比哈士奇图像简单。但是由于其直方图波谷过于平坦,导致分割后的图像对于细节处理不够到位,就如硬币背面的菊花图案只能看到几根因反光产生的线条。 通过以上的仿真结果分析得知,灰度直方图双峰法进行分割图像,其步骤确实很简单,而且效率很快,但是它的适用范围很小,对于复杂图像分割效果差。5.2最大类间方差法 选取阈值分割法的阈值的其他方法之一就是最大类间方差法,它是Nobuyukiotsu在1978年提出的一种自适应阈值分割的算法,因此最大类间方差法也用其名字来命名,称作大津算法或OTSU。 大津法的原理是:将图像分为前景和后景两类像素,假设前、后景两类被最理想状态地分割,则这时前、后景组合散布(类内方差)最小,由于成对的距离平方和是常数,所以此时两类之间的方差最大。之所以它被称作最大类间方差法,正是因为图像按照这种方法进行分割之后,图像中前景类与后景类之间的方差最大。倘若前景与后景两类被错分一部分,则会导致类内方差变大,类间方差差变小,因此最大类间方差法也意味着错分概率最小。由于它计算简单,且不受亮度、对比度的影响,所以它被公认为是阈值分割法之中的最佳算法,自然而然的它也成为被应用在图像分割中最广泛的阈值分割算法。在大津算法中,寻找所有能找到的能使类内方差最小的阈值,定义为两个类的方差的加权和:σω2(t)=ω0(t)σ公式(5.1)中,权值ωi是由阈值t分隔的两个类的概率,σi大津证明了最小类内方差和最大类间方差是相同的,将类间方差用类概率(类像素占比)ωi和类均值μi来表示:σb2(t)=σ2-σω2(t)=ω1(t)ω 在公式(5.2)中有:后景类的像素占比:ω0(t)=i=tt−1p(i) 前景类的像素占比:ω1(t)=i=tL−1p(i) 公式(5.3)和(5.4)的两个类概率是在L个灰度级的直方图中计算出来的。而类均值(类灰度均值)由公式(5.5)和(5.6)给出:后景类灰度均值:μ0t=i=0t−1ip(i)ω0(t) 前景类灰度均值:μ1t=i=0L−1ip(i)ω1(t) μTt=i=0L−1ip(i) 上述所有公式中,p(i)为第i个直方图面元中心的值。类概率和类均值可以迭代计算。 最大类间方差算法实现共有四个步骤,第一步是计算出输入图像的每个灰度级的直方图和概率,这一步可以使用MATLAB中的imhist指令来完成;第二步是设置阈值t为0时类概率和类均值的初始值;第三步是遍历所有可能的阈值t,然后得到ωi(t)和μi(t)的值,通过两个值计算方差 MATLAB中已经将大津法集成好了,提供了一个接口函数graythresh供用户使用,大津法进行图像分割的代码如下图所示:图5.9大津法图像分割MATLAB仿真代码大津法仿真结果如下图所示:图5.10大津法图像分割MATLAB仿真图 从上图5.10中可以观察到,四只哈士奇作为前景,草丛作为背景分割的十分干净。和双峰法得到的图片进行对比,从大津法得到的图中四只哈士奇毛发的黑白色差都能够体现出来,能够清晰地分辨出四只哈士奇的五官,并且哈士奇前方的草地也和哈士奇有着明显的区分。反观双峰法的分割图,职能看得出四只哈士奇的身体轮廓,并且前方的草地和它们融为一体。这样不难看出,最大类间方差法选取的阈值要比双峰法好很多,其分割出的图像细节相较于双峰法多了许多,同时也说明其图像分割效果比双峰法好很多,好的图像分割效果对于之后的图像分析步骤是十分有效的,因此最大类间方差法能作为最佳阈值选取的算法是有依据的。 综合以上的分析可以得到结论,大津法不仅选取阈值的效率高,并且选取的阈值对图像分割的效果也非常好。但其实大津法适用范围仅对于单目标的提取,双峰法同样如此,因为这两个算法都是基于全局阈值分割的。全局阈值分割就有可能出现感兴趣的目标分布在所选阈值的两侧的情况,这样就会出现有一部分感兴趣目标被分错类,从而在分割后的二值图像中丢失。5.3迭代法 迭代是数值分析中通过一个初始估计值作为起点不断寻找近似解来解决问题的过程,而实现这个过程的方法统称为迭代法。第一个求解线性系统的迭代方法出现在高斯给他的一个学生的信中。他提出通过反复求解残差最大的分量来求解4×4方程组。迭代法最初大多是被用来解决方程或者方程组,迭代方法通常被定义为:xk+1=ψx(k)(k≥0) (5.8) 假设对于一个线性系统Ax=b有精确解x∗,则其近似解与精确解的误差可表示为:ek=xk-x∗(k≥0) (倘若存在一个矩阵CϵRn×n,使得ek+1=Cek(∀k≥0),则这个矩阵称为迭代矩阵,如果limk→∞ 在一个重要定理中,认为对于给定的迭代方法及其迭代矩阵C,当且仅当其谱半径ρ(C)小于1时,它是收敛的。 最基本的迭代方法一般将线性系统中的线性系数矩阵A分解:A=M–N,在此式中的M矩阵是可逆的,于是迭代方法可以变换为:Mxk+1=Nxk+b(k≥0) 而后迭代矩阵C可由上述公式5.10得到:C=I–M-1A=M-1N (5.11) 在图像处理中,迭代法应用于图像分割的阈值分割法,它是基于双峰法的改进方法,其利用迭代法选取阈值是利用了迭代法中逼近的思想,即利用初始的近似阈值来分割图像后,基于分割后的图像再次选取一个阈值继续分割,直至求得的前景与背景的平均灰度值不再变化则可确定最终阈值。 阈值分割的迭代法具体实现步骤为:第一步,根据灰度直方图计算出图像最大、最小灰度值,分别记作HMAX、HMIN,而后求出求出初始阈值T0=HMAX+HMIN2;第二步,根据求得的阈值T分割图像,将其分割为前景、背景,然后求出前景和背景的灰度均值Hf、 在MATLAB中用迭代法选取阈值进行分割的代码如下:图5.11迭代法阈值分割的MATLAB代码实现 图5.11的代码中利用while循环进行循环迭代,其循环end的判断条件是结束标志位b=0,当前景和背景的灰度均值不再变化,即最后的阈值ti与上一次求得的阈值相等时,设置标志位b为0从而终止迭代循环。其仿真结果为:图5.12迭代法阈值分割的仿真结果 通过图5.12,对比迭代法和OTSU方法选取的阈值,迭代法对本文中仿真所用的四只哈士奇的图像求得的阈值为138,而上文的大津法求得的阈值为140,发现迭代法求得的阈值和最大类间方差法求得的阈值几乎相同,换句话说,也就是迭代法分割效果是和最大类间方差法的分割效果几乎相同。通过比较迭代法和大津法的分割仿真图也几乎看不出差别。 虽然迭代法和大津法对本文所选用的图像分割效果相差不大,但是在图像种类繁多的实际应用中,大津法阈值分割对图像的分割效果要比迭代法稳定很多,因为大津法从原理上便十分严谨,图像错分概率较低,所以大津法最优阈值算法的地位还是十分牢固的,而迭代法对于某些特定种类的图像,可能会产生难以控制的分割效果。6 总结与展望6.1总结MATLAB对于图像处理提供了很多支持,其内集成了许多图像边缘检测的算子代码实现,并且提供了很多接口供用户使用,这为用户进行图像处理各个步骤时提供极大便利。本文在MATLAB软件支持下完成了对于图像分割中边缘检测法的各个算子以及阈值分割法的各个阈值算法的仿真,经过仿真结果的对比得到以下结论:对于边缘检测法的算子,二阶算子相较于一阶算子来说,对边缘细节的把握更为细致,而其中Canny算子的性能要比其他算子更好一些,这是因为它的适用范围广、灵活性好、对噪声平滑作用强。对于阈值分割法的各个方法,要数大津法选取的阈值为最优,双峰法作为最早的阈值算法具有重大意义,是未来出现的各种阈值算法的基础,而迭代法虽在本文中的仿真效果和大津法相差不大,但是某些复杂情况会导致不可控的分割效果,从而导致分割失败。6.2展望纵观图像分割的研究历史,虽然不断的有新兴的算法、分割方法出现,但是仍旧没有一个能够普遍使用的分割方法或者算法,并且对于图像分割虽有许多评判分割性能的分割标准,但是也同样没有一种能够通用的标准。图像分割至今仍旧是图像处理领域的一大难题,但是按照现今的研究趋势来看,未来将会不断地有图像分割的新理论、新方法出现,会不断地有改进的算法出现。还有一种大的趋势就是将会综合运用多种方法进行分割,这也是因为单独一种算法或者方法无法很好地应对种类庞大且复杂的图像。相信随着科技不断进步,研究者的共同努力,不久的将来一定能攻克下图像分割这一座大山。参考 文献[1]周俊勇,陈永良,黄卫跃.最大类间方差法在果蔬种类识别中的应用研究[J].科技通报,2019,35(03):123-126.[2]王小丫.图像分割算法研究与展望[J].科技传播,2019(08):165-166.[3]武红玉.阈值分割算法在图像处理中的应用[J].科技信息,2012(27):201-202.[4]杨修国.图像阈值分割方法研究与分析[D].华东师范大学,2009.[5]杨修国.关于直方图双峰法的研究与改进[J].电子设计工程,2012,20(12):176-179.[6]李杨静,刘艺航,王梓,王迎港,宋琳琳.基于Matlab的图像分割[J].无线互联科技,2018,15(15):53-54.[7]肖雪梅.Sobel算子在医学图像边缘检测中的应用研究[J].计算机与网络,2019,45(04):39-41.[8]张阳,刘缠牢,卢伟家,刘璐.基于LoG算子的双滤波边缘检测算法[J].电子测量技术,2019,42(04):95-98.[9]刘现,蔡淑芳,黄语燕.基于Canny算子的福橘图像边缘检测研究[J].东南园艺,2018,6(06):19-22.[10]安建尧,李金新,孙双平.基于Prewitt算子的红外图像边缘检测改进算法[J].杭州电子科技大学学报(自然科学版),2018,38(05):18-23+39.[11]唐阳山,徐忠帅,黄贤丞,朱停仃,李栋梁.基于Roberts算子的车道线图像的边缘检测研究[J].辽宁工业大学学报(自然科学版),2017,37(06):383-386+390.[12]关雪梅.基于Matlab的几种图像锐化处理算法研究[J].商丘师范学院学报,2018,34(12):12-14.[13]王宗宜.探讨MATLAB在数字图像处理中的应用[J].数字通信世界,2019(01):209+232.[14]
马侦.
数字图像几种边缘检测算法研究[J]
.
电子制作,2018,(4):68-69
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- NX-1607-GMP-Cbl-b-IN-3-GMP-生命科学试剂-MCE-7412
- Isoorotidine-生命科学试剂-MCE-5873
- 3-Methoxy-prostaglandin-F1α-生命科学试剂-MCE-1002
- 二零二五年度红木家具品牌授权合同及清单
- 二零二五年度父母无偿赠与子女房产并约定维修责任协议
- 二零二五年度新能源储能技术融资合同
- 施工现场施工防突发公共卫生事件制度
- 施工单位关于协调配合的联络函
- 雨雪天气的应急预案
- 《运营管理 第7版》课件-chapt.05-选址与设施布置
- 2025年春季学期学校德育工作计划安排表(完整版)
- 2025年有机肥行业发展趋势分析报告
- 2023-2024年员工三级安全培训考试题及参考答案(综合题)
- 2024年人教版初中英语九年级全册单元测评与答案
- 【渞法】学会自我保护教学设计 七年级道德与法治下册(统编版2024)
- 2025-2030年中国融雪剂行业运行动态及发展前景预测报告
- DB31∕T 1043-2017 暴雨强度公式与设计雨型标准
- 对口升学语文模拟试卷(6)-江西省(解析版)
- 2025保安部年度工作计划
- 2024年江苏经贸职业技术学院单招职业适应性测试题库
- 人居环境综合治理项目项目背景及必要性分析
评论
0/150
提交评论