1、图像分割,课程内容,计算机图像处理的两个目的: 产生更适合人观察和识别的图像 有计算机自动识别和理解图像 图像分割(Image Segmentation): 图像分割 阈值选择与阈值化处理 边界提取和轮廓跟踪 Hough变换 区域生长,图像分割,图像分割的目标是重点根据图像中的物体将图像的像素分类,并提取感兴趣目标 图像分割是图像识别和图像理解的基本前提步骤,图像,图像分割举例,图像分割举例,图像分割是把图像分解成构成的部件和对象的过程 把焦点放在增强感兴趣对象 汽车牌照 排除不相干图像成分:非矩形区域,形式化的定义,形式化定义 令集合R代表整个图像区域,对R的分割可看作将R分成若干个满足以下
2、条件的非空子集(子区域) R1, R2, R3, Rn:,分类分割依据 相似性分割:将相似灰度级的像素聚集在一起。形成图像中的不同区域。这种基于相似性原理的方法也称为基于区域相关的分割技术 非连续性分割:首先检测局部不连续性,然后将它们连接起来形成边界,这些边界把图像分以不同的区域。这种基于不连续性原理检出物体边缘的方法称为基于点相关的分割技术 两种方法是互补的。有时将它们地结合起来,以求得到更好的分割效果。,人眼图像示例,分类连续性与处理策略 连续性: 不连续性:边界 相似性:区域 处理策略:早期处理结果是否影响后面的处理 并行:不 串行:结果被其后的处理利用 四种方法 并行边界;串行边界;
3、并行区域;串行区域,问题 不同种类的图像、不同的应用要求所要求提取的区域是不相同的。分割方法也不同,目前没有普遍适用的最优方法。 人的视觉系统对图像分割是相当有效的,但十分复杂,且分割方法原理和模型都未搞清楚。这是一个很值得研究的问题。 研究层次 图像分割算法 图像分割算法的评价和比较 对分割算法的评价方法和评价准则的系统研究,图像分割的策略,图像分割的基本策略是基于灰度值的两个基本特性: 区域之间的不连续性 先找到点、线(宽度为1)、边(不定宽度) 再确定区域区域内部的相似性 通过选择阈值,找到灰度值相似的区域 区域的外轮廓就是对象的边,点检测,用空域的高通滤波器来检测 孤立点: R= (-
4、1 * 8 * 8 + 128 * 8)/9=106 可以设置阈值T = 64 若R=0,则说明? 若R T,则说 明?,点检测,汽轮机叶片对应的X光图像,点检测的结果,改变阈值的结果,线检测,通过比较典型模板的计算值,确定一个点是否在某个方向的线上 你也可以设计其它模板: 模板系数之和为0 感兴趣的方向系数值较大,线检测,用4种模板分别计算 R水平 = -6 + 30 = 24 R45度 = -14 + 14 = 0 R垂直 = -14 + 14 = 0 R135度 = -14 + 14 = 0 从这些值中寻找绝对值最大值,确定当前点更加接近于该模板所对应的直线,边缘检测,物体的边缘是以图像
5、局部特性的不连续性的形式出现的,从本质上说,边缘意味着一个区域的终结和另一个区域的开始。 图像边缘信息在图像分析和人的视觉中都是十分重要的,是图像识别中提取图像特征的一个重要属性。 是一种并行边界技术,阶跃型 凸缘型 房顶型,边缘导数,边缘检测,边缘上的这种变化可以通过微分算子进行检测: 一阶导数:通过梯度来计算 二阶导数:通过拉普拉斯算子来计算,边缘检测,一阶导数:用梯度算子来计算 特点:对于亮的边,边的变化起点是正的,结束是负的。对于暗边,结论相反。常数部分为零。 用途:用于检测图像中边的存在,边缘检测,二阶导数:通过拉普拉斯来计算 特点:二阶微分在亮的一边是正的,在暗的一边是负的。常数部
6、分为零。 用途:确定边上的像素是在亮的一边,还是暗的一边,0用于确定边的准确位置,最早的边缘检测方法都是基于像素的数值导数的,在数字图像中应用差分代替导数运算。由于边缘是图像上灰度变化比较剧烈的地方,在灰度变化突变处进行微分,将产生高值,因此在数学上可用灰度的导数来表示变化。差分定义:,简单边缘检测方法,图像经过梯度运算能灵敏地检测出边界,但是梯度运算比较复杂。,梯度算子 梯度是图像处理中最为常用的一次微分方法。 图像函数 在点 的梯度幅值为其方向为,对于数字图像,可用一阶差分替代一阶微分:则f(x,y)的梯度幅度可以=?,常用的边缘检测器,给定图像中的一个 3*3区域,使用下面的边缘检测滤波
7、器进行检测,它们都使用一阶导数,边缘检测举例,边缘检测问题,边缘检测中经常碰到的问题是: 图像中存在太多的细节。比如,前面例子中的砖墙 图像受到噪声的干扰,不能准确的检测边缘 解决的一个方法是在边缘检测之前对图像进行平滑,常用的平滑滤波器为高斯(Gauss)函数:,对于图像信号,Marr提出先用高斯函数进行平滑:对图像进行线性平滑,在数学上是进行卷积。,由于边缘点是图像中灰度值变化剧烈的地方,这种图像强度的突变将在一阶导数中产生一个峰,或等价于二阶导数中产生一个零交叉点,而沿梯度方向的二阶导数是非线性的,计算较为复杂。Marr提出用拉普拉斯算子来替代,即用下式的零交叉点作为边缘点。,滤波器具有
8、两个显著的特点:(1)该滤波器中的高斯函数部分能把图像平滑。 (2)该滤波器采用拉普拉斯算子可以减少计算量。 在具体实现 与 之间的卷积运算时: (a)取一个NN的窗口,通常, 时,检测效果较好。(b) 窗口模板内各系数之和为0。,滤波器具有两个显著的特点:(1)该滤波器中的高斯函数部分能把图像平滑。 (2)该滤波器采用拉普拉斯算子可以减少计算量。 在具体实现 与 之间的卷积运算时: (a)取一个NN的窗口,通常, 时,检测效果较好。(b) 窗口模板内各系数之和为0。,平滑后的边缘检测举例,Laplacian 边缘检测,我们曾经碰到过基于2阶导数的Laplacian滤波器Laplacian由于
9、对噪声太敏感,因此一般不单独使用 通常和平滑Gaussian滤波器进行结合来进行边缘检测,高斯拉普拉斯(LOG),高斯拉普拉斯(Laplacian of Gaussian,LOG,或Mexican hat,墨西哥草帽)滤波器使用了Gaussian来进行噪声去除并使用 Laplacian来进行边缘检测,高斯拉普拉斯举例,阈值(Thresholding),图像分割的经典方法是基于灰度阈值的分割方法 我们已经讨论了简单的单值阈值,它把一幅灰度图像转换成二值图像 简单的单值阈值在数学上可以描述为:常用的方法是求解灰度直方图 中的双峰或者多峰,并以两峰之 间的谷底作为阈值,阈值举例,设想电脑玩家手中的扑
10、克牌,我们需要对其进行视觉上的分析,但是小心,如果你设置了错误的阈值,结果是很糟糕的,全局阈值(Global Thresholding),全局阈值是指整幅图像使用同一个阈值做分割处理,并产生一个二值图,区分出前景对象和背景。 适用于背景和前景对比度大的图像 算法实现: 选取一个合适的阈值T,逐行扫描图像 凡灰度级大于T的,颜色置为255;凡灰度级小于T的,颜色置为0,基本的全局阈值算法,基本的全局阈值T可以按如下计算: 1、选择一个初时估计值T (一般为图像的平均灰度值) 2、使用T分割图像,产生两组像素:G1包括灰度级大于T的像素,G2包括灰度级小于等于T的像素 3、计算G1 中像素的平均值
11、并赋值给1,计算G2 中像素的平均值并赋值给2 4、计算一个新的阈值: 5、重复步骤 2 4,一直到两次连续的T之间的差小于预先给定的上界T,阈值举例1,选择直方图中 双峰之间的谷底 作为全局阈值,阈值举例2,通过算法迭代产生全局阈值,单值阈值的问题,单值阈值只能对双峰直方图工作得较好 对于其它类型的直方图,需要更多的阈值,单值阈值和光照,不均匀的光照会使单值阈值方案失效,基本的自适应阈值,解决单值阈值无法工作的一个方法是将图像分割为子图像,并分别进行阈值化处理 由于每个像素的阈值依赖于其在图像中的位置,因此称为自适应(adaptive)阈值,基本的自适应阈值举例,下图为对前面提到的图像进行自
12、适应阈值后的图像 我们看到图像得到了改善,但是需要对出错的图像进行进一步的细分,从而得到更好的效果,Hough变换,Hough(霍夫)变换可以用于将边缘像素连接起来得到边界曲线,它的主要优点在于受噪声和曲线间断的影响较小,Hough变换,Hough变换的基本思想: 在xy平面内的一条直线可以表示为: 将a、b作为变量,ab平面内直线可以表示为: 如果点(x1,y1)与点(x2,y2)共线,那么这两点在参数ab平面上的直线将有一个交点 在参数ab平面上相交直线最多的点,对应的xy平面上的直线就是我们的解 这种从线到点的变换就是Hough变换,Hough变换,得到点A(a,b)是我们的解,(a,b
13、)对应到图像坐标系xy中所求直线的斜率和截距,Hough变换,算法思想: 将a,b 空间量化成许多小格。根据图像内的每个(x0,y0)点代入a的量化值,算出各个b,所得值(经量化)落在某个小格内,便使该小格的计数累加器加1,当全部(x,y)点变换后,对小格进行检验,有大的计数值的小格对应于共线点,其(a,b )值作为直线的拟合参数。,Hough变换,算法特点: 对a、b量化过粗,直线参数就不精确,过细则计算量增加。因此,对a、b量化要兼顾参数量化精度和计算量。 Hough变换检测直线的抗噪性能强,能将断开的边缘连接起来。 此外Hough变换也可用来检测曲线,比如圆、椭圆等,区域生长,分割的目的
14、是把一幅图像划分成一些区域,最直接的方法就是把一幅图像分成满足某种判据的区域,即将点组成区域。为了实现分组,首先要确定区域的数目,其次要确定一个区域与其他区域相区别的特征,最后还要产生有意义分割的相似性判据。,分割区域的一种方法叫区域生长或区域生成。假定区域的数目以及在每个区域中单个点的位置已知,则从一个已知点开始,加上与已知点相似的邻近点形成一个区域。相似性准则可以是灰度级、彩色、组织、梯度或其他特性,相似性的测度可以由所确定的阈值来判定。从满足检测准则的点开始,在各个方向上生长区域,当其邻近点满足检测准则就并入小块区域中。当新的点被合并后再用新的区域重复这一过程,直到没有可接受的邻近点时生
15、成过程终止。,从满足检测准则的点开始(或者已知点)在各个方向上生长出区域。例如:每一步所接受的邻近点的灰度级与种子点的灰度级相差绝对值小于等于T。起始:,区域生长的过程,具体步骤: 1 对图像进行扫描,找到第一个还没有归属的像素,设该像素为(x0,y0) 2 以(x0,y0)为中心,考虑它的4邻域像素(x,y),如果(x,y)满足生长准则,则将(x,y)与(x0,y0)合并,同时将(x,y)压入堆栈。 3 从堆栈中取出一个像素,同它当做(x0,y0),回到步骤2 4 当堆栈为空时,回到步骤1 5 重复1-4步,直到图像中的每个点都有归属时,生长结束,1 T=3,种子点是2,11 2 T=5,种子点是2生长完的图像是什么样子?,