数字图像处理第九章 图像分割
图像数字处理图像分割
图像数字处理图像分割图像分割是图像数字处理中的一项重要技术,它将图像中的像素点划分成多个区域,以便更好地理解和分析图像。
在本文中,我将介绍图像分割的原理、常用方法及其应用领域。
一、图像分割的原理图像分割的目标是将图像划分成一系列具有相似特征的区域,使得每个区域内的像素点具有相同或相似的属性。
它的基本原理是通过寻找像素点之间的差异来确定区域边界。
常用的图像分割方法包括阈值分割、边缘检测和区域生长等。
阈值分割是最简单的分割方法,它根据像素点的灰度值与预设的阈值进行比较,将像素点分为不同的区域。
边缘检测通过检测图像中的边缘信息来进行分割,常用的方法有Sobel算子和Canny算子。
区域生长是利用像素之间的相似性来逐步迭代地合并像素点,直到形成连续的区域。
二、常用的图像分割方法1. 基于阈值的分割方法:阈值分割是最简单且常用的分割方法之一。
它根据像素点的灰度值与预设的阈值进行比较,将像素点分为不同的区域。
常用的阈值分割方法有全局阈值分割和自适应阈值分割。
2. 基于边缘检测的分割方法:边缘检测是一种常用的图像分割方法,它通过检测图像中的边缘信息来进行分割。
常用的边缘检测方法有Sobel算子、Canny算子等。
3. 基于区域生长的分割方法:区域生长方法是利用像素之间的相似性来逐步迭代地合并像素点,直到形成连续的区域。
它常用于分割具有明显纹理特征的图像。
三、图像分割的应用领域图像分割在计算机视觉、医学影像处理、遥感图像分析等领域具有广泛的应用。
以下列举几个典型的应用领域:1. 目标检测与识别:图像分割可以帮助检测和识别图像中的目标物体,如人脸识别、车辆检测等。
2. 医学影像处理:在医学影像中,图像分割可以帮助医生准确地定位和分析病变区域,如肿瘤检测、血管分割等。
3. 遥感图像分析:遥感图像通常包含大量的地物信息,通过图像分割可以将不同类型的地物区分开来,如土地利用分类、城市区域划分等。
4. 视频分析:图像分割在视频分析中扮演重要角色,可以提取视频中的运动目标,如行人检测、行为分析等。
精品文档-数字图像处理(第三版)(何东健)-第9章
第9章 图像编码
它将标量数据组织成一系列k维矢量, 根据一定的失真测 度(如均方误差、 lp范数、 极大范数等)在码书中搜索出 与输入矢量失真最小的码字的索引, 传输时仅传输相应码字 的索引,接收方根据码字索引在码书中查找对应码字, 再现 输入矢量。 矢量量化编码的核心是码书设计, 经典的码书设 计算法有LBG(Linde, Buzo和Gray三人的首字母) 算法(又称为K-means算法)。 码书设计过程就是寻求把M 个训练矢量分成N类(N<M)的一种最佳方案(如均方误差最 小), 并把各类的中心矢量作为码书中的码字。
第9章 图像编码 9.1.2
人们不断提出新的图像编码方法, 如基于人工神经网络 的编码、 子带编码(Sub band Coding)、 分形编码 (Fractal Coding)、 小波编码(Wavelet Coding)、 基 于模型的编码(Model based Coding)、 基于对象的编码 (Object based Coding)和基于语义的编码(Semantic Based Coding)等。
(2) 预测编码。 预测编码是基于图像数据的空间或时 间冗余特性, 它用相邻的已知像素(或像素块)来预测当 前像素(或像素块)的取值, 然后再对预测误差进行量化和 编码。 预测编码可分为帧内预测和帧间预测, 常用的预测编 码有差分脉码调制(DPCM, Differential Pulse Code Modulation)和运动补偿法。 图9-1和图9-2分别给出了无损 预测编码和有损预测编码系统的原理图,均包括编码器和解码 器, 其中符号编码器通常采用变长编码。
第9章 图像编码 信息熵是无损编码的理论极限, 当平均码长大于等于信 息熵时, 总可设计出一种无失真编码, 这是熵编码的理论基 础。 若使用相同长度的码字表示信源符号, 则称该编码方法 为等长编码, 否则称为变长编码。 变长编码的基本原理是给 出现概率较大的符号赋予短码字, 而给出现概率较小的符号 赋予长码字, 从而使得最终的平均码长很小。 哈夫曼编码和 香农-范诺编码就是两种变长编码方法。
数字图像处理---图像分割
数字图像处理---图像分割图像分割概述图像分析概念:对图像中感兴趣的⽬标进⾏检测和测量,以获得它们的客观信息,从⽽建⽴对图像的描述步骤:1. 图像分割2. 特征识别3. 对象分类4. 建⽴联系概述图像分割概念:将图像划分为互不重叠的区域并提取感兴趣⽬标的技术基本策略:基于灰度值的两个基本特性:不连续性和相似性通过检测不连续性先找边,后确定区域通过检测相似性,在⼀定阈值下找到灰度值相似区域,区域外轮廓即为对象边界⽅法基于边缘的分割⽅法:先提取区域边界,再确定边界限定区域区域分割:确定每个像素归属区域,从⽽形成区域图区域⽣长:将属性接近的连通像素聚集成区域分裂-合并分割:即存在图像划分,也存在图像合并边缘检测算⼦---边缘分割法边缘定义:图像中像素灰度有阶跃变化或屋顶变化的像素的集合分类:阶跃状屋顶状特点:属于⾼频信号区域往往为闭合连线边缘检测流程滤波⇒增强⇒检测⇒定位边缘检测算⼦基本思想:计算局部微分算⼦⼀阶微分:⽤梯度算⼦进⾏运算特点:对于阶跃状变化会出现极⼤值(两侧都是正值,中间最⼤)对于屋顶状变化会过零点(两侧符号相反)不变部分为0⽤途:检测图像中边的存在注意事项:由于结果图中存在负值,因此需要处理后使⽤处理⽅法:取绝对值加最⼩值阈值法⼆阶微分:通过拉普拉斯算⼦计算特点:对于阶跃状变化会过零点(两侧符号相反)对于屋顶状变化会出现负极⼤值(两侧都是正值,中间最⼩)不变部分为0⽤途:检测图像中边的存在常⽤边缘检测算⼦Roberts 算⼦Prewitt 算⼦Sobel 算⼦Kirsch 算⼦Laplacian 算⼦Marr 算⼦交叉⽅向⼀阶锐化问题:锐化处理结果对具有矩形特征的物体的边缘提取较为有效,但是对于不规则形状的边缘提取,则存在信息上的缺损解决思想:利⽤⽆⽅向的锐化算法交叉微分算⼦交叉Roberts 算⼦公式:f ′x =|f (x +1,y +1)−f (x ,y )|f ′y =|f (x +1,y )−f (x ,y +1)|模板:f ′x =−1001,f ′y =01−1特点:算法简单,对噪声敏感,效果较梯度算⼦较好交叉Prewitt 算⼦模板:d ′x =011−101−1−10,d ′y =−1−10−101011特点:与Sobel 相⽐有⼀定抗⼲扰性,图像效果较⼲净交叉Sobel 算⼦模板:d ′x =012−101−2−10,d ′y =−2−10−101012特点:锐化的边缘信息较强kirsch 算⼦(⽅向算⼦)模板:特点在计算边缘强度的同时可以得到边缘⽅向各⽅向间的夹⾓为45°分析取其中最⼤的值作为边缘强度,与之对应的⽅向作为边缘⽅向若取最⼤值绝对值,则仅需要前四个模板即可Nevitia 算⼦[][][][][][]特点:各⽅向间的夹⾓为30°Laplacian算⼦同图像增强中的Laplacian算⼦优点:各向同性、线性和位移不变对细线和孤⽴点检测效果较好缺点对噪声敏感,有双倍加强作⽤不能检测出边缘⽅向常产⽣双像素边缘使⽤之前需要对图像进⾏平滑Marr算⼦在Laplacian算⼦基础上发展⽽来平滑函数采⽤⾼斯正态分布函数h(x,y)=e−x2+y2 2σ2σ为⽅差⽤h(x,y)对图像f(x,y)平滑克表⽰为g(x,y)=h(x,y)∗f(x,y) *代表卷积令r表⽰从原点出发的径向距离,即r2=x2+y2利⽤⾼斯-拉普拉斯滤波器(LOG滤波器)▽2h=(r2−2σ2σ4)e−r22σ2即可利⽤⼆阶导数算⼦过零点的性质,确定图像中阶跃边缘的位置在该算⼦中σ越⼩边缘位置精度越⾼,边缘细节变化越多;σ越⼤平滑作⽤越⼤,但是细节损失越⼤,边缘点定位精度越低过程1. 通过⼆维⾼斯函数对图像进⾏卷积降噪2. ⽤⼆阶导数差分算⼦计算图像强度的⼆阶导数3. 利⽤⼆阶导数算⼦过零点的性质,确定图像中阶跃边缘的位置优点:能快速得到⼀个闭合的轮廓缺点:对噪声敏感Canny边缘检测算⼦最优边缘检测算⼦应有的指标低误判率⾼定位精度抑制虚假边缘过程:1. 计算图像梯度2. 梯度⾮极⼤值抑制3. 双阈值提取边缘点计算图像梯度⾼斯函数的⼀阶导数模板:−11−11,−1−111⾮极⼤值抑制 NMS思想:梯度幅值图像M(x,y),仅保留梯度⽅向上的极⼤值点过程初始化N(x,y)=M(x,y)对每⼀点在梯度⽅向和反梯度⽅向各找n 个点,若M(x,y)⾮最⼤值,则置零,否则保持不变对NMS 结果⼆值化(双阈值提取边缘点)使⽤两个阈值T 1,T 2:T 2>>T 1由T 1得到E 1(x ,y ),低阈值边缘图:更⼤的误检率由T 2得到E 2(x ,y ),⾼阈值边缘图:更可靠边缘连接初始化E (x ,y )=E 2(x ,y )对E (x ,y )中的每个点在E 1(x ,y )中寻找延长部分进⾏连接输出E (x ,y )Canny 边缘检测算⼦步骤1. ⾼斯滤波器平滑2. ⼀阶偏导计算梯度幅值与⽅向3. 对梯度幅值进⾏⾮极⼤值抑制4. 双阈值算法检测连接边缘Canny 边缘检测算⼦优点参数较⼩计算效率⾼得到边缘连续完整双阈值选择T Low =T HIGH ∗0.4曲⾯拟合法出发点:基于差分检测图像边缘的算⼦往往对噪声敏感四点拟合灰度表⾯法⽤⼀平⾯p (x ,y )=ax +by +c 来拟合四邻域像素灰度值定义均⽅差为ε=∑[p (x ,y )−f (x ,y )]2模板a =12−1−111,b =12−11−11特点:先平均后求差分,对噪声由抑制作⽤边缘跟踪出发点:噪声边检测需要归整边缘像素概念:将检测的边缘点连接成线过程:边缘提取连接成线⽅法光栅扫描跟踪法全向跟踪法光栅扫描跟踪法概念:采⽤电视光栅⾏扫描顺序,结合门限检测,对遇到的像素进⾏分析并确定其是否是边缘的跟踪⽅法具体步骤:[][][][]确定检测阈值d(较⾼)超过d的点作为对象点确定跟踪阈值t(较低)确定跟踪邻域扫描下⼀⾏,跟踪邻域内灰度差⼩于t的,接受为对象点若没有对象点,则该曲线跟踪结束重新从下⼀⾏开始利⽤d寻找对象点并进⾏跟踪扫描结束后跟踪结束特征可以不是灰度级跟踪准则根据具体问题灵活运⽤最好再进⾏⼀次其他⽅向的跟踪全向跟踪Hough变化检测法问题:如何连接边界点集基本思想利⽤xoy直⾓坐标系直线y=ax+b,待求极坐标系内点(ρ,θ),已知求点到线的变化ρ=xcosθ+ysinθ原理:过每个点的直线系分别对应极坐标系上的⼀条正弦曲线,如正弦曲线存在共同交点(ρ′,θ′),则必定在平⾯上共线实现:使⽤交点累积器或直⽅图,寻找相交线段最多的参数空间的点,再寻找对应的直线线段特点:对ρ、θ量化过粗会导致直线参数不精确,过细会导致计算量增加获得直线抗噪能⼒强可以⽤来检测直线阈值分割法基本思想:通过阈值T⽣成⼆值图,在四邻域中有背景的像素就是边界像素特点:适⽤于物体与背景有强对⽐的情况下,且物体或背景的灰度较单⼀可以先求背景再求物体可以得到封闭且连通区域的边界通过交互获得阈值通过直⽅图得到阈值基本思想:边界上的点灰度值出现次数较少⽅法:选取直⽅图⾕底的最⼩灰度值作为阈值缺点:会受到噪声⼲扰改进:取两个峰值之间的某个固定位置降噪简单图像的阈值分割判断分析法最佳熵⾃动阈值法复杂图像的阈值分割步骤⾃动平滑直⽅图确定区域类数⾃动搜索多个阈值特征空间聚类k均值聚类步骤任意选取K个初始聚类中⼼值使⽤最⼩距离判别,将新读⼊的像素分⾄K类重新计算中⼼值,等于⼀类元素的平均值重新聚类直⾄新旧差异不⼤区域增长通过像素集合的区域增长实现:根据应⽤选取种⼦选择描述符种⼦根据描述符扩张直⾄没有新的节点加⼊集合简单区域扩张法以未划分点与起点灰度差⼩于阈值T作为描述符优缺点:1. 不好确定阈值2. ⽆法分割缓慢变化边界质⼼区域增长法以未划分点与区域平均灰度值差⼩于阈值T作为描述符分裂合并法实现:1. 对于灰度级不同的区域划分为四个⼦区域2. 若相邻⼦区域所有像素灰度级相同,则合并3. 反复进⾏直⾄不再进⾏新的分裂合并操作Processing math: 100%。
图像分割-数字图像处理
【例7.1】根据4/8连通准则在二值图像中判断目标。
解:应用函数bwlabel可以根据4连通或8连通准则,在给定 的二值图像矩阵BW中寻找目标。MATLAB程序:
BW = [1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 L4 = bwlabel(BW,4) L8 = bwlabel(BW,8) 0 0 0 1 1 1 1 0 0; 0; 0; 0; 0; 0; 0; 0];
1 g ( x, y) 0 f ( x, y) T f ( x, y) T
(7.1)
这样得到的是一幅二值图像。 图7.4给出了利用阈值分割图像的实例。
(a)是原图 (b)是对应的直方图 (c)是选择分割阈值为110的结果图。
110点 (a)原图像 (b)直方图 图7.4 阈值分割 (c)已分割的图
根据8连通准则,得到目标 是2个: L8 =1 1 1 0 0 0 0 0 1 1 1 0 2 2 0 0 1 1 1 0 2 2 0 0 1 1 1 0 0 0 2 0 1 1 1 0 0 0 2 0 1 1 1 0 0 0 2 0 1 1 1 0 0 2 2 0 1 1 1 0 0 0 0 0
7.3.2
自适应阈值的选取
当照明不均匀、有突发噪声或者背景灰度变化 比较大的时候,可以对图像进行分块处理,对 每一块分别选定一个阈值进行分割,这种与坐 标相关的阈值称为自适应阈值的方法。
这类算法的时间复杂度和空间复杂度比较大,但是 抗噪声的能力比较强 。
任何一种分割方法都有其局限性。
实际的算法只能根据实际情况选择方法和阈值。
9第九章数字图像处理之图像分割资料
10/29/2018
对图像g(x,y)采用Laplacian算子进行边缘检测,可得:
g h( x, y ) * f ( x, y ) (
2 2
r
2
2
4
)e
e2 2 2
* f ( x, y )
2 h * f ( x, y )
• 模板:可以用多种方式被表示为数字形式。定义数字形式的拉普拉斯 的基本要求是,作用于中心像素的系数是一个负数,而且其周围像素 的系数为正数,系数之和必为0。对于一个3x3的区域,经验上被推荐 最多的形式是:
0
1 0
10/29/2018
1
-4 1
0
1 0
1 1
1 -8
1 1
1
1
1
• 拉普拉斯算子的分析: – 优点: • 各向同性、线性和位移不变的; • 对细线和孤立点检测效果较好。 – 缺点: • 对噪音的敏感,对噪声有双倍加强作用; • 不能检测出边的方向; • 常产生双像素的边缘。
• 公式:
f x f ( x 1, y 1) f ( x 1, y 1) f y f ( x 1, y 1) f ( x 1, y 1)
• 模板:
-1
1 1
fx
’
fy’
-1
• 特点:与梯度算子检测边缘的方法类似,对噪声敏感,但效果较梯度 算子略好。
10/29/2018
例1:
原始图像
梯度算子
Roberts算子
Prewitt算子
10/29/2018
Sobel算子
Kirsch算子
数字图像处理~图像分割
2 -1 -1 -1 2 -1 -1 -1 2
水平模板
45度模板
垂直模板 135度模板
线检测
用4种模板分别计算
R水平 = -6 + 30 = 24 R45度 = -14 + 14 = 0 R垂直 = -14 + 14 = 0 R135度 = -14 + 14 = 0
从这些值中寻找绝对值最大值,确定当前点更加接 近于该模板所对应的直线
阶跃型
凸缘型
房顶型
边缘检测
边缘上的这种变化可以通过微分算子进行检测:
一阶导数:通过梯度来计算 二阶导数:通过拉普拉斯算子来计算
边界图像 截面图
边缘检测
一阶导数:用梯度算子来计算
特点:对于亮的边,边的变化起点是正的,结束是负 的。对于暗边,结论相反。常数部分为零。 用途:用于检测图像中边的存在
边缘检测
(2)该滤波器采用拉普拉斯算子可以减少计算量。
在具体实现 f x, y 与 2G 之间的卷积运算时:
(a)取一个N×N的窗口,通常,N 3 时,检测效果较好。 (b) 窗口模板内各系数之和为0。
原始图像
平滑后的边缘检测举例
水平梯度部分
垂直梯度部分
组合得到边缘图像
Laplacian 边缘检测
对于图像信号,Marr提出先
用高斯函数进行平滑:
G x, y,
1
e
1 2
2
x2 y2
2 2
对图像进行线性平滑,在数 学上是进行卷积。
gx, y Gx, y, f x, y
由于边缘点是图像中灰度值变化剧烈的地方,这种图像强度的突变将在一阶导数中产 生一个峰,或等价于二阶导数中产生一个零交叉点,而沿梯度方向的二阶导数是非线 性的,计算较为复杂。Marr提出用拉普拉斯算子来替代,即用下式的零交叉点作为边 缘点。
数字图像处理-图像分割-讲义PPT
图像分割
图像分割概论
图像分割的目的是理解图像的内容,提取出我们感兴趣的对象。 图像分割按照具体应用的要求和具体图像的内容将图像分割成一块块区域。 图像分割是模式识别和图像分析的预处理阶段。 通常图像分割采用聚类方法,假设图像中组成我们所感兴趣对象的像素具有一些相 似的特征,如相同的灰度值、相同的颜色等。 传统的图像分割技术: 基于像素灰度值的分割技术 基于区域的分割技术 基于边界的分割技术 图像的描述,包括边界和区域的描述
在标注一个像素点的纹理特征时很可能是多维数据,如距离、方向、灰度变化等等。
纹理分析的自相关函数方法
自相关函数的定义 若有一幅图像f(i, j), i, j=0, 1, …, N-1, 它的自相关函数为:
f (i, j ) f (i x, j y ) i 0 j 0 f 2 (i, j ) i 0 j 0
对图像区域的操作―数学形态学
灰度阈值分割法
灰度阈值分割法是最古老的分割技术 只能应用于图像中组成感兴趣对象的灰度值是均匀的,并且和背景的灰度值不一样。 事先决定一个阈值,当一个像素的灰度值超过这个阈值,我们就说这个像素属于我们 所感兴趣的对象;反之则属于背景部分。 这种方法的关键是怎样选择阈值,一种简便的方法是检查图像的直方图,然后选择一 个合适的阈值。 如果图像适合这种分割法,那么图像的直方图在表示对象和背景的小范围灰度值附近 出现一个高峰值。适合这种分割法的图像的直方图应是双极模式,我们可以在两个峰 值之间的低谷处找到一个合适的阈值。 单一阈值方法也不适合于由许多不同纹理组成一块块区域的图像。
灰度共生矩阵表示空间灰度值依赖性的概率,这个灰度共生矩阵是对称的; 不仅仅和两个像素之间的距离有关,还跟两个像素之间的空间角度有关。
《数图》第9章 图像分割和描述
Digital Image Processing
4
1)基于边界的图像分割 )基于边界的图像分割 --先检测图像边界,再连接目标边界的轮廓线。 --先检测图像边界,再连接目标边界的轮廓线。 先检测图像边界
边界检测: 算子、 算子、 边界检测:Robert算子、Prewitt算子、梯度算子、拉普拉斯算子、 算子 算子 梯度算子、拉普拉斯算子、 Canny算子、高斯-拉普拉斯算子等。 算子、高斯 拉普拉斯算子等 拉普拉斯算子等。 算子
区域增长法、区域分裂合并法、分水岭算法等。 区域增长法、区域分裂合并法、分水岭算法等。
三种基本的图像分割既可单独使用,也可综合使用。 三种基本的图像分割既可单独使用,也可综合使用。
Digital Image Processing 5
第2节 基于边界的分割 节
基于边界的图像分割: 基于边界的图像分割: 1)边缘检测,检测出图像中可能的边缘点, )边缘检测,检测出图像中可能的边缘点, 2)边缘连接,按一定策略连接成轮廓,实现不同区域的分割。 )边缘连接,按一定策略连接成轮廓,实现不同区域的分割。 边缘检测技术: 边缘检测技术:
Digital Image Processing
2
第1节 图像分割简述 节
1.图像分割的定义 图像分割的定义
图像分割--通过对图像不同特征的分析,将图像分割成各具特性的区域, 图像分割--通过对图像不同特征的分析,将图像分割成各具特性的区域, --通过对图像不同特征的分析 提取出感兴趣目标的技术和过程。 提取出感兴趣目标的技术和过程。
并行边缘检测:当前像素点是否属于边缘,取决于当前正在检测的像素点以及该 并行边缘检测:当前像素点是否属于边缘, 像素点的一些相邻像素点; 像素点的一些相邻像素点; 串行边缘检测:当前像素点是否属于边缘,取决于先前像素的验证结果。 串行边缘检测:当前像素点是否属于边缘,取决于先前像素的验证结果。 (在实际中应用较少) 在实际中应用较少)
数字图像处理第九章图像分割(共94张精选PPT)
导数的零交叉点。
分割的关键问题是如何将边缘线段组合成更长的
边缘。
应该注意到,这些定义并不能保证在一幅图像中成功地找
到边缘。它们只是给了一个寻找边缘的形式体系。
边缘检测基本步骤
滤波:改善与噪声有关的边缘检测器的性能;一般滤波
器降噪导致了边缘的损失;增强边缘和降低噪声之间
转换为黑白二值图像,
0
f (x, y) T
g(x, y) =
255 f (x, y) T
以上原理用MATLAB实现很简单,其实是将图像中所有的灰
阶值与T相比较,大于T的返回1,小于T的返回0,我们得到一
个只有0和1的矩阵,将其显示为图像,就是一幅二值图像。
可以用函数im2bw来实现上述操作。
, 具有最大
的k即是最佳阈值.
用h(x,y)对图像f(x,y)的平滑可表示为:
一阶
二阶
边缘和导数
阶跃边缘、脉冲边缘、屋顶边缘的灰度剖面
线及其一阶、二阶导数。
边缘点的判定
判断一个点是否为边缘点的条件:该点的灰度变
化(一阶导数)必须比指定的门限大。
一组这样的依据事先定好的连接准则相连的边缘
点就定义为一条边缘。
希望得到的特点)
(2)一条连接极值点的虚构直线将在边缘中点附近穿过,
该性质对于确定粗边线的中心非常有用。
图象
剖面
1.在ρ、θ的极值范围内对其分别进行m,n等分,设一个二维数组的下标与ρi、θj的取值对应;
边缘检测判据是二阶导数零交叉点并对应一阶导数的峰值.
tr=uint8(r.
(3) 边缘的“宽度”取决于斜坡的长度.
L 1
数字图像处理:图像分割
数字图像处理:图像分割数字图像处理:图像分割前⾔:这个实验分成两部分代码,分别对应1和21. 膨胀:将与⽬标区域的背景点合并到该⽬标物中,使⽬标物边界向外部扩张的处理,把⼆值图像各1像素连接成分的边界扩⼤⼀层。
具体操作为:图像中关⼼的像素(结构元素B中值为1的部分)有1,则结果赋值为1,没有1,则赋值0。
腐蚀:消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法,把⼆值图像各1像素连接成分的边界点去掉从⽽缩⼩⼀层。
2. 开操作:先腐蚀再膨胀,可以去掉⽬标外的孤⽴点闭操作:先膨胀再腐蚀,可以去掉⽬标内的孔。
注:别忘了图⽚的路径改成⾃⼰的⼀、实验⽬的理解和掌握图像分割的基本理论和算法,练习使⽤形态学、区域、边界和阈值的⽅法结合图像增强复原的相关知识对图像进⾏分割处理。
⼆、实验内容1.读⼊⼀幅图像,对图像进⾏如下操作:(1) ⽤膨胀腐蚀等形态学⽅法对图像进⾏去噪、增强处理。
改变结构元素,观察处理后的图像是否有明显的差别。
(2) ⽤开操作和闭操作等形态学⽅法去除指纹图像中的细⼩颗粒,连接断裂的指纹。
(3) 在上⼀步⽤形态学⽅法处理后的指纹图像基础上,运⽤全局阈值实现图像的⼆值化。
2.读⼊⼀幅图像,利⽤边缘检测和分⽔岭⽅法(watershed)对图像进⾏前景分割。
在调⽤watershed函数前,利⽤prewitt算⼦或者全局阈值等⽅法增强图像边缘。
实验结果图如下:1. 第⼀部分实验结果(两种图⽚来观察结果,此外我在作腐蚀时改变了两种结构元素来进⾏观察)2. 第⼆部分实验结果(两种图⽚来观察结果):代码如下:###### 第⼀部分代码%⼿动实现膨胀和腐蚀%img=imread('finger_noise.tif');img=im2bw(imread('test.png'));figure('name','实验结果');number=5;% 定义number⾏图⽚subplot(number,3,1);imshow(img);title('原图');subplot(number,3,4);imshow(img);title('原图');subplot(number,3,7);imshow(img);title('原图');B=[0 1 01 1 10 1 0]; %结构元素[row,col]=size(img);%获得图像的⾼和宽%对img进⾏膨胀imgdilate=img;for i=2:row-1for j=2:col-1pitch=img(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))>0imgdilate(i,j)=1;%⾮零则赋值1elseimgdilate(i,j)=0;%零则仍赋值0endendendsubplot(number,3,2);imshow(imgdilate);title('膨胀后结果');%对img进⾏腐蚀imgerode=img;C=sum(B(:)); %结构元素B中关⼼的元素个数for i=2:row-1for j=2:col-1pitch=img(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))<Cimgerode(i,j)=0;elseimgerode(i,j)=1;endendendsubplot(number,3,3);imshow(imgerode);title('腐蚀后结果');B= [1 1 1;1 1 1;1 1 1]%更改结构元素[1 1 1;1 1 1;1 1 1],[1 0 1;0 1 0;1 0 1] %开操作(对腐蚀后的图像再进⾏⼀次膨胀)imgopen=imgerode;for i=2:row-1for j=2:col-1pitch=imgerode(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))>0 %⾮零则赋值1imgopen(i,j)=1;elseimgopen(i,j)=0;%零则仍赋值0endendendsubplot(number,3,5);imshow(imgopen);title('开操作后结果,结构元素为[1 1 1;1 1 1;1 1 1]');%闭操作(对膨胀后的图像再进⾏⼀次腐蚀)imgclose=imgdilate;C=sum(B(:)); %结构元素B中关⼼的元素个数for i=2:row-1for j=2:col-1pitch=imgdilate(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))<Cimgclose(i,j)=0;elseimgclose(i,j)=1;endendendsubplot(number,3,6);imshow(imgclose);title('闭操作后结果,结构元素为[1 1 1;1 1 1;1 1 1]');B= [1 0 1;0 1 0;1 0 1]%更改结构元素[1 1 1;1 1 1;1 1 1],[1 0 1;0 1 0;1 0 1] %开操作(对腐蚀后的图像再进⾏⼀次膨胀)imgopen=imgerode;for i=2:row-1for j=2:col-1pitch=imgerode(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))>0 %⾮零则赋值1imgopen(i,j)=1;elseimgopen(i,j)=0;%零则仍赋值0endendendsubplot(number,3,8);imshow(imgopen);title('开操作后结果,结构元素为[1 0 1;0 1 0;1 0 1]');%闭操作(对膨胀后的图像再进⾏⼀次腐蚀)imgclose=imgdilate;C=sum(B(:)); %结构元素B中关⼼的元素个数for i=2:row-1for j=2:col-1pitch=imgdilate(i-1:i+1,j-1:j+1);convtmp= pitch.*B; %⽤img中的⼀块与结构元素作卷积if sum(convtmp(:))<Cimgclose(i,j)=0;elseimgclose(i,j)=1;endendendsubplot(number,3,9);imshow(imgclose);title('闭操作后结果,结构元素为[1 0 1;0 1 0;1 0 1]');subplot(number,3,10);imshow(imgdilate);title('原图');%确定全局阈值TT=0.5*(double(min(imgdilate(:)))+double(max(imgdilate(:))));%设置初始阈值为最⼤灰度和最⼩灰度值和的⼀半done=false;while ~doneg=imgdilate>=T;%分成两组像素,灰度值⼤于或者等于T的和灰度值⼩于T的Tnext=0.5*(mean(imgdilate(g))+mean(imgdilate(~g)));%新阈值两个范围内像素平均值和的⼀半done=abs(T-Tnext)<0.5; %0.5是⾃⼰指定的参数T=Tnext;endimout2=im2bw(imgdilate,T);subplot(number,3,11);imshow(imout2);title('膨胀后全局⼆值化');%确定全局阈值TT=0.5*(double(min(imgerode(:)))+double(max(imgerode(:))));%设置初始阈值为最⼤灰度和最⼩灰度值和的⼀半done=false;while ~doneg=imgerode>=T;%分成两组像素,灰度值⼤于或者等于T的和灰度值⼩于T的Tnext=0.5*(mean(imgerode(g))+mean(imgerode(~g)));%新阈值两个范围内像素平均值和的⼀半done=abs(T-Tnext)<0.5; %0.5是⾃⼰指定的参数T=Tnext;endimout3=im2bw(imgerode,T);subplot(number,3,12);imshow(imout3);title('腐蚀后全局⼆值化');第⼆部分代码%pic =imread('finger.tif')pic =imread('rice.tif')number=2subplot(number,3,1);imshow(pic);title('原图');% 使⽤prewitt算⼦增强G=imfilter(pic,fspecial('prewitt'));%⽣成’prewitt’模板,并对输⼊图像做边缘增强,再加上原图像subplot(number,3,2);imshow(G);title('prewitt算⼦增强后图像');L=watershed(G); %分⽔岭算法wr=L==0; %取出边缘subplot(number,3,3);imshow(wr);title('分⽔岭');pic(wr)=255;subplot(number,3,5);imshow(uint8(pic));title('前景分割结果');。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最大方差阈值选取法
实现过程: 从T从0~L-1逐一改变,每变一次,对应一个
具有最大 2 K 讨论: * 此方法可操作性强; 的k即是最佳阈值. 2 K
,
* 无论图像有无双峰都可得到较满意结果;
* 局部图像二值化效果更好 * 可推广到双阈值图像分割
实现方法先用graythresh将图像的阈值求出来,得到的是一个介于 0和1之间的数,而后利用im2bw得到阈值分割后的结果。
一阶图象锐化算子
算子运算时是采取类似卷积的方式,将模板在图像上移 动并在每个位置计算对应中心像素的梯度值,所以对 一幅灰度图求梯度所得的结果是一幅梯度图。 1.梯度算子 梯度对应一阶导数,对于一个连续图像函数f(x,y):
梯度矢量定义: f ( x, y ) = G x G y T = x y 梯度的幅度:
实际边缘水平剖面图
9.7边缘和导数
f f’
x x
边缘一阶导数 边缘二阶导数
边缘的剖面线
f”
x
从左到右进入和离开
沿着剖面线 斜面的变化点
获得
(1)在灰度级变化的区域一阶导数为正 (2) 在灰度级不变的区域一阶导数为零。 (3) 在边缘与黑色一边相关的跃变点二阶导数为正 (4) 在边缘与亮色一边相关的跃变点二阶导数为负 (5) 沿着斜坡和灰度为常数的区域二阶导数为零。 在图4中导数的符号在从亮到暗的跃变中边缘处取反。
t=imread('test1.tif');
imshow(tr>100)
9.4选取合适的阈值
在图像的阈值化处理过程中,选用不同的阈值其处理结果
差异很大;
阈值过大,会提取多余的部分;
阈值过小,又会丢失所需的部分;
因此,阈值的选取非常重要。
大津阈值,把直方图在某一阈值处分割成两组,当被分成
的两组间方差为最大时,决定阈值.设一幅图像的灰度值
第九章 图像分割
9.1引言
图像分割就是将一幅图像中的目标物分离出来。
1)先通过看图理解图像分割的概念
– 将图像分解成构成它的部件和对象 – 有选择地定位感兴趣对象在图像中的位置和范围
• 图像分割的基本思路
– 从简到难,逐级分割 – 控制背景环境,降低 分割难度 – 把焦点放在增强感兴 趣对象,缩小不相干 图像成分的干扰上
应该注意到,这些定义并不能保证在一幅图像中成功地找
到边缘。它们只是给了一个寻找边缘的形式体系。
边缘检测基本步骤 滤波:改善与噪声有关的边缘检测器的性能;一般 滤波器降噪导致了边缘的损失;增强边缘和降低 噪声之间需要折衷. 锐化:将邻域灰度值有显著变化的点突显出来.一 般是通过计算梯度幅值来完成的. 检测:最简单的边缘检测判据是梯度幅值阈值 定位:边缘的位置和方位在子像素分辨率上估计。
t=graythresh(c3)
t=
0.4275
>> ct=im2bw(c3,t); p1=c3(:,1:64); >> imshow(ct) p2=c3(:,65:128);
p3=c3(:,129:192);
p4=c3(:,193:256); g1=im2bw(p1,graythresh(p1));
3)图像分割的基本原理
图像分割是将图像划分成若干个互不相交 的小区域的过程,小区域是某种意义下具有共 同属性的像素的连通集合。
• 如不同目标物体所占的图像区域、前景所占的 图像区域等; • 连通是指集合中任意两个点之间都存在着完全 属于该集合的连通路径; • 对于离散图像而言,连通有4连通和8连通之分, 如下图所示。
fun=inline('im2bw(x,graythresh(x))');
>> c4=blkproc(c3,[256,64],fun); >> imshow(c4)
9.6边缘检测 • 图像的边缘对人的视觉具有重要意义。一般而
言,当人们看一个有边缘的物体时,首先觉 到的便是边缘。 • 边缘是一个区域的结束,也是另一个区域的开 始.利用边缘可以分割图像。
为0~L-1级,灰度值i的像素数为ni,则像素总数
ni 各值的概率 pi = , 用k将其分成两组C0={0~k}和 N
N = ni
i =0 L 1
C1={k+1~L-1},各组产生的概率如下: C0和C1产生的概率分别为
w(k ) = pi
i =1 k
和
k =
i = k 1
-1
-1
0
0
1
1
ic=imread('peppers.tif'); >> px=[-1 0 1;-1 0 1;-1 0 1]; >> icx=filter2(px,ic); >> figure,imshow(icx/255)
imshow(im2bw(x,map,0.45)&~im2bw(x,map,0.5))
这样的方法有点慢,这是因为当处理输入图像时计算比 较复杂。
9.3阈值法的应用
1.去除不关心的细节,突出关心的内容。
2.显示出隐藏的细节
3.对随机的图像背景进行单一化的处理。
r=rand(256)*128+127;
2) 概述
数字图像处理按其技术特征可以分为三层结构:
图像处理;
图像分析; 图像理解与识别;
无论是图像处理、分析、理解与识别,其基础工 作一般都建立在图像分割的基础上; 将图像中有意义的特征或者应用所需要的特征信 息提取出来;
图像分割的最终结果是将图像分解成一些具有某 种特征的单元,称为图像的基元;
•
一阶导数可以用于检测图像中的一个点是否是 边缘的点(也就是判断一个点是否在斜坡上)。 • 二阶导数的符号可以用于判断一个边缘像素是 在边缘亮的一边还是暗的一边。 • 二阶导数的附加性质: (1)对图像中的每条边缘二阶导数生成两个极值 (一个不希望得到的特点) (2)一条连接极值点的虚构直线将在边缘中点附近 穿过,该性质对于确定粗边线的中心非常有用。
f
f
T
2 2 f ( x, y ) = mag (f ( x, y )) = (G x G y )1 2
梯度的方向: f ( x, y ) = arctan(G y Gx )
用差分来近似梯度:
Gx = f [i, j 1] f [i, j ] G y = f [i, j ] f [i 1, j ]
L 1
pi
w(k ) (k ) = pi = 1
i =0
L 1
整幅图像的灰度平均值为
T = ipi
i =0
2 T
L 1
2
k k (k ) =
k k
从0~L-1之间改变k,求上式为最大值时的k,既是最大方差阈值, 也称为大津阈值。
p=im2bw(r,0.3);
>> imshow(p)
Im2bw中的参数第一个是图像,第二个level是一个介于 0和1之间的数,此时阈值为T=M*level。 还可以用阈值法获得图像中的隐藏信息。如图9.3所示, 左图看上去是均匀的,但如果我们将阈值设为241则可 以看到,产生右图的效果,有一些本来看不到的隐藏信 息将显现出来。
• 图像分割是进行图像分析的关键步骤, 也是进一步理解图像的基础; • 不同种类的图像,不同的应用要求所需 要提取的特征不相同,特征提取方法也 就不同; • 不存在一种所谓普遍适用的最优方法。
图像分割
设R代表整个图像区域,对R的分割可看作将R分成若 干个满足以下5个条件的非空子集(子区域)R1,R2,…,Rn。 n (1)U Ri = R 。即分割成的所有子区域的并应能构成原 i =1 来的区域R。 (2)对于所有的i和j及i≠j,有 Ri I R j = f 。即分割 成的各子区域互不重叠。 (3)对于i=1,2,…,n;有P(Ri)=TRUE。即分割得到的 属于同一区域的像素应具有某些相同的特性。 (4)对于i≠j,有P(Ri∪Rj)=FALSE。即分割得到的属 于不同区域的像素应具有不同的性质。 (5)对于i=1,2,…,n;Ri是连通的区域。即同一子区 域内的像素应当是连通的。
二、双阈值 我们选择两个阈值T1和T2,
255 g ( x, y ) = 0
T2 f ( x, y ) T1 f ( x, y )其他
[x,map]=imread('spine.tif'); s=ind2gray(x,map); imshow(s),figure,imshow(s>115 & s<125)
9.5自适应阈值
当前景内容和背景内容都具有多个灰阶时,这时不适用全
局阈值,只能够进行局部阈值的操作,自适应阈值就可以
应用在这样的场合。
c=imread('circles.tif'); >> x=ones(256,1)*[1:256]; >> c2=double(c).*(x/2+50)+(1-double(c)).*x/2; >> c3=uint8(255*mat2gray(c2)); >> imshow(c3)
相对于整幅图像来说,这种图像基元更容易被快 速处理。
图像特征 • 图像特征是指图像中可用作标志的属性,它可 以分为统计特征和视觉特征两类。 • 图像的统计特征是指一些人为定义的特征,通 过变换才能得到,如图像的直方图、矩、频谱 等; • 图像的视觉特征是指人的视觉可直接感受到的 自然特征,如区域的亮度、纹理或轮廓等。
j 对应于x轴方向,i对应于y负轴方向,用简单卷积模板表示:
2. Prewitt梯度算子