通知
此博客运行在jpress系统上,如果你喜欢此博客模板,请加QQ群:1061691290(whimurmur模板/jpress插件),免费下载使用

数字图像处理基础-图像分割

1814人浏览 / 0人评论 | 作者:whisper  | 分类: 数字图像处理  | 标签: 数字图像处理  | 

作者:whisper

链接:http://proprogrammar.com:443/article/872

声明:请尊重原作者的劳动,如需转载请注明出处


对图像分割的一点理解(大白话):图像分割是要把一幅分为不重不漏的很多区域,同一个区域的性质相似,而不同区域则性质不同。如果知道了物体的边缘,那可以通过边缘把物体给分开,所以边缘检测是图像分割的一种方法,检测出的边缘可能性质不是很好,如有断裂,所以需要处理,所以要有边缘连接;还可以通过阈值分割,如灰度阈值分割;还可以通过区域分割,如区域生长法,区域分裂合并法;要分割出一个区域,用二值图像表示就可以了,如区域边缘用白色,其它用黑色,而不考虑其它

定义

图像分割(Image Segmentation) :
将数字图像划分成互不相交(不重叠)区域的过程。
连通(Connection):
在一个连通集中的任意两个像素之间,存在一条完全由这个集合的元素构成的连通路径。
区域(Region) :
像素的连通集。即是一个所有像素都有相邻或相接触像素的集合。

边缘检测

分割图像的物体可以通过确定图像中物体的边界来完成
• 当图像中各个像素的灰度级用来反映各像素符合边缘像素要求的程度时,这种图像被称为边缘图像或边缘图(edgemap)。
• 边缘图可用表示边缘点的位置而没有强弱程度的二值图像来表示。
• 一幅边缘图通常用边缘点勾画出各个物体的轮廓,但很少能形成图像分割所需要的闭合且连通的边界。因此需要进行边缘点连接才能完成物体的检测过程。
• 边缘点连接就是一个将邻近的边缘点连接起来从而产生一条闭合的连通边界的过程。这个过程填补了因为噪声和阴影的影响所产生的间隙。

• 当人看一个有边缘的物体时,首先感觉到的是边缘。
• 在边缘处,灰度和结构等信息产生突变。
• 边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。
图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。
边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。

image.png

image.png

基于一阶导数的边缘检测算子包括Roberts算子、Sobel算子、Prewitt算子等。
拉普拉斯(Laplacian)边缘检测算子是基于二阶导数的边缘检测算子。

image.png

下面是用差分来近似微分运算

image.png

image.png

image.png

image.png

image.png

拉普拉斯算子一般不以其原始形式用于边缘检测。
这是因为:
(1)作为一个二阶导数,拉普拉斯算子对噪声具有无法接受的敏感性;
(2)拉普拉斯算子的幅值产生双边缘,这是复杂的分割不希望有的结果;
(3)拉普拉斯算子不能检测边缘的方向。
一种改进方式是先对图像进行平滑处理,然后再应用二阶导数的边缘检测算子。

高斯-拉普拉斯算子

image.png

image.png

image.png

性能比较

• Roberts算子:Roberts算子利用局部差分算子寻找边缘,边缘定位精度较高,但容易丢失一部分边缘,不具备抑制噪声的能力。该算子对具有陡峭边缘且含噪声少的图像效果较好。
• Sobel算子和Prewitt算子:都是对图像先做加权平滑处理,然后再做微分运算,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。虽然这两个算子边缘定位效果不错,但检测出的边缘容易出现多像素宽度。
• Laplacian算子:是不依赖于边缘方向的二阶微分算子,对图像中的阶跃型边缘点定位准确,该算子对噪声非常敏感,它使噪声成分得到加强,这两个特性使得该算子容易丢失一部分边缘的方向信息,造成一些不连续的检测边缘,同时抗噪声能力比较差。

算子比较

LOG算子:该算子首先用高斯函数对图像作平滑滤波处理,然后才使用Laplacian算子检测边缘,因此克服了Laplacian算子抗噪声能力比较差的缺点,但是在抑制噪声的同时也可能将原有的比较尖锐的边缘也平滑掉了,造成这些尖锐边缘无法被检测到。应用LOG算子,高斯函数中方差参数σ的选择很关键,对图像边缘检测效果有很大的影响。
高斯滤波器为低通滤波器,σ越大,通频带越窄,对较高频率的噪声的抑制作用越大,避免了虚假边缘的检出,同时信号的边缘也被平滑了,造成某些边缘点的丢失。
反之,σ 越小,通频带越宽,可以检测到的图像更高频率的细节,但对噪声的抑制能力相对下降,容易出现虚假边缘。因此,应用LOG算子,为取得更佳的效果,对于不同图像应选择不同参数。

边缘连接

利用前面的方法检测出边缘点,但由于噪声、光照不均等因素的影响,获得边缘点有可能是不连续的,必须使
用连接过程将边缘像素组合成有意义的边缘信息,以备后续处理。
填充小的间隙可以简单地实现,通过搜索一个以某端点为中心的5×5或更大的邻域,在邻域中找出其它端点并填充上必要的边界像素,从而将它们连接起来。对具有许多边缘点的复杂场景,这种方法可能会对图像过度分割。
为了避免过度的分割,可以规定:两个端点只有在边缘强度和走向相近的情况下才能连接。

image.png

从图像中一个边缘点出发,然后根据某种判别准则搜索下一个边缘点以此跟踪出目标边界。
确定边界的起始搜索点,起始点的选择很关键,对某些图像,选择不同的起始点会导致不同的结果。
确定合适边界判别准则搜索准则,判别准则用于判断一个点是不是边界点,搜索准则则指导如何搜索下一个边缘点。确定搜索的终止条件。

image.png

Hough 变换

Hough变换的基本步骤:
1)在参数空间建立一个二维数组A,数组的第一维的范围为图像空间中直线斜率的可能范围(amin, amax),第二维为图像空间中直线截距的可能范围(bmin, bmax),且开始时把数组初始化为零。
2)然后对图像空间中的点用Hough变换计算出所有的a,b值,每计算出一对a,b 值,就对数组中对应的元素A(a,b)加1.计算结束后, A(a,b)的值就是图像空间中落在以a为斜率,b为截距的直线上点的数目。

image.png

image.png

区域分割

阈值分割法由于没有或很少考虑空间关系,使得阈值分割方法受到限制。
基于区域的分割方法可以弥补这点不足,它利用的是图像的空间性质,该方法认为分割出来的属于同一区域的像素应具有相似的性质,其概念是相当直观的。
传统的区域分割算法有区域生长法和区域分裂合并法。该类方法在没有先验知识可以利用时,对含有复杂场
景或自然景物等先验知识不足的图像进行分割, 也可以取得较好的性能。但是,空间和时间开销都比较大。

基本公式

image.png

区域生长法

区域生长是一种根据事先定义的准则将像素或子区域聚合成更大区域的过程.
区域生长法主要考虑像素及其空间邻域像素之间的关系。开始时确定一个或多个像素点作为种子
然后按某种相似性准则增长区域,逐步生成具有某种均匀性的空间区域,将相邻的具有相似性质的像素或区域归并从而逐步增长区域,直至没有可以归并的点或其它小区域为止。
区域内像素的相似性度量可以包括平均灰度值、纹理、颜色等信息。

image.png

步骤
选择合适的种子点
确定相似性准则(生长准则)
确定生长停止条件

区域分裂与合并

(1)区域分裂法

如果区域的某些特性差别比较大,即不满足一致性准则时,则区域应该采用分裂法,分裂过程从从图像的最大区域开始,一般情况下,是从整幅图像开始。
注意:
确定分裂准则(一致性准则)
确定分裂方法,即如何分裂区域,使得分裂后的子区
域的特性尽可能都满足一致性准则。

算法
(1)形成初始区域
(2)对图像的每一个区域Ri,计算P(Ri),如果P(Ri)=FALSE则沿着某一合适的边界分裂区域
(3)重复步骤(2),当没有区域需分裂时,算法结束。

(2)区域合并法

基本思想
单纯的区域分裂只能把图像分成许多满足一致性谓词的区域,相邻的具有相同性质的区域并没有合成一体。
合并运算就是把相邻的具有相似性质的区域合成为一个区域

合并算法中最重要的运算是确定两个区域的相似性
评判区域相似性方法有许多,可以基于区域的灰度值,也可以基于区域边界的强弱性等因素。一种简单的方法是比较它们的灰度均值

image.png

(3)区域分裂合并

区域分裂合并法无需预先指定种子点,它按某种一致性准则分裂或者合并区域。
可以先进行分裂运算,然后再进行合并运算;也可以分裂和合并运算同时进行,经过连续的分裂和合并,最后得到图像的精确分割效果。
分裂合并法对分割复杂的场景图像比较有效。

image.png

image.png

image.png

二值图像处理

二值图像是只具有两个灰度级的图像,它是数字图像的一个重要子集。
一个二值图像通常是由一个图像分割操作产生的。
如果初始的分割不够令人满意,对二值图像的某些形式的处理通常能提高其质量。

image.png

image.png

数学形态学图像处理(Morphological Image Processing

在通常的情况下,形态学图像处理以在图像中移动一个结构元素并进行一种类似于卷积操作的方式进行。
在每个像素位置,结构元素核与它下面的二值图像之间进行一种特定的逻辑运算。逻辑运算的二进制结果存在输出图像中对应于该像素的位置上。
产生的效果取决于结构元素的大小、内容以及逻辑运算的性质。

image.png

集合论术语(Definition)

image.png

腐蚀(Erosion)

image.png

image.png

image.png

简单的腐蚀是消除物体的所有边界点的一种过程,其结果使剩下的物体沿其周边比原物体小一个像素的面积。
如果物体是圆的,它的直径在每次腐蚀后将减少2个像素。如果物体任一点的宽度少于三个像素,则它在该点将变为非连通的(变为两个物体)。
在任何方向的宽度不大于2个像素的物体将被除去。腐蚀对从一幅分割图像中去除小且无意义的物体来说是很有用的。

膨胀(Dilation)

image.png

image.png

image.png

简单膨胀是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点。
如果物体是圆的,它的直径在每次膨胀后增大两个像素。如果两个物体在某一点相隔少于三个像素,它们将在该点连通起来(合并成一个物体)。
膨胀在填补分割后物体中的空洞很有用。

image.png

开运算和闭运算(Open Operation and Close Operation)

image.png

image.png

【例8.8】使用开运算除去图像的某些部分。
图8.32(a)显示的二值图像包含边长为1,3,5,7,9和15个像素的正方形。假设我们只想留下最大的正方形而除去其他的正方形,可以通过用比我们要保留的对象稍小的结构元素对图像进行开运算。这里我们选择13x13像素大小的结构元素。图8.32
(b)显示了用这个结构元素对原图像进行腐蚀后得到的结果,此时只保留了3个最大正方形的点。再用同样大小的结构元素对这3个正方形进行膨胀恢复它们原来15x15像素的尺寸,如图8.32(c)所示。

image.png

【例8.9】形态学滤波的开运算和闭运算的应用。
图8.33(a)中的二值图像显示了受噪声污染的部分指纹图像。这里噪声表现为黑色背景上的亮元素和亮指纹部分的暗元素。我们的目的是消除噪声及它对印刷所造成的影响,使图像失真尽可能减小。由开运算后紧跟着进行闭运算形成的形态学滤波器可用于实现这个目的。

image.png

一些基本形态学算法(Some Basic Morphological Algorithms)

以前面的讨论作为背景,我们现在可以考虑一些形态学的实际用途。当处理二值图像时,形态学的主要应用是提取对于描绘和表达形状有用的图像成分。形态学算法如提取边界、连通分量、凸壳、区域骨架等,预处理或后处理方法如区域填充、细化、粗化、修剪等,这些算法非常重要,在实际中非常有用。限于篇幅,这里不一一介绍,仅对边界提取和区域填充进行讨论,其余内容可以参考其他相关资料。

image.png

image.png

下面讨论一个简单的区域填充的算法,它以集合的膨胀、求补和交集为基础。在图8.35中,A表示一个包含子集的集合,其子集的元素均是区域的8连通边界点。目的是从边界内的一个点开始,用1填充整个区域。
这里的二值图像用1显示阴影区域,0显示白色。所有的非边界(背景)点标记为0,以1赋给p点开始。下面过程将整个区域用1填充:

image.png

image.png

定义:将一个曲线形物体细化为一条单像素宽的线,从而图形化地显示出其拓扑性质。
腐蚀可编程过程:
第一步:满足一个正常的腐蚀。
第二步:只将那些消除后并不破坏连通性的点消除,否则保留。

定义:一个与细化有关的运算,也称为中轴变换(Medialaxis transform)或焚烧草地技术(grassfire
technigue)。
抽骨架的实现与细化相似.可采用一个两步有条件腐蚀实现,但是删除像素的规则略有不同。

image.png

总结

图像分割是一个将一幅数字图像划分为不交叠的、连通的像素集的过程,其中一个对应于背景,其它的则对应于图像中的各个物体。
利用为物体指定其像差或找出物体之间(或物体和背景之间)边界的方法来实现图像分割;在图像分割之前进行背景平滑和噪声消除,常常能改善分割时的性能。
图像分割中采用自适应阈值方法较采用直方图分割具有较好的分割效果。
针对较为复杂的图像我们则可以采用区域分割技术来实现。


亲爱的读者:有时间可以点赞评论一下

点赞(0) 打赏

全部评论

还没有评论!