区域生长法原稿

上传人:小** 文档编号:46219383 上传时间:2021-12-11 格式:DOC 页数:31 大小:517.50KB
收藏 版权申诉 举报 下载
区域生长法原稿_第1页
第1页 / 共31页
区域生长法原稿_第2页
第2页 / 共31页
区域生长法原稿_第3页
第3页 / 共31页
资源描述:

《区域生长法原稿》由会员分享,可在线阅读,更多相关《区域生长法原稿(31页珍藏版)》请在装配图网上搜索。

1、基于区域增长法的图像分割图像分割是一种重要的图像分析技术。对图像分割的研究一直是图像技 术研究中的热点和焦点。图像分割的目的是将图像划分为不同的区域,基于 区域生长是以直接找寻区域为基础的分割技术。本文首先简单介绍图像分割的主要方法,然后重点介绍一种基于区域增 长法的图像分割方法 ,该方法是根据同一物体区域内象素的相似性质来聚集 象素点的方法,从初始区域(如小邻域或甚至于每个象素)开始,将相邻的 具有同样性质的象素或其它区域归并到目前的区域中从而逐步增长区域,直 至没有可以归并的点或其它小区域为止。区域内象素的相似性度量可以包括 平均灰度值、纹理、颜色等信息。目录第一章绪论 11.1 图像分割

2、技术的现状和发展情况 11.2 图像分割的简介 . 11.3 图像分割的定义 . 21.4 论文的内容与结构安排 5第二章图像分割预处理 . 62.1 图像平滑 62.1.1 中值滤波原理. 62.1.2 平滑效果分析. 72.2 灰度调整 82.2.1 灰度调整原理. 82.2.2 灰度调整效果分析 82.3 本章小结 9第三章 基于区域增长法的图像分割技术 103.1 区域生长法原理 103.2 图像生长法实验方法 113.2.1 图像二值化 . 123.2.2 基于区域灰度差的生长准则 133.2.3 基于区域内灰度分布统计性质的生长准则 143.3 算法流程设计 143.4 本章小结

3、16第四章 总结与展望 . 174.1 工作总结 174.2 工作展望 17参考文献 20附 录 21II第一章 绪论本章对论文涉及的研究领域进行了较为详细的综述。简要介绍了图像分割对 于现实生活的重要意义,目前的科学研究现状以及发展前景。并且图像分割这一 领域的主要方法进行了简要的介绍,在整体流程上做以安排。1.1 图像分割技术的现状和发展情况图像分割的研究已经有了几十年的历史,它不仅得到人们的广泛重视和研 究, 在实际生活中也得到大量的应用。关于图像分割的原理和方法国内外已有不少 结论与推想,但一直以来没有一种分割方法适用于所有图像分割处理。传统的图 像分割方法存在着不足,不能满足人们的要

4、求,为进一步的图像分析和理解带来 了困难。随着计算机技术的迅猛发展,及其相关技术的发展和成熟,结合图像增 强等技术,能够在计算机上实现图像分割处理。其中最主要的技术是图像分割技术,从图像中,将某个特定区域与其它部分 进行分离并提取出来的处理。图像分割的方法有许多种,在这里大概介绍这几种 方法:有阈值分割方法,边界分割方法,区域提取方法,结合特定理论工具的分 割方法等。其中基于区域的方法采用某种准则,直接将图像划分为多个区域。而 基于边缘的方法则通过检测包含不同区域的边缘,获得关于各区域的边界轮廓描 述,达到图像分割的目的,而区域与边缘相结合的方法通过区域分割与边缘检测 的相互作用,得到分割结果

5、。1.2 图像分割的简介图像分割 ( image segmentation) 就是把图像分成各具特征的区域并提取出 感兴趣目标的技术和过程。这里特征可以是象素的灰度、颜色、纹理等 , 预先定义 的目标可以对应单个区域也可以对应多个区域。图像分割是图像处理到图像分析 的关键步骤 , 在图像工程中占据重要的位置。一方面 , 它是目标表达的基础 , 对特 征测量有重要的影响。 另一方面 , 因为图像分割及其基于分割的目标表达、 特征提 取和参数测量等将原始图像转化为更抽象更紧凑的形式 , 使得更高层的图像分析 和理解成为可能。图像分割是一种重要的图像处理技术 , 它不仅得到人们的广泛重视和研究 ,

6、在实际中也得到大量的应用。 图像分割包括目标轮廓、 阈值化、图像区分或求差、 目标检测、目标识别、目标跟踪等技术。从大的方面来说,图像分割方法可大致分为基于区域的方法、基于边缘的 方法、区域与边缘相结合的方法,以及在此基础上的采用多分辨率图像处理理论 的多尺度分割方法 。其中基于区域的方法采用某种准则,直接将图像划分为多个区域。而基于 边缘的方法则通过检测包含不同区域的边缘,获得关于各区域的边界轮廓描述, 达到图像分割的目的,而区域与边缘相结合的方法通过区域分割与边缘检测的相 互作用,得到分割结果。图像分割中基于区域的方法主要有直方图门限法、区域生长法、基于图像 的随机场模型法、松弛标记区域分

7、割法等。本文主要讨论基于区域分割的区域生 长法。区域生长是一种古老的图像分割方法,最早的区域生长图像分割方法是由 Levine 等人提出的。该方法一般有两种方式,一种是先给定图像中要分割的目标 物体内的一个小块或者说种子区域,再在种子区域基础上不断将其周围的像素点 以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的 目的;另一种是先将图像分割成很多的一致性较强,如区域内像素灰度值相同的 小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的,典型的 区域生长法如T. C. Pong等人提出的基于小面(facet)模型的区域生长法,区域生 长法固有的缺点是往往会造成过

8、度分割,即将图像分割成过多的区域。1.3 图像分割的定义借助集合概念对图像分割给出如下较正式的定义 :令集合R代表整个图像区域,对R的分割可看做将R分成N个满足以下五个条件的非空子集(子区域)R1, R3, , RN: 对所有的i和j, U j,有Ri n Rj ; 对 i=1,2,?,N, 有 P(Ri)=TRUE; 对 i 工j,有 P(RiU Rj)=FALSE; 对 i=1,2,?,N, Ri 是连接的区域。其中P(Ri)对所有在集合Ri中元素的逻辑谓词,O代表空集。上述的五个条件分别 称为完备性,独立性,相似性,互斥性,连通性。1.4 图像分割主要研究方法图像分割是图像处理中的一项不

9、可缺少技术,自 20 世纪 70 年代起一直受到人们的高度重视,至今已提出了上千种各种类型的分割算法,但是,问题在于现 在提出的分割算法大都是针对具体问题的,并没有存在一种适合于所有图像的通 用分割算法, 所以存在着近年来每年都有上百篇相关研究报道发表的现象。 然而, 一直没有被确定下来制定规则, 这给图像分割技术的应用带来许多的问题。 因此, 对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。图像分割在图像处理分析中的有着不可或缺的地位,它起着承上启下的作用, 可以认为是介于低层次处理和高层次处理的中间层间。最近几年出现了许多新思 路、新方法、或改进算法。下面对一些经典传统方

10、法作简要的概述。图像分割是把图像分割成若干个特定的、具有独特性质的区域并提取出感兴 趣目标的技术和过程,这些特性可以是像素的灰度、颜色、纹理等提取的目标可 以是对应的单个区域,也可以是对应的多个区域。图像分割方法有许多种分类方 式,在这里将分割方法概括为四类:(1) 边缘检测方法(2) 区域提取方法(3) 阈值分割方法(4) 结合特定理论工具的分割方法。1.4.1 边缘检测法图像处理分析的第一步往往是边缘检测。边缘检测方法是人们研究得比较多 的一种方法,它通过检测图像中不同区域的边缘来达到分割图像的目的。边缘检 测法的实质是通过检测包含不同区域的边缘,获得关于各区域的边界轮廓描述, 达到图像分

11、割的目的。边缘的定义为图像中灰度发生急剧变化的区域边界。图 像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图 像微分技术来获得边缘检测算子。经典的边缘检测方法,是通过对原始图像中 像素的某小邻域构造边缘检测算子来达到检测边缘这一目的。1.4.2 区域提取法区域提取法有两种基本形式:一种是从单个像素出发,逐渐合并以形成所需 的分割区域;另一种是从全图出发,逐渐分裂切割至所需的分割区域。在实际中 使用的通常是这两种基本形式的结合。根据以上两种基本形式,区域提取法可以 分为区域生长法和分裂合并法。区域生长法的基本思想是将具有相似性质的像素 合起来构成区域,具体做法是先给定图像中要

12、分割的目标物体内的一个小块或者 说种子区域,再在种子区域的基础上不断将其周围的像素点以一定的规则加入其 中,达到最终将代表该物体的所有像素点结合成一个区域的目的。该方法的关键 是要选择合适的生长或相似准则。生长准则一般可分为三种:基于区域灰度差准 则、基于区域内灰度分布统计性质准则和基于区域形状准则。分裂合并法是先将 图像分割成很多的一致性较强的小区域,再按一定的规则将小区域融合成大区域, 达到分割图像的目的。论文将对区域生长法的具体算法进行试验,并在实际问题 当中加以佐证,分析其方法的优劣与改进方法。1.4.3 阈值分割法对灰度图像的取阈值分割就是先确定一个处于图像灰度取值范围之中的灰度 阈

13、值,然后将图像中各个像素的灰度值都与这个阈值相比较,并根据比较结果将 对应的像素分为两类。这两类像素一般分属图像的两类区域,从而达到分割的目 的。阈值分割算法主要有两个步骤:(1)确定需要的阈值;(2)将分割阈值与像素值比较以划分像素。 可以看出,确定一个最优阈值是分割的关键。现有的大部分算法都是集中在 阈值确定的研究上。阈值分割方法根据图像本身的特点,可分为单阈值分割方法 和多阈值分割方法:也可分为基于像素值的阈值分割方法、基于区域性质的阈值 分割方法和基于坐标位置的阈值分割方法若考虑分割算法所用的特征或准则的 特点,还可以分为直方图与直方图变换法、最大类空间方差法、最小误差法与均 匀化误差

14、法、共生矩阵法、最大熵法、简单统计法与局部特性法、概率松弛法、 模糊集法等。1.4.4 结合特定理论工具的分割方法近年来,随着各学科许多新理论和方法的提出,人们也提出了许多结合特定 理论工具的分割方法,例如基于数学形态学的分割方法,基于神经网络的分割方 法,基于信息论的分割方法,基于模糊集合和逻辑的分割方法,基于小波分析和 变换的分割方法,基于遗传算法的分割方法等。基于小波分析和变换的分割方法是借助新出现的数学工具小波变换来分割图像的一种方法,也是现在非常新的一 种方法。1.5 论文的内容与结构安排本文的内容分为四章,具体的章节安排如下:第一章 绪论:介绍图像分割的研究意义、起源与发展;概括介

15、绍了图像分割 的分类、层次及步骤;并对图像分割的研究现状做了概述。第二章 图像分割预处理:介绍了图像分割前平滑与灰度调整等图像增强操作 技术的定义、原理、算法。分析了在本系统中应用此操作的优势所在。第三章 基于区域生长法的图像分割:介绍了区域生长法的主要内容,包括区 域生长法的定义、原理、算法。分析了该方法的优势所在。第五章 总结与展望:重点对本论文设计进行总结,并进一步展望该课题的研 究前景。5第二章 图像分割预处理由于受多种因素条件的影响,得到的图片往往信息微弱,无法辨识,需要进 行增强处理。增强的目的,在于提供一个满足一定要求的图像,或对图像进行变 换,以进行分析。2.1 图像平滑图像平

16、滑的目的是为了减少图像噪声。图像的噪声来自于多方面,有来自于 系统外部干扰,如电磁波或经电源串进系统内部而引起的外部噪声,也有来自于 系统内部的干扰,如摄像机的热噪声,电器机械运动而产生的抖动噪声等内部噪 声。因此,去除噪声,恢复原始图像是图像处理中的一个重要内容。噪声主要来 自下面三个方面:(1)光电子噪声:主要由光的统计本质和图像传感器的光电转换过程引起的 (如光电管的光量子噪声和电子起伏噪声) ;(2)电子噪声:主要来自电子元器件(如电阻引起的热噪声) ;(3)光学噪声:主要由光学现象产生的 (如胶片的粒状结构产生的颗粒噪声) ; 图像在生成和传输过程中受到这些噪声的干扰和影响,使图像处

17、理结果变差。因此,抑制或消除这些噪声从而改善图像质量,在图像处理过程中是一个重要的 预处理,也称为对图像的平滑滤波过程。2.1.1 中值滤波原理中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计 特性,所以比较方便。中值滤波首先是被应用在一维信号处理技术中,后来被二 维图像信号处理技术所应用。在一定的条件下,可以克服线性滤波器所带来的图 像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。中值滤波的目的是 保护图像边缘的同时去除噪声。在一维的情况下,中值滤波器是一个含有奇数个像素的窗口,在处理之后, 将窗口正中的像素灰度值用窗口内各像素灰度值的中值来代替。设有一个维序列 fl

18、, f2 , , , fn,取窗口长度为奇数 m对此序列进行中值滤波,就是从输入序列 中相续抽出m个数,fi-v,, fi,, fi+v,其中为窗口的中心值v=(m-1) /2,再将这 m个点的数值按其数值大小排列,取其序号为正中间的那个数作为滤波输出。中值滤波表达式为:Fi =Med_v,,仁,f(2-1 )对二维序列Xi,j 的中值滤波,滤波窗口也是二维的,但这种二维窗口可以有 各种不同的形状,如线状、方形、圆形、十字形、圆环形等。二维中值滤波可表 示为:Fi,j = Med &,j,A为滤波窗口(2-2)A在实际使用窗口时,窗口的尺寸一般先用 3 3再取5 5逐渐增大,直到其滤 波效果满

19、意为止。由于中值滤波是非线性运算,在输入和输出之间的频率上不存在对应关系,故不能用一般线性滤波器频率特性的研究方法。设G为输入信号频谱,F为输出信号频谱,定义H二G/F为中值滤波器的频率响应特性,实现表明H是与G有关,呈不规则波动不大的曲线,其均值比较平坦,可以认为信号经中值滤波后, 传输函数近似为1,即中值滤波对信号的频域影响不大,频谱基本不变。2.1.2平滑效果分析图2-3所示的是图像中值滤波前后的效果比较,其中图 2-3(a)是含有噪声 的原图,图2-3 (b)是用中值滤波处理后的图像,滤波窗口为 3X 3,可见,中值 滤波后的图像不仅滤去了椒盐类噪声,而且边缘得到了较好的保护。 带噪声

20、图像(b)消噪后图像图2-3带噪声图像与中值滤波后图像比较2.2灰度调整在成像过程中,扫描系统、光电转换系统中的很多的因素,如光照强弱、感光 部件灵敏度、光学系统不均匀性、元器件特性不稳定等均可造成图像亮度分布的 不均匀,导致某些部分亮,某些部分暗。灰度调整就是在图像采集系统中对图像 像素进行修正,使整幅图像成像均匀。2.2.1灰度调整原理灰度调整可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显, 是图像增强的重要手段之一。在曝光不足或过度的情况下,图像灰度可能会局限在一个很小的范围内。这 时在显示器上看到的将是一个模糊不清、似乎没有灰度层次的图像。采用线性灰 度调整对图像每一个像素

21、灰度作线性拉伸,将有效地改善图像视觉效果。2.2.2灰度调整效果分析(c)原始图像直方图(d)调整后直方图图2-4灰度调整前后直方图比较由图2-4可以看出(b)视觉效果较(a)明显,灰度调整前后直方图的比较可以 看出,调整后直方图(d)去除了原始直方图(c)的噪声直方图,灰度调整后图像明 显清晰了。2.3本章小结为了操作直观,本论文直接对灰度图像进行处理,要是彩色图像,须在操作 前将其转换为灰度图像,本章通过对图像的平滑以及灰度调整,达到了比较明显 的去噪效果。在图像的直方图上也表现得十分明显,这样为后面进行基于直方图 的操作提供了较好的条件。9第三章 基于区域生长法图像分割技术区域生长是一种

22、古老的图像分割方法,最早的区域生长图像分割方法是由Levine等人提出的。该方法一般有两种方式,一种是先给定图像中要分割的目标 物体内的一个小块或者说种子区域,再在种子区域基础上不断将其周围的像素点 以一定的规则加入其中,达到最终将代表该物体的所有像素点结合成一个区域的 目的;另一种是先将图像分割成很多的一致性较强,如区域内像素灰度值相同的 小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的,典型的 区域生长法如T. C. Pong等人提出的基于小面(facet)模型的区域生长法,区域生 长法固有的缺点是往往会造成过度分割,即将图像分割成过多的区域。3.1区域生长法原理区域生长的基

23、本思想是将具有相似性质的象素集合起来构成区域。首先对每 个需要分割的区域找出一个种子象素作为生长的起点,然后将种子象素周围邻域中与种子有相同或相似性质的象素(根据事先确定的生长或相似准则来确定)合并到 种子象素所在的区域中。而新的象素继续做种子向四周生长,直到再没有满足条件的象素可以包括进来,一个区域就生长而成了。现在给出一个区域生长的示例。给出已知矩阵 A:10 4 7 51057510 4 7 7105770 15 5 5015552 0 5 6 520555.2 2 5 6 4 一22555.AB大写的5为种子,从种子开始向周围每个象素的值与种子值取灰度差的绝对 值,当绝对值少于某个门限

24、T时,该象素便生长成为新的种子,而且向周围每个 象素进行生长;如果取门限T=1,则区域生长的结果为B:可见种子周围的灰度值为4、5、6的象素都被很好地包进了生长区域之中,而 到了边界处灰度值为 0、1、2、7的象素都成为了边界,右上角的5虽然也可以 成为种子,但由于它周围的象素不含有一个种子 ,因此它也位于生长区域之外;现在取门限T=3,新的区域生长结果为:55555555555555555555.55555.整个矩阵都被分到一个区域中了。由此可见门限选取是很重要的3.2图像生长法实验方法在实际应用区域生长法时需要解决三个问题:1. 选择或确定一组能正确代表所需区域的种子象素 (选取种子);2

25、. 确定在生长过程中能将相邻象素包括进来的准则 (确定门限);3. 确定让生长过程停止的条件或规则(停止条件)利用迭代的方法从大到小收缩是一种典型的方法,它不仅对2- D图像而且对3-D图像也适用。一般情况下可以选取图像中亮度最大的象素作为种子,或者借助生长所用准责对每个象素进行相应的计算,如果计算结果呈现聚类的情况则接 近聚类重心的象素可以作为种子象素。上面的例子,分析它的直方图可知灰度值为1和5的象素最多且处于聚类的中心,所以可各选一个具有聚类中心灰度值的 象素作为种子。生长准则的选取不仅依赖于具体问题本身,也和所用图像数据种类有关,如彩色图和灰度图。一般的生长过程在进行到再没有满足生长条

26、件的象素时停止,为增加区域生长的能力常需考虑一些与尺寸、形状等图像和目标的全局性质有关 的准则。区域生长的关键是选择合适的生长或相似准则,大部分区域生长准则会使用 图像的局部性质生长准则可以根据不同原理制定,而使用不同的生长准则会影响 区域生长的过程。常用的生长准则和方法有两种 ,即基于区域灰度差的、基于区 域内灰度分布统计性质的。下面给出实验结果:非灰图像LSJ 好直方图转化后灰度图像结果321图像二值化基于区域的分割最主要方法是二值化。二值化方法对由多个实体和一个对比 较强的背景图像所组成的场景图像特别有效。二值化方法一般速度较快,而且使 每个分割出来的物体都具有闭合和连通的边界。图像二值

27、化后信息丢失很严重, 由此得到的边界轮廓可能会不精确。因此,可以用速度较快的二值化方法来获得 一个关于图像分割结果的较粗略的描述。322基于区域灰度差的生长准则在我们使用的区域生长方法中,操作的基本单位是象素,基于区域灰度差的生长 准则步骤如下:1. 对图像进行逐行扫描,找出尚无归属的象素;2. 以该象素为中心,检查它相邻的象素,即将邻域中的象素逐个与它比较,如果 灰度差小于事先确定的阈值,则将它们合并;3. 以新合并的象素为中心,再进行步骤2检测,直到区域不能进一步扩张;4. 重新回到步骤1,继续扫描直到不能发现没有归属的象素,整个生长过程结束。上述方法是先要进行扫描,这对区域生长起点的选择

28、有比较大的依赖性,为 克服这个问题可以改进方法如下:1. 设灰度差的阈值为零,用上述方法进行区域扩张,合并灰度相同的象素;2. 求出所有邻接区域之间的平均灰度差,合并具有最小灰度差的邻接区域;3. 设定终止准则,通过反复进行步骤2中的操作将区域依次合并,直到终止准 则满足为止,生长过程结束。当图像中存在灰度缓慢变化的区域时,上述方法有可能会将不同区域逐步合 并而产生错误。为了克服这个问题,可以不用新象素的灰度值去与邻域象素的灰 度值进行比较,而用新象素所在区域的平均灰度值去与各邻域象素的灰度值进行 比较。对一个有N个象素的图像区域R,灰度均值为:m 二丄v f (x, y)N R对象素的比较为

29、:max | f (x, y) -m | : TR其中T为阈值。如果区域是均匀的,区域内的灰度变化应当尽量小;如果区域是非均值的(一般 情况),且由两部分构成。这两部分象素在 R中所占比例分别为qi和q2,灰度值分 别为m和m,则区域均值为qim+q2m,对灰度值为m的象素,它与区域均值的差 为:Sm=m-(q im+qm)可知正确判决的概率为:1 丄丄P(T) P(|T -Sm|) - P(|T Sm|)2这表明,当考虑灰度均值时,不同部分象素间的灰度差距应该尽量大。323基于区域内灰度分布统计性质的生长准则考虑以灰度分布相似性作为生长准则来决定区域的合并,具体步骤为:1. 把图像分成互不重

30、叠的小区域;2. 比较邻接区域的累积灰度直方图,根据灰度分布的相似性进行区域合并;3. 设定终止准则,通过反复进行步骤2中的操作将各个区域依次合并直到满足终 止准则,生长过程结束。设两个相邻区域的积累灰度直方图分别为 hi(z)和h2(z),常用的两种检测方法为:1. Kolmogorov- Smirnov 检测:max | h(z) h2(z)|2. Smoothed- Differenee检测:、山(门)也(2)|z如果检测结果小于给定阈值 T,则两个区域合并。使用此方法,小区域的尺寸 对结果可能有较大影响,尺寸太小时检测可靠性降低,尺寸太大时得到的区域形 状不理想,小的目标会被漏掉,用S

31、moothed-Differenee 方法检测直方图相似性 时效果Kolmogorov- Smirnov要好,因为它考虑了所有的灰度值。3.3算法流程设计(1) 图像读取:f=imread(ehepai.jpg);figureimshow(f);title( 源图像 );(2) 以种子点对原图像二值分割:seed=220;S=abs(double(f)-double(seed)0s=0;记录判断一点周围八点时,符合条件的新点的灰度值之和count=0;for i=1:M21for j=1:Nif Y(i,j)=1if (i-1)0 & (i+1)0 & (j+1)(N+1) 判断此点是否为图像

32、边界上的点for u= -1:1 判断点周围八点是否符合域值条件for v= -1:1 u,v 为偏移量ifY(i+u,j+v)=0 & abs(I(i+u,j+v)-seed)0.8 判断是否未存在于输出矩阵 Y ,并且为符 合域值条件的点Y(i+u,j+v)=1; 符合以上两条件即将其在 Y 中与之位置对应的点设置为白场count=count+1;s=s+I(i+u,j+v); 此点的灰度之加入 s 中endendendendendendendsuit=suit+count; 将 n 加入符合点数计数器中sum=sum+s; 将 s 加入符合点的灰度值总合中seed=sum/suit; 计

33、算新的灰度平均值end figure,imshow(Y),title( 分割后图像 ) 二,区域生长法算法之二 clc;Clear; imread(C:UsershpDesktopfudiao2.jpg); figure;imshow(I) m,n=size(I);I=double(I); mark(1,1)=I(1,1);mark(1,2)=1; c=1;S=zeros(m,n);S(1,1)=c; %c 为联通区域的数目; 用标记法进行区域划分;将当前目标依次与左前点、左上点、正上点、右上点比较,如果值相似,作相同标记 否则标记 +1 为新的区域。 for i=1:mfor j=1:nif

34、 i=1&j=1;elseif i=1&j=2 对第一行的元素进行区域划分if abs(I(i,j)-I(i,j-1)=2 对第一列的元素进行区域划分if abs(I(i,j)-I(i-1,j)25S(i,j)=S(i-1,j);a=S(i,j); mark(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark(a,2)+1); mark(a,2)=mark(a,2)+1;elseif abs(I(i,j)-I(i-1,j+1)1&j=n 对最右边列进行区域划分if abs(I(i,j)-I(i,j-1)25S(i,j)=S(i,j-1);a=S(i,j); mark(

35、a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark(a,2)+1); mark(a,2)=mark(a,2)+1;elseif abs(I(i,j)-I(i-1,j-1)25S(i,j)=S(i-1,j-1);a=S(i,j); mark(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark(a,2)+1); mark(a,2)=mark(a,2)+1;elseif abs(I(i,j)-I(i-1,j)25S(i,j)=S(i-1,j);a=S(i,j); mark(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark

36、(a,2)+1); mark(a,2)=mark(a,2)+1;else c=c+1;S(i,j)=c;a=S(i,j); mark(a,1)=I(i,j); mark(a,2)=1;endelse % 对中间元素进行区域划分if abs(I(i,j)-I(i,j-1)25 S(i,j)=S(i,j-1);a=S(i,j); mark(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark(a,2)+1); mark(a,2)=mark(a,2)+1;elseif abs(I(i,j)-I(i-1,j-1)25 S(i,j)=S(i-1,j-1);a=S(i,j); ma

37、rk(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark(a,2)+1); mark(a,2)=mark(a,2)+1;elseif abs(I(i,j)-I(i-1,j)25 S(i,j)=S(i-1,j);a=S(i,j); mark(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/(mark(a,2)+1); mark(a,2)=mark(a,2)+1;elseif abs(I(i,j)-I(i-1,j+1)25 S(i,j)=S(i-1,j+1);a=S(i,j); mark(a,1)=(I(i,j)+mark(a,1)*mark(a,2)/

38、(mark(a,2)+1); mark(a,2)=mark(a,2)+1;else c=c+1;S(i,j)=c;a=S(i,j); mark(a,1)=I(i,j); mark(a,2)=1;endendendend b=1;error=0,0;for i=2:m 寻找本属于同一类但因算法而归为异类的区域for j=1:n-2if (abs(I(i,j)-I(i-1,j+2)60target(b)=a; b=b+1;endend寻找是物体的区域对各联通区域用其区域的均值重新赋值; for i=1:mfor j=1:n 4if find(target(:)=S(i,j)a=S(i,j); Y(

39、i,j)=mark(a,1);elseY(i,j)=0;endendend对各联通区域用其区域的均值重新赋值; for a=1:cif mark(a,2)GetDimensions();= sizeImage.cx= sizeImage.cyCSize sizeImage int nWidth int nHeight / 图像在计算机在存储中的实际大小 CSize sizeImageSave = pDib-GetDibSaveDim();/ 图像在内存中每一行象素占用的实际空间 int nSaveWidth = sizeImageSave.cx;/ 初始化memset(pUnRegion,0,

40、sizeof(unsigned char)*nWidth*nHeight);/ 种子点int nSeedX, nSeedY;/ 设置种子点为图像的中心 nSeedX = nWidth /2 ; nSeedY = nHeight/2 ;/ 定义堆栈,存储坐标 int * pnGrowQueX ; int * pnGrowQueY ;/ 分配空间 pnGrowQueX = new int nWidth*nHeight; pnGrowQueY = new int nWidth*nHeight;/ 图像数据的指针unsigned char * pUnchInput =(unsigned char *

41、)pDib-m_lpImage;/ 定义堆栈的起点和终点/ 当 nStart=nEnd, 表示堆栈中只有一个点int nStart ;int nEnd ;/初始化nStart = 0 ;nEnd = 0 ;/ 把种子点的坐标压入栈 pnGrowQueXnEnd = nSeedX; pnGrowQueYnEnd = nSeedY;/ 当前正在处理的象素int nCurrX ;int nCurrY ;/ 循环控制变量int k ;/ 图象的横纵坐标 ,用来对当前象素的邻域进行遍历 int xx;int yy;while (nStart=nEnd)/ 当前种子点的坐标nCurrX = pnGrowQ

42、ueXnStart;nCurrY = pnGrowQueYnStart;/ 对当前点的邻域进行遍历for (k=0; k4; k+)/ 4 邻域象素的坐标 xx = nCurrX + nDxk;yy = nCurrY + nDyk;/ 判断象素 (xx ,yy) 是否在图像内部/ 判断象素 (xx ,yy) 是否已经处理过/ pUnRegionyy*nWidth+xx=0 表示还没有处理象素值差的绝对/生长条件:判断象素 (xx , yy)和当前象素(nCurrX,nCurrY) 值if ( (xx =0) & (yy=0)& (pUnRegionyy*nWidth+xx=0)&abs(pUn

43、chInputyy*nSaveWidth+xxpUnchInputnCurrY*nSaveWidth+nCurrX)nThreshold )/ 堆栈的尾部指针后移一位 nEnd+;/ 象素 (xx, yy) 压入栈pnGrowQueXnEnd = xx; pnGrowQueYnEnd = yy;/把象素(xx, yy)设置成逻辑()/ 同时也表明该象素处理过 pUnRegionyy*nWidth+xx = 255 ; nStart+;/ 释放内存delete pnGrowQueX;delete pnGrowQueY; pnGrowQueX = NULL ; pnGrowQueY = NULL ;9

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!