毕业论文图像分割算法研究与实现(编辑修改稿)内容摘要:

众所周知,边缘是图像的基本特征,所谓边缘就是指周围灰度强度有变化的那些像素的集合,是图像分割、纹理分析和图像识别的重要基础。 区域提取法有两种基本形式:一种是从单个像素出发,逐渐合并以形成所需的分割区域;另一种是从全图出发,逐渐分裂切割至所需的分割区域。 在实际中使用的通常是这两种基本形式的结合。 根据以上 两种基本形式,区域提取法可以分为区域生长法和分裂合并法。 区域生长法的基本思想是将具有相似性质的像素合起来构成区域,具体做法是先给定图像中要分割的目标物体内的一个小块或者说种子区域,再在种子区域的基础上不断将其周围的像素点以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的目的。 该方法的关键是要选择合适的生长或相似准则。 生长准则一般可分为三种:基于区域灰度差准则、基于区域内灰度分布统计性质准则和基于区域形状准则。 分裂合并法是先将图像分割成很多的一致性较强的小区域,再按一定的规则将小区域融合成 大区域,达到分割图像的目的。 区域提取法的缺点是往往会造成过度分割,即将图像分割成过多的区域,因此近年来针对这种方法的研究较少。 阈值分割法是一种简单高效的图像分割技术。 它通过设定不同的特征阈值,把图像像素点分为若干类。 在一幅图像中用灰度等级表示各像素点的特征,许多阈值分割方法根据一维灰度直方图或者二维灰度直方图从背景中提取感兴趣的目标。 阈值的选取是阈值分割技术的关键,如果阈值选取过 高,过多的目标点被误归为背景;阈值选取过低,则会出现相反的情况。 现有的大部分算法都是集中在阈值确定的研究上。 阈值分割方法根据图像 本身的特点,可分为单阈值分割方法和多阈值分割方法:也可分为基于像素值的阈值分割方法、基于区域性质的阈值分割方法和基于坐标位置的阈值分割方法。 3 2 基于 MATLAB 的图像分割 MATLAB 的优点 MATLAB 使用方便 MATLAB 允许用户以数学形式的语言编写程序,用户在命令窗口中输入命令即可直接得出结果,这比 C++、 Fortran 和 Basic 等等该机语言都要方便的多。 而且它是用 C语言开发的,其流程控制语句与 C 语言中的相应语句几乎一致。 这给使用上带来了方便,使我能较快的适应与使用 MATLAB 这门 语言。 MATLAB 内部函数丰富 MATLAB 的内部函数提供了相当丰富的函数,这些函数解决许多基本问题,如矩阵的输入。 在其它语言中 (比如 C 语言中 ),要输入一个矩阵,先要编写一个矩阵的子函数,而 MATLAB 语言则提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求做明确的维数说明。 与利用 C 语言或 Fortran① 等等高级语言编写数值计算的程序相比,利用 MATLAB 可以节省大量的编程时间。 这就给用户节省了很多的时间,使用户可以把自己的精力放到创造方面,而把繁琐的问题交给内部 函数来解决。 除了这些数量巨大的基本内部函数外, MATLAB 还有为数不少的工具箱。 这些工具箱用于解决某些领域的复杂问题。 MATLAB 强大的图形和符号功能 MATLAB 具有强大的图形处理功能,它本身带有许多绘图的库函数,可以很轻松地画出各种复杂的二维和多维图形。 这些图形可以在与运行该程序的计算机连接的任何打印机设备上打印出来,这使得 MATLAB 成为技术数据可视化的杰出代表。 ① 译为 “公式编译器”, 它是世界上 最早出现的计算机高级 程序设计语言 ,广泛应用于科学和工程计算领域。 4 3 图像分割的主要研究方法 图像分割定义 图像分割是图像处理中的一项关键技术,自 20 世纪 70 年代起一直受到人 们的高度重视,至今已提出了上千种各种类型的分割算法,现提出的分割算法大都是针对具体问题的,并没有一种适合于所有图像的通用分割算法,而且近年来每年都有上百篇相关研究报道发表。 然而,还没有制定出选择合适分割算法的标准,这给图像分割技术的应用带来许多实际问题。 因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一 [1]。 多年来人们对图像分割提出了不同的解释和表述,借助集合概念对图像分割可给出如下定义: 令集合 R 代表整个图像区域,对 R 的图像分割可以看做是将 R 分成 N 个满足以下条件的非空子集 R1, R2, R3, … , RN; ( 1)在分割结果中,每个区域的像素有着相同的特性; ( 2)在分割结果中,不同子区域具有不同的特性,并且它们没有公共特性; ( 3)分割的所有子区域的并集就是原来的图像; ( 4)各个子集是连通的区域; 图像分割是把图像分割成若干个特定的、具有独特性质的区域并提取出感兴趣目标的技术和过程,这些特性可以是像素的灰度 ① 、颜色、纹理等提取的目标可以是对应的单个区域,也可以是对应的多个区域。 图像分割方法综述 图像分割是指将图像划分为与其中含有的真实世界的物体或区域有强相关性的组成部分的过程。 图 像分割是图像处理和分析中的重要问题 ,也是计算机视觉研究中的一个经典难题。 尽管它一直受到科研人员的重视 ,但是它的发展很慢 ,被认为是计算机视觉的一个瓶颈。 迄今为止 ,还没有一种图像分割方法适用于所有的图像 ,也没有一类图像所有的方法都适用于它。 近几年来 ,研究人员不断改进原有方法并将其它学科的新理论和新方法引入图像分割 ,提出了不少新的分割方法。 本文对传统的图像分割方法进行分析。 典型的图像分割方法有阈值法,边缘检测法,区域法。 分析各种图像分割方法可以发现,它们分割图像的基本依据和条件有以下 4 方面 : (l)分割的图 像区域应具有同质性,如灰度级别相近、纹理相似等。 (2)区域内部平整,不存在很小的小空洞。 5 (3)相邻区域之间对选定的某种同质判据而言,应存在显著差异性。 (4)每个分割区域边界应具有齐整性和空间位置的准确性。 现有的大多数图像分割方法只是部分满足上述判据。 如果加强分割区域的同性质约束,分割区域很容易产生大量小空洞和不规整边缘 :若强调不同区域间性质差异的显著性,则极易造成非同质区域的合并和有意义的边界丢失。 不同的图像分割方法总有在各种约束条件之间找到适当的平衡点 [2]。 边缘检测法 边缘检测原理 边缘 (或边沿 )是指其周围像素灰度有阶跃变化或 “屋顶 ”变化的那些像素的集合,也即边缘是灰度值不连续的结果,这种不连续常可以用求导数方便的检测到,一般常用一阶导数和二阶导数来检测边缘。 边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。 因此,它是图像分割所依赖的重要特征,而边缘信息是一种图像的紧描述,所包含的往往是图像中最重要的信息,故对图像提取边缘能极大地降低我们要处理的数据量 [3]。 在讨论边缘算子之前,首先给出下列术语的定义。 边缘点 : 图像中亮度显著变化的点。 边缘段:边缘点 坐标 [i,j]及其方向 θ 的综合,边缘的方向是可以是梯度角。 边缘检测器:从图像中抽取边缘(边缘点或边缘段)集合的算法。 轮廓:边缘列表,或是一条边缘列表的曲线模型。 边缘连接:从无序边缘表形成有序边缘表的过程。 习惯上边缘的表示采用顺时针方向来排序。 边缘跟踪:一个用来确定轮廓图像(指滤波后的图像)的搜索过程。 边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示。 边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的是输出图像的坐标系上表示,因为滤波过程可能导致图 像坐标平移或者缩放。 边缘段可以用像素点尺寸大小的小线段定义,或用具有方向属性的一个点定义。 在实际应用中,边缘点和边缘段都称为边缘。 虽然图像边缘点产生的原因不同,但他们都是图像上灰度不连续点,或是灰度变化剧烈的地方。 经典的边缘提取方法是考察图像的每个像素在某个邻域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘。 这种方法称为边缘检测局 6 部算子法。 边缘检测算子 ① 检查每个像素的邻域并对灰度变化率进行量化,也包括方向的确定。 常用的边缘检测方法的基础是微分运算,边缘点对应于一阶微 分幅度大的点, 或对应于二阶微分的过零点。 传统的边缘检测算法通过梯度算子来实现,在求边缘的梯度时,需要对每个象素位置计算。 经典的梯度算子模板有 Prewitt 模板、 Canny 模板、 Sobel 模板、 Log 模板等 [4]。 Canny 算子 Canny 边缘检测利用高斯函数的一阶微分,在噪声抑制和边缘检测之间寻求较好的平衡,其表达式近似于高斯函数的一阶导数。 Canny 边缘检测算子对受加性噪声影响的 边缘检测是最优的。 在高斯噪声中,一个典型的边缘代表一个阶跃的强度变化。 根据这个模型,好的边缘检测算 子应该有 3个指标: ( 1) 低失误概率,即真正的边缘点尽可能少的丢失又要尽可能避免将非边缘点检测为边缘: ( 2) 高位置精度,检测的边缘应尽可能接近真实的边缘; ( 3) 对每一个边缘点有惟一的响应,得到单像素宽度的边缘。 坎尼算子提出了边缘算子的如下 3个准则: 信噪比准则 : 信噪比越大,提取的边缘质量越高。 信噪比 SNR 定义为:      wwwwdxxhdxxhxGS N R2 (式 ) 其中 G( x)代表边缘函数, h(x)代表宽度为 W 的滤 波器的脉冲响应。 定位精确度准则 : 边缘定位精度 L 如下定义:     dxxhdxxhxGL wwww 239。 39。 39。  (式 ) 其中  XG39。 和  XH39。 分别是  XG 和  Xh 的导数。 L 越大表明定位精度越高。 7 单边缘响应准则 : 为了保证单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离 39。 fD 应满足:      2139。 39。 239。 39。 dxxhdxxhfD  (式 ) xh39。 39。 是 xh 的二阶导数 以上述指标和准则为基础,利用泛函数求导的方法可导出坎尼边缘检测器是信噪比与定位之乘积的最优逼近算子,表达式近似于高斯函数的一阶导数。 将坎尼 3 个准则相结合可以获得最优的检测算子 [5]。 Prewitt 算子 Prewitt 与 Sobel 算子的方程完全一样,只是常系数 c=1。 所以 xs 和 ys 可分别用卷积模板表示为: 下面使用 MATLAB 图像处理工具箱中的 edge 函数利用以上算子来检测边缘。 Edge函数提供许多微分算子模板,对于某些模板可以指定其是对水平边缘还是对垂直边缘(或者二者都有)敏感(即主要检测是水平边缘还是垂直边缘)。 Edge 函数在检测边缘时可以指定一个 灰度阈值,只有满足这个阈值条件的点才视为边界点。 Edge 函数的基本调用格式如下:  ,39。 39。 , p a ra m e te rty p eIe d g eBW  (式 ) 1 0 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 8 其中, I 表示输入图像, type 表示使用的算子类型, parameter 则是与具体算子有关的参数。 Sobel 算子 采用 33 邻域可以避免在像素之间内插点上计算梯度。 考虑下图中所示的点  ji, 周 围点的排列。 Sobel 算子也是一种梯度幅值 : 22 yx ssM  ( 式 ) 其中的偏导数用下式计算 :    670432 acaaacaas x  (式 )    670432 acaaacaas y  (式 ) 其中常系数 c=2。 和其他的梯度算子一样 xs 和 ys 可分别用卷积模板表示为 : 这一算 子把重点放在接近于模板中心的像素点。 Sobel 算子是边缘检测中最常用的算子 之一。 0a 1a 2a 7a  ji, 3a 6a 5a 4a 1 0 1 2 0 2 1 0 1 1 2 1 0 0 0 1 2 1 9 Log 算子 Log 算子也就是 LaplacianGauss 算子,它把 Gauss。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。