资源描述
精选优质文档-倾情为你奉上第三章 二值图像分析 一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits)个灰度级很明显,灰度级越高,图像质量越好,但所需的内存也越大在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞 随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统尽管如此,二值视觉系统还是十分有用的,其原因如下: 计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快 二值视觉所需的内存小,对计算设备要求低工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍如若利用游程长度编码等技术(见34节)还可使所需内存进一步减少由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask),物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像 一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性二值图像可用来计算特定任务中物体的几何和拓扑特性,在许多应用中,这种特性对识别物体来说是足够的二值视觉系统已经在光学字符识别、染色体分析和工业零件的识别中得到了广泛应用在下面的讨论中,假定二值图像大小为,其中物体像素值为1,背景像素值为031阈值 视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割把图像划分成区域的过程称为分割,即把图像划分成区域,使得每一个区域对应一个候选的物体下面给出分割的严格定义 定义 分割是把像素聚合成区域的过程,使得:l 整幅图像 (是一个完备分割 )l ,(是一个完备分割)l 每个区域满足一个谓词,即区域内的所有点有某种共同的性质l 不同区域的图像,不满足这一谓词 正如上面所表明的,分割满足一个谓词,这一谓词可能是简单的,如分割灰度图像时用的均匀灰度分布、相同纹理等谓词,但在大多数应用场合,谓词十分复杂在图像理解过程中,分割是一个非常重要的步骤 二值图像可以通过适当地分割灰度图像得到如果物体的灰度值落在某一区间内,并且背景的灰度值在这一区间之外,则可以通过阈值运算得到物体的二值图像,即把区间内的点置成1,区间外的点置成0对于二值视觉,分割和阈值化是同义的阈值化可以通过软件来实现,也可以通过硬件直接完成 通过阈值运算是否可以有效地进行图像分割,取决于物体和背景之间是否有足够的对比度设一幅灰度图像中物体的灰度分布在区间内,经过阈值运算后的图像为二值图像,即: (31)如果物体灰度值分布在几个不相邻区间内时,阈值化方案可表示为: (32)其中Z是组成物体各部分灰度值的集合图31是对一幅灰度图像使用不同阈值得到的二值图像输出结果阈值算法与应用领域密切相关事实上,某一阈值运算常常是为某一应用专门设计的,在其它应用领域可能无法工作阈值选择常常是基于在某一应用领域获取的先验知识,因此在某些场合下,前几轮运算通常采用交互式方式来分析图像,以便确定合适的阈值但是,在机器视觉系统中,由于视觉系统的自主性能(autonomy)要求,必须进行自动阈值选择现在已经研究出许多利用图像灰度分布和有关的物体知识来自动选择适当阈值的技术其中的一些方法将在32节介绍图31 一幅灰度图像和使用不同阈值得到的二值图像结果上左:原始灰度图像,上右:阈值T=100;左下:T=128右下:T1=100|T2=12832 几何特性通过阈值化方法从图像中检测出物体后,下一步就要对物体进行识别和定位在大多数工业应用中,摄像机的位置和环境是已知的,因此通过简单的几何知识就可以从物体的二维图像确定出物体的三维位置在大多数应用中,物体的数量不是很多,如果物体的尺寸和形状完全不同,则可以利用尺度和形状特征来识别这些物体实际上在许多工业应用中,经常使用区域的一些简单特征,如大小、位置和方向,来确定物体的位置并识别它们321 尺寸和位置一幅二值图像区域的面积(或零阶矩)由下式给出: (33) 在许多应用中,物体的位置起着十分重要的作用工业应用中,物体通常出现在已知表面(如工作台面)上,而且摄像机相对台面的位置也是已知的在这种情况下,图像中的物体位置决定了它的空间位置确定物体位置的方法有许多,比如用物体的外接矩形、物体矩心(区域中心)等来表示物体的位置区域中心是通过对图像进行“全局”运算得到的一个点,因此它对图像中的噪声相对来说是不敏感的对于二值图像,物体的中心位置与物体的质心相同,因此可以使用下式求物体的中心位置: (34) 其中和是区域相对于左上角图像的中心坐标物体的位置为: (35)这些是一阶矩注意,由于约定y轴向上,因此方程34和35的第二个式子的等号右边加了负号322 方向 计算物体的方向比计算它的位置稍微复杂一点某些形状(如圆)的方向不是唯一的,为了定义唯一的方向,一般假定物体是长形的,其长轴方向被定义为物体的方向通常,二维平面上与最小惯量轴同方向的最小二阶矩轴被定为长轴 图像中物体的二阶矩轴是这样一条线,物体上的全部点到该线的距离平方和最小给出一幅二值图像,计算物体点到直线的最小二乘方拟合,使所有物体点到直线的距离平方和最小: (36)其中是物体点到直线的距离为了避免直线处于近似垂直时所出现的数值病态问题,人们一般把直线表示成极坐标形式: (37)如图32所示,是直线的法线与x轴的夹角,是直线到原点的距离把点坐标代入直线的极坐标方程得出距离: (38)图32 直线的极坐标表示将方程38代入方程36并求极小化问题,可以确定参数和: (39)令对的导数等于零求解得: (310)它说明回归直线通过物体中心用这一值代入上面的,则极小化问题变为: (311)其中的参数: (312) 是二阶矩表达式可重写为: (313)对微分,并置微分结果为零,求解q 值: (314)因此,惯性轴的方向由下式给出: (315)所以由的最小值可以确定方向轴注意,如果,那么物体就不会只有唯一的方向轴物体的伸长率是的最大值与最小值之比: (316)323 密集度和体态比 区域的密集度(compact)可用下面的式子来度量: (317)其中,和A分别为图形的周长和面积根据这一衡量标准,圆是最密集的图形,其密集密度为最大值,其它一些图形的比值要小一些让我们来看一下圆,当圆后仰时,形状成了一椭圆,面积减小了而周长却不象面积减小的那么快,因此密集度降低了在后仰到极限角时,椭圆被压缩成了一条无限长直线,椭圆的周长为无穷大,故密集度变成了零对于数字图像, 是指物体尺寸(像素点数量)除以边界长度的平方这是一种很好的散布性或密集性度量方法这一比值在许多应用中被用作为区域的一个特征 密集度的另一层意义是:在给定周长的条件下,密集度越高,围成的面积就越大注意在等周长的情况下,正方形密集度大于长方形密集度 体态比定义为区域的最小外接矩形的长与宽之比,正方形和圆的体态比等于1,细长形物体的体态比大于1图3.3所示的是几种形状的外接矩形图3.3 几种外接矩形示意图33 投影给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干条,每一条内像素值为1的像素个数为该条二值图像在给定直线上的投影(projection)当给定直线为水平或垂直直线时,计算二值图像每一列或每一行上像素值为1的像素数量,就得到了二值图像的水平和垂直投影,如图34所示由于投影包含了图像的许多信息,所以投影是二值图像的一种简洁表示方式显然,投影不是唯一的,同样的投影可能对应不同的图像图34 一幅二值图像及其水平投影图在某些应用中,投影可以作为物体识别的一个特征投影既是一种简洁的图像表示,又可以实现快速算法下面介绍对角线投影的求解方法对角线投影的关键是计算当前行和列对应的投影分布图位置标号设行和列的标号分别用和表示若图像矩阵为行列,则和的范围分别为0到和0到假设对角线的标号用行和列的仿射变换(线性组合加上常数)计算,即: (318) 对角线投影共对应个条,其中仿射变换把右上角像素映射成对角线投影的第一个位置,把左下角像素映射成最后一个位置,如图3.5所示,则当前行列对应的标号d的公式为: (319)图35 二值图像及其对角线上的投影图34 游程长度编码 游程长度编码(run-length encoding)是另一种二值图像的简洁表示方法,它是用图像像素值连续为1的个数(像素1的长度)来描述图像这种编码已被用于图像传输另外,图像的某些性质,如物体区域面积,也可以从游程长度编码直接计算出来 在游程长度编码中经常运用两种方法,一种是使用1的起始位置和1的游程长度,另一种是仅仅使用游程长度,但须从1的游程长度开始描述,如图3.6所示0 110011100001111110100011111101111111111111110000010000011111的游程(2,2) (6,3) (13,6) (20,1) (4,6) (11,10) (1,5 ) (11,1) (17,4)1和0的游程长度:0,2,2,3,4,6,1,1 0,3,6,1,10 5,5,1,5,4 图36 一幅简单二值图像的游程长度编码 如果用第二种方法来表示图像每行的游程长度,并用代表图像第行的第个游程长度,则全部1的游程长度之和就是所求物体的面积 (320)其中是第行游程个数,取整,表示1的游程个数由游程长度编码能很容易地计算水平投影而无需变成原来的图像使用更巧妙的方法也能从游程长度编码计算出垂直和对角线投影35 二值图像算法 从背景中分离出物体是一个困难的问题,在此将不讨论这个问题这里假设物体可以从背景中分离,并且使用某一谓词,可以对图像中属于物体的点进行标记因此,问题就变为如何将一幅图像中所有被标记的点组合成物体图像这里还假设物体点在空间上是非常接近的利用空间接近概念可以严格定义,利用此定义研究的算法可以把空间上非常接近的点聚合在一起,构成图像的一个成分(component)下面首先引进一些定义,然后讨论有关算法351 定义(1) 近邻 在数字图像中,一个像素在空间上可能非常接近其它一些像素在用方格表示的数字图像中,一个像素与其它四个像素有公共边界,并与另外四个像素共享顶角如果两个像素有公共边界,则把它们称为4近邻(4-neighbors)同样,如果两个像素至少共享一个顶角,则称它们为8近邻例如,位于的像素有四个4近邻:,它的8近邻包括这四个4近邻,再加上,一个像素被认为与它的4近邻是4连通(4connected)关系,与它的8近邻是8连通关系(如图37)图37 矩形像素网格的4近邻和8近邻示意图像素位于图的中心 (2) 路径 从像素到像素的路径(path)是指一个像素序列, ,其中像素是像素的近邻像素,如果近邻关系是4连通的,则路径是4路径;如果是8连通的,则称为8路径图38即为路径的两个简单例子图38 4路径和8路径示意图 (3) 前景 图像中值为1的全部像素的集合称为前景(foreground),用S表示 (4) 连通性 已知像素,如果存在一条从p到q的路径,且路径上的全部像素都包含在S中,则称p与q是连通的 注意,连通性(connectivity)是等价关系对属于S的任意三个像素p、q和r,有下列性质:1 像素p与p本身连通(自反性)2 如果p与q连通,则q与p连通(互换性)3 如果p与q连通且q与r连通,则p与r连通(传递性) (5) 连通成份 一个像素集合,如果集合内的每一个像素与集合内其它像素连通,则称该集合为一个连通成份(connected component) (6) 背景 S(S的补集)中包含图像边界点的所有连通成份的集合称为背景(background)S中所有其它元称为洞考虑下面的两个图像首先看左图中有几个洞和几个物体如果从前景和背景来考虑4连通,有四个大小为个像素的物体和一个洞如果考虑8连通,那么有一个物体而没有洞直观地,在这两种情况下出现了不确定性情况右图为另一个类似的不确定问题其中如果1是连通的,那么0就应该是不连通的 为了避免这种难以处理的情况,对物体和背景应使用不同的连通如果我们对S使用8连通,那么对S就应使用4连通 (7) 边界 S的边界(boundary)是S中与S中有4连通关系的像素集合边界通常记为 (8) 内部 内部(interior)是中不属于它的边界的像素集合的内部等于 (9) 包围如果从S中任意一点到图像边界的4路径必须与区域T相交,则区域T包围(surrounds)区域S(或S在T内)图39即为一幅简单二值图像和它的边界、内部、包围示意图图39 一幅二值图像与它的边界 , 内部 和包围352连通成份标记 在一幅图像中找出连通成份是机器视觉中最常见的运算之一连通区域内的点构成表示物体的候选区域机器视觉中的大多数物体都有表面,显然,物体表面点投影到图像平面上会形成空间上密集的点集这里应该指出,连通成份算法常常会在二值视觉系统中形成瓶颈效应,原因是连通成份运算是一个全局性的运算,这种算法在本质上是序贯的如果图像中仅有一个物体,那么找连通成份就没有必要;如果图像中有许多物体,且需要求出物体的特性与位置,则必须确定连通成份连通标记算法可以找到图像中的所有连通成份,并对同一连通成份中的所有点分配同一标记图310表示的是一幅图像和已标记的连通成份在很多应用中,要求在标记连通成份的同时算出连通成份的特征,如尺寸、位置、方向和外接矩形下面介绍两种连通成份标记算法:递归算法和序贯算法Jain 1995图3.10 一副图像及其连通成分图像()递归算法 递归算法在串行处理器上的计算效率是很低的,因此,这一算法主要用于并行机上 算法31连通成份递归算法 1 扫描图像,找到没有标记的1点,给它分配一个新的标记L 3 递归分配标记L给1点的邻点 3 如果不存在没标记的点,则停止 4 返回第一步 ()序贯算法 序贯算法通常要求对图像进行二次处理由于这一算法一次仅运算图像的两行,因此当图像以文件形式存贮且空间不允许把整幅图像载入内存时也能使用这一算法这一算法(见算法32)可以查看某一点的邻点,并且可以给像素值为1的邻点分配一个已经使用过的标记如果图像的邻点有两种不同的标记,则用一个等价表(equivalent table)来记录所有的等价标记在第二次处理过程中,使用这一等价表来给某一连通成份中所有像素点分配唯一的标记 本算法在从左到右、从上到下扫描图像时,算法仅能查询到某一像素点的4近邻中的两个近邻点,即上点与左点设算法已经查到了该像素的这两个近邻点,此时出现三种情况:(1) 如果这两个近邻点中没有一点为1,则该像素点需要一个新的标记(2) 如果这两个近邻点中只有一点为1,且分配了标记L,那么该像素点的标记也为L(3) 如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是L;但是当近邻点被分配了不同标记M与N,则这两个标记被用于了同一组元,应该把它们合并在这种情况下,应把其中的一个标记(一般选用最小的那个标记)分配给该像素点,并在等价表中登记为等价标记 等价表包含了给每一连通成份分配唯一标记的信息在第一次扫描中,所有属于同一连通成份的标记被视为是等价的在第二次扫描中,从一个等价集(equivalent set)中选择一个标记并分配给连通成份中所有像素点通常将最小的标记分配给一个连通成份第二次扫描将给每一连通成份分配唯一的标记 在找到所有的连通成份后,应该统计等价表,以便删除其中的空格;然后将等价表作为查找表对图像重新进行扫描,以便重新统计图像中的标记 计算每一连通成份的面积、一阶矩、二阶矩是序贯连通成份算法的一个部分当然,必须使用分离变量来累加每一区域的矩信息当区域合并后,每一区域的矩累计值也应加到一起 算法324连通序贯连通成份算法 1 从左至右、从上到下扫描图像 2 如果像素点为1,则:(a) 如果上面点和左面点有一个标记,则复制这一标记(b) 如果两点有相同的标记,复制这一标记(c) 如果两点有不同的标记,则复制上点的标记且将两个标记输入等价表中作为等价标记(d) 否则给这一个像素点分配一新的标记并将这一标记输入等价表 3 如果需考虑更多的点,则回到第二步 4 在等价表的每一等价集中找到最低的标记 5 扫描图像,用等价表中的最低标记取代每一标记 353 欧拉数在许多应用中,亏格数(genus)或欧拉数可作为识别物体的特征亏格数定义为连通成份数减去空洞数, (321)其中,和分别是欧拉数、连通成份数与空洞数这个式子给出了一个简单的拓朴特征,这种拓扑特征具有平稳、旋转和比例不变特性图311给出了一些例子及其对应的欧拉数 图311 字母“A”、“B”、“”及它们的欧拉数注意前景用了8连通,而背景用了4连通354 区域边界 连通成份S的边界是那些属于S且与S邻接的点集使用简单的局部运算就可找到边界点在大多数应用中,我们都想用一特定的顺序跟踪边界点一般的算法是按顺时针方向跟踪区域的所有点此处讨论一个简单的边界跟踪算法假定物体边界不在图像的边界上(即物体完全在图像内部),边界跟踪算法先选择一起始点,然后跟踪边界直到回到起始点这种算法概括在算法33中这种算法对尺寸大于1个象素的所有区域都是有效的用这种算法求区域8邻点的边界如图312(a)所示为了得到平滑的图像边界,可以在检测和跟踪图像边界后,利用边界点的方向信息来平滑边界。显然,图像边界噪声越大,图像边界点变化越剧烈,图像边界相邻点的方向变化数(与差分链码有一点区别,链码见第七章)也越大根据这一特点,设置一个边界点方向变化数阈值,把方向变化数大于这一阈值的图像边界点滤除,由此可得到平滑的图像边界。图3.12(b)所示的是一个经过平滑过的区域边界示意图,其中的方向变化数阈值为1。注意,由于采用8邻点边界跟踪,因此方向变化数的最大值为4。如果阈值设成4,则对原始边界没有平滑。边界跟踪和平滑常常结合在一起使用,见计算机作业3.5。图312 边界跟踪算法结果,(a) 图像边界跟踪结果;(b)边界跟踪与平滑结果算法33 边界跟踪算法 从左到右、从上到下扫描图像,求区域S的起始点. 用c表示当前边界上被跟踪的像素点置,记c左4邻点为b, 按逆时针方向从b开始将c的8个8邻点分别记为,, 从b开始,沿逆时针方向找到第一个, 置, 重复步骤、,直到。 355 距离测量 在许多应用中,找到一幅图像中两个像素点或两个连通成份之间的距离是很有必要的目前还没有定义数字图像距离的唯一方法,但对所有的像素点p、q和 r,任何距离度量都必须满足下列性质: 1 ,当且仅当时, 2 3 下面是一些常用的距离函数 欧几里德距离: ( 322) 街区距离: (323) 棋盘距离: (324)356 中轴 如果对中像素的所有邻点有下式成立: (325)则中像素到的距离是局部最大值中所有到的距离是局部最大值的像素点集合称为对称轴或中轴,通常记为使用4近邻的中轴变换的一些例子见图313图313b表明少量噪声会使中轴变换结果产生显著的差异 由和中每一点到的距离能重构原始像素集是的简洁表示可用来表示一个区域的形状通过去除中与距离较小的像素点,可以生成一个简化的集 中轴可作为物体的一种简洁表示但是,二值图像中的区域也可用其边界来表示边界跟踪算法可用来获得表示边界的序列点在第七章还将讨论用链码来简洁地表示边界的方法对任意物体,边界将是区域的简洁表示但要明确给定像素点是否在某一区域内,中轴则是更好的表示,因为使用中轴上的像素点和每一个给定像素点的最大距离圆盘(中轴距离变换),可以很容易地检测出给定像素是否在中轴定义的区域中图 313 中轴变换举例357 细化 细化(thinning)是一种图像处理运算,可以把二值图像区域缩成线条,以逼近区域的中心线,也称之为骨架或核线细化的目的是减少图像成份,直到只留下区域的最基本信息,以便进一步分析和识别虽然细化可以用在包含任何区域形状的二值图像,但它主要对细长形(而不是凸圆形或水滴状)区域有效细化一般用于文本分析预处理阶段,以便将文本图像中线条图画或字符笔画表示成单像素线条细化要求如下:(1) 连通图像区域必须细化成连通线结构(2) 细化结果最少应该是8连通(下面将要解释)(3) 保留近似终止线的位置(4) 细化结果应该近似于中轴线(5) 由细化引起的附加突刺(短分支)应该是最小的细化结果应该保证第一条要求中所定义的连通性,这一点是最基本的要求,它保证了连通线结构的数量等于原始图像中连通区域的数量第二条要求保证所得到的线条总是含有8连通图像的最小数量第三条要求说明终止线位置应该保持不变细化可以通过迭代方式不断去除边界点来实现,重要的是在迭代过程中不要去除端点像素,因为这样不仅会缩短细化线,丢掉结构信息,而且不能保持其位置不变第四条要求说明所得线段应能最好地逼近原始区域的中线,如两个像素点宽的竖线或水平线的真正中线应该位于这两个像素之间半个像素间距的位置在数字图像中表示半个像素间距是不可能的,因此得到的结果是一条位于原直线一侧的直线第五条要求没有明确指出噪声的影响控制到最低程度,因为判断噪声本身是一件很难的事一般不希望原始区域含有会引起突刺的隆起,但当某些较大隆起是区域特征时,却必须识别它们应该指出,某些细化算法有去除突刺的参数,不过最好将细化和去除噪声分开进行,这是由于某些情况下不需要的突刺,可能是另一些情况下所需要的短线因此,最好的办法是先进行细化,然后单独去除长度低于某一特定最小值的任何突刺一种常用的细化手段是在至少邻域内检查图像的每一点,剥去区域边界一次剥去一层图像,直至区域被细化成一条线这一过程是用迭代法实现的,如算法4在每次迭代时,每一个像素点用窗函数检查,为了保持连通性或线末端位置,将单像素厚的边界擦除在图314中将会看到,在每次迭代中,值为1的外层区域就是用这种方式削掉的当迭代结果没有变化时,迭代过程结束,图像得到细化算法近邻细化迭代算法i 对于每一个像素,如果() 没有上近邻(下近邻左近邻右近邻)() 不是孤立点或终止线() 去除该像素点不会断开区域 则去除该像素点i 重复这一步骤直到没有像素点可以去除图314 细化手写体“华”的迭代过程(a) 原图像,(b)(f)为五次迭代过程,每次迭代削去一层边界358 扩展与收缩 图像中的一个连通成份可以进行全方位的扩展(expanding)或收缩(shrinking)如果某一连通成份可以变化,使得一些背景像素点变成1,这一运算就称为扩展如果物体像素点全方位地消减或变为0时,则称为收缩一种简单的扩展与收缩实现方法如下: 扩展:如果近邻点是1,则将该点从0变为1 收缩:如果近邻点是0,则将该点从1变为0这样,收缩可以看作是扩展背景这类运算的例子见图315 需要指出,扩展与收缩这样简单的运算可以完成非常有用而又貌似很复杂的运算下面引进符号 : S扩展倍 :S收缩倍 其中下列性质必须满足: 先扩展后收缩算法能补上不希望存在的洞,如图3.15(b)(d)所示;先收缩后扩展算法则能去除孤立的噪声点,见图315(c)(e)请注意,扩展与收缩可用来确定孤立组元或簇注意,扩展后收缩有效地填满了空洞却没有去除噪声;相反,收缩后扩展能去除噪声却没有填满空洞在地形图像处理和膨胀与腐蚀运算中,扩展与收缩算法的一般形式被广泛地用于许多任务中图315 对字母“h”收缩与扩展算法实验结果(a)原始噪声图像;(b) 扩展运算;(c)收缩运算;(d)扩展后收缩运算;(e)收缩后扩展运算36 形态算子 数学形态(morphology)这一名称是从形状研究得来的这种方法也说明了一个事实,即在许多机器视觉算法设计中,根据形状来思考问题是最自然,也是最容易的形态方法有助于进行基于形状或图形思考形态方法中图像信息的基本单元是二值像素 任意两个二值图像和的交是一个二值图像,记为,即与中皆为1的图像点p的集合: (326) 和B的并,记为,是一个二值图像,是或B或两者中为1的所有图像点p的集合,用符号表示为: (327) 设W是全值二值图像(所有的像素值皆为),是二值图像的补集是中1与0互相交换后的二值图像,即: (328) 标号为与的两像素点和,其向量和是标号为的像素点向量差是标号为的像素点 若是二值图像,是二值图像中的一个像素点,则被平移后的二值图像由下式表示: (329)即二值图像被一个像素点平移是指将的原点移到(1) 膨胀 已知二值图像,如果是由二值图像中像素值为1的点平移得到的,则由平移的并称为被膨胀,即; (330) 膨胀具有结合性、交换性这样,在进行膨胀的步骤序列中,完成运算的顺序就不重要了这就允许我们将一个复杂的形状拆成几个简单的形状,然后重新组合成为膨胀序列 (2) 腐蚀 腐蚀是膨胀的相反过程二值图像经二值图像腐蚀后在点仍为1的充分必要条件是:平移到后,中的1像素也是A中的1像素被腐蚀可用下式表示: (331) 二值图像常常是规则图像,是作用于图像中的一种探针,也称为结构元腐蚀在许多应用中起着十分重要的作用结构元对一幅图像进行腐蚀会生成一幅包含结构元所有位置的图像 图316到317是一个倒T形结构元对一个简单物体进行膨胀与腐蚀运算的示意图用结构元进行膨胀或腐蚀运算也可以描述为:结构元的原点像素经过待膨胀的二值图像中所有1像素点时,对应结构元所有像素的待膨胀二值图像像素置为像素;在腐蚀运算过程中,结构元的原点像素经过待腐蚀的二值图像中所有1像素点时,如果结构元中有一个像素没有对应待腐蚀二值图像的像素,则对应结构元原点的待腐蚀二值图像像素置为图316 原始测试图像 (左)与结构元B(右)注意结构元的原点比中的其它像素点要黑一些(a) (b)图317 膨胀与腐蚀实验结果(a)被膨胀,其中原始像素的边界用粗黑线表示(b)被腐蚀,其中原始像素的边界用粗黑线表示 膨胀和腐蚀展示了几何的而不是逻辑的对偶特性,这种特性也包含了几何互补性与逻辑互补性二值图像的几何互补称为它的反射二值图像B的反射是与B关于原点对称的二值图像,即: (332)膨胀与腐蚀的对偶性由下面关系式表示: (333) (334)与几何对偶性相比,逻辑对偶性的关系式为: (335) (336)上式也称为DeMorgan定律 腐蚀与膨胀常常用于图像滤波如果已知噪声特性,则可选用适当的结构元和一系列腐蚀与膨胀运算来去除噪声请注意,这样的滤波会影响图像中物体的形状 数学形态中的基本运算可以组合成很复杂的运算用同一结构元(探针)腐蚀后再膨胀可去除比结构元小的所有区域像素点,而留下其余部分,这一顺序称为“开”运算如,用一圆形的探针将所有比探针小的区域删除,实现抑制加性空域细节的滤波与上述处理顺序相反的过程是膨胀后再腐蚀,称为“关”运算,这种顺序会填满比探针小的孔洞和凹状区这些运算见图318和图317,其中结构元采用了相同的T形结构这里仍然存在一个问题是去除的图像可能与保留的图像一样重要这样的滤波器可用来抑制空域特征或区分基于尺寸的物体类型所用的结构元不一定是简洁的或规则的,可以是任意模式的像素点集合这样可以探测到具有一定分布的图像特征关于数学形态的详细内容参见Dougherty 1988, Haralick 1992 ,关于数学形态在字符识别中的应用见Mitchell 1989.图318“开”运算左:腐蚀;右:膨胀图中的粗黑线表示原始图像边界图319 “关”运算左:膨胀;右:腐蚀图中的粗黑线表示原始图像边界思考题3 1考虑一幅二进制图像如图3.20所示 (a) 分别使用4连通和8连通,求黑像素集合中包含有多少个区域(b) 分别使用4连通和8连通,求白像素集合中包含有多少个区域 图3.20 题3.1图3 2假定图3.21的白色像素是边缘点请分别使用4连通和8连通细化算法去除多余的白点(把去除的白点用阴影线表示) 图3.21 题3.2图3 3连通域标记算法是许多应用中的“瓶颈”问题连通域标记可以看作是视觉系统中连接高层和低层算法的桥梁请你给出一种连通标记快速算法设计的构思?请问能否开发出一种并行算法,为什么?计算机练习题31 开发一个算法来计算区域面积和游程代码的第一、二阶矩32 开发一个中轴算法将这一算法作用于具有不同规则物体的二值图像上,并研究这种技术在表示物体形状时的优点与缺点33 构造一种算法来实现膨胀与收缩运算使用这些算法来实现二值图像中不同噪声的滤波34 设计一个机器视觉系统,该系统可以获取场景的二值图像并识别物体考虑一些常用物体,如,硬币、钢笔、笔记本和其它的办公用品根据你在本章中学到的物体特征来建立物体识别策略,完成所有的运算并测试你的系统专心-专注-专业
展开阅读全文