第03章 北理工贾云德《计算机视觉》二值图象分析.docx

上传人:b****6 文档编号:6265668 上传时间:2023-01-04 格式:DOCX 页数:23 大小:50KB
下载 相关 举报
第03章 北理工贾云德《计算机视觉》二值图象分析.docx_第1页
第1页 / 共23页
第03章 北理工贾云德《计算机视觉》二值图象分析.docx_第2页
第2页 / 共23页
第03章 北理工贾云德《计算机视觉》二值图象分析.docx_第3页
第3页 / 共23页
第03章 北理工贾云德《计算机视觉》二值图象分析.docx_第4页
第4页 / 共23页
第03章 北理工贾云德《计算机视觉》二值图象分析.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第03章 北理工贾云德《计算机视觉》二值图象分析.docx

《第03章 北理工贾云德《计算机视觉》二值图象分析.docx》由会员分享,可在线阅读,更多相关《第03章 北理工贾云德《计算机视觉》二值图象分析.docx(23页珍藏版)》请在冰豆网上搜索。

第03章 北理工贾云德《计算机视觉》二值图象分析.docx

第03章北理工贾云德《计算机视觉》二值图象分析

第三章二值图像分析

一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits)个灰度级.很明显,灰度级越高,图像质量越好,但所需的内存也越大.

在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上.人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞.

随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统.尽管如此,二值视觉系统还是十分有用的,其原因如下:

⑴计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快.⑵二值视觉所需的内存小,对计算设备要求低.工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍.如若利用游程长度编码等技术(见3.4节)还可使所需内存进一步减少.由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短.(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上.在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask,物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点.在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来.因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像.

一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的.当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况.二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性.二值图像可用来计算特定任务中物体的几何和拓扑特性,在许多应用中,这种特性对识别物体来说是足够的.二值视觉系统已经在光学字符识别、染色体分析和工业零件的识别中得到了广泛应用.

在下面的讨论中,假定二值图像大小为m⨯n,其中物体像素值为1,背景像素值为0.

3.1阈值

视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难.为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割.把图像划分成区域的过程称为分割,即把图像F[i,j]划分成区域p1,p2,⋅⋅⋅,pk,使得每一个区域对应一个候选的物体.下面给出分割的严格定义.定义分割是把像素聚合成区域的过程,使得:

*k

i=1Pi=整幅图像({Pi}是一个完备分割.

*PiPj=∅,i≠j,({Pi}是一个完备分割.

*每个区域Pi满足一个谓词,即区域内的所有点有某种共同的性质.

*不同区域的图像,不满足这一谓词.

正如上面所表明的,分割满足一个谓词,这一谓词可能是简单的,如分割灰度图像时用的均匀灰度分布、相同纹理等谓词,但在大多数应用场合,谓词十分复杂.在图像理解过程中,分割是一个非常重要的步骤.

二值图像可以通过适当地分割灰度图像得到.如果物体的灰度值落在某一区间内,并且背景的灰度值在这一区间之外,则可以通过阈值运算得到物体的二值图像,即把区间内的点置成1,区间外的点置成0.对于二值视觉,分割和阈值化是同义的.阈值化可以通过软件来实现,也可以通过硬件直接完成.

通过阈值运算是否可以有效地进行图像分割,取决于物体和背景之间是否有足够的对比度.设一幅灰度图像F[i,j]中物体的灰度分布在区间[T1,T2]内,经过阈值运算后的图像为二值图像FT[i,j],即:

⎧1如果T1≤F[i,j]≤T2FT[i,j]=⎨(3.1⎩0其它

如果物体灰度值分布在几个不相邻区间内时,阈值化方案可表示为:

⎧1如果F[i,j]∈ZFT[i,j]=⎨(3.20其它⎩

其中Z是组成物体各部分灰度值的集合.图3.1是对一幅灰度图像使用不同阈值得到的二值图像输出结果.

阈值算法与应用领域密切相关.事实上,某一阈值运算常常是为某一应用专门设计的,在其它应用领域可能无法工作.阈值选择常常是基于在某一应用领域获取的先验知识,因此在某些场合下,前几轮运算通常采用交互式方式来分析图像,以便确定合适的阈值.但是,在机器视觉系统中,由于视觉系统的自主性能(autonomy)要求,必须进行自动阈值选择.现在已经研究出许多利用图像灰度分布和有关的物体知识来自动选择适当阈值的技术.其中的一些方法将在3.2节介绍.

图3.1一幅灰度图像和使用不同阈值得到的二值图像结果.上左:

原始灰度图像,上右:

值T=100;左下:

T=128.右下:

T1=100|T2=128.

3.2几何特性

通过阈值化方法从图像中检测出物体后,下一步就要对物体进行识别和定位.在大多数工业应用中,摄像机的位置和环境是已知的,因此通过简单的几何知识就可以从物体的二维图像确定出物体的三维位置.在大多数应用中,物体的数量不是很多,如果物体的尺寸和形状完全不同,则可以利用尺度和形状特征来识别这些物体.实际上在许多工业应用中,经常使用区域

的一些简单特征,如大小、位置和方向,来确定物体的位置并识别它们.

3.2.1尺寸和位置

一幅二值图像区域的面积(或零阶矩)由下式给出:

A=∑∑B[i,j](3.3)

i=0j=0n-1m-1

在许多应用中,物体的位置起着十分重要的作用.工业应用中,物体通常出现在已知表面(如工作台面)上,而且摄像机相对台面的位置也是已知的.在这种情况下,图像中的物体位置决定了它的空间位置.确定物体位置的方法有许多,比如用物体的外接矩形、物体矩心(区域中心)等来表示物体的位置.区域中心是通过对图像进行“全局”运算得到的一个点,因此它对图像中的噪声相对来说是不敏感的.对于二值图像,物体的中心位置与物体的质心相同,因此可以使用下式求物体的中心位置:

∑∑B[i,j]=∑∑jB[i,j]

i=0j=0i=0j=0n-1m-1n-1m-1

∑∑B[i,j]=-∑∑iB[i,j]

i=0j=0i=0j=0n-1m-1n-1m-1(3.4

其中和是区域相对于左上角图像的中心坐标.物体的位置为:

∑∑jB[i,j]

=

i=0j=0n-1m-1A

∑∑iB[i,j]

A

这些是一阶矩.注意,由于约定y轴向上,因此方程3.4和3.5的第二个式子的等号右边加了负号.=-i=0j=0n-1m-1(3.5

3.2.2方向

计算物体的方向比计算它的位置稍微复杂一点.某些形状(如圆)的方向不是唯一的,为了定义唯一的方向,一般假定物体是长形的,其长轴方向被定义为物体的方向.通常,二维平面上与最小惯量轴同方向的最小二阶矩轴被定为长轴.

图像中物体的二阶矩轴是这样一条线,物体上的全部点到该线的距离平方和最小.给出一幅二值图像B[i,j],计算物体点到直线的最小二乘方拟合,使所有物体点到直线的距离平方和最小:

2χ=∑r[,j]∑ijBi2

i=0j=0n-1m-1(3.6

其中rij是物体点[i,j]到直线的距离.为了避免直线处于近似垂直时所出现的数值病态问题,人们一般把直线表示成极坐标形式:

ρ=xcosθ+ysinθ(3.7

如图3.2所示,θ是直线的法线与x轴的夹角,ρ是直线到原点的距离.把点(i,j坐标代入直线的极坐标方程得出距离r:

r2=(xcosθ+ysinθ-ρ2(3.

8

图3.2直线的极坐标表示

将方程3.8代入方程3.6并求极小化问题,可以确定参数ρ和θ:

χ=∑∑(xijcosθ+yijsinθ-ρ2B[i,j](3.92

i=0j=0n-1m-1

令χ2对ρ的导数等于零求解ρ得:

ρ=(cosθ+sinθ(3.10它说明回归直线通过物体中心(,.用这一ρ值代入上面的χ,则极小化问题变为:

其中的参数:

2χ2=acos2θ+bsinθcosθ+csin2θ(3.11

n-1m-1

i=0j=0a=∑∑(xij-2B[i,j]

b=2∑∑(xij-(yij-B[i,j](3.12

i=0j=0n-1m-1

c=∑∑(yij-2B[i,j]

i=0j=0n-1m-1

是二阶矩.表达式χ2可重写为:

χ=

22111(a+c+(a-ccos2θ+bsin2θ(3.13222

b(3.14a-c对χ微分,并置微分结果为零,求解θ值:

tan2θ=

因此,惯性轴的方向由下式给出:

sin2θ=±

bb2+(a-c2

a-c

b2+(a-c2(3.15cos2θ=±

所以由χ2的最小值可以确定方向轴.注意,如果b=0,a=c,那么物体就不会只有唯一的方向轴.物体的伸长率E是χ2的最大值与最小值之比:

E=χmax(3.16χmin

3.2.3密集度和体态比

区域的密集度(compact)可用下面的式子来度量:

C=A(3.172p

其中,p和A分别为图形的周长和面积.根据这一衡量标准,圆是最密集的图形,其密集密度为最大值1/4π,其它一些图形的比值要小一些.让我们来看一下圆,当圆后仰时,形状成了一椭圆,面积减小了而周长却不象面积减小的那么快,因此密集度降低了.在后仰到极限角时,椭圆被压缩成了一条无限长直线,椭圆的周长为无穷大,故密集度变成了零.对于数字图像,p2是指物体尺寸(像素点数量)除以边界长度的平方.这是一种很好的散布性或密集性度量方法.这一比值在许多应用中被用作为区域的一个特征.

密集度的另一层意义是:

在给定周长的条件下,密集度越高,围成的面积就越大.注意在等周长的情况下,正方形密集度大于长方形密集度.

体态比定义为区域的最小外接矩形的长与宽之比,正方形和圆的体态比等于1,细长形物体的体态比大于1.图3.3所示的是几种形状的外接矩形.

图3.3几种外接矩形示意图

3.3投影

给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干条,每一条内像素值为1的像素个数为该条二值图像在给定直线上的投影(projection).当给定直线为水平或垂直直线时,计算二值图像每一列或每一行上像素值为1的像素数量,就得到了二值图像的水平和垂直投影,如图3.4所示.由于投影包含了图像的许多信息,所以投影是二值图像的一种

简洁表示方式.显然,投影不是唯一的,同样的投影可能对应不同的图像.

图3.4一幅二值图像及其水平投影图

在某些应用中,投影可以作为物体识别的一个特征.投影既是一种简洁的图像表示,又可以实现快速算法.下面介绍对角线投影的求解方法.对角线投影的关键是计算当前行和列对应的投影分布图位置标号.设行和列的标号分别用i和j表示.若图像矩阵为n行m列,则i和j的范围分别为0到n-1和0到m-1.假设对角线的标号d用行和列的仿射变换(线性组合加上常数)计算,即:

d=ai+bj+c(3.18对角线投影共对应n+m-1个条,其中仿射变换把右上角像素映射成对角线投影的第一个位置,把左下角像素映射成最后一个位置,如图3.5所示,则当前行列对应的标号d的公式为:

d=i-j+m-1(3.

19

图3.5二值图像及其对角线上的投影图

3.4游程长度编码

游程长度编码(run-lengthencoding是另一种二值图像的简洁表示方法,它是用图像像素值连续为1的个数(像素1的长度)来描述图像.这种编码已被用于图像传输.另外,图像的某些性质,如物体区域面积,也可以从游程长度编码直接计算出来.

在游程长度编码中经常运用两种方法,一种是使用1的起始位置和1的游程长度,另一种是仅仅使用游程长度,但须从1的游程长度开始描述,如图3.6所示.

1的游程(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,10,3,6,1,10

5,5,1,5,4

图3.6一幅简单二值图像的游程长度编码.

如果用第二种方法来表示图像每行的游程长度,并用ri,k代表图像第i行的第k个游程长度,则全部1的游程长度之和就是所求物体的面积.

A=∑

i=0⎡mi-1⎤

⎢⎥n-1⎣2⎦

k=0

∑ri,2k+1(3.20

其中mi是第i行游程个数,(mi-1/2取整,表示1的游程个数.

由游程长度编码能很容易地计算水平投影而无需变成原来的图像.使用更巧妙的方法也能从游程长度编码计算出垂直和对角线投影.

3.5二值图像算法

从背景中分离出物体是一个困难的问题,在此将不讨论这个问题.这里假设物体可以从背景中分离,并且使用某一谓词,可以对图像中属于物体的点进行标记.因此,问题就变为如何将一幅图像中所有被标记的点组合成物体图像.这里还假设物体点在空间上是非常接近的.利用空间接近概念可以严格定义,利用此定义研究的算法可以把空间上非常接近的点聚合在一起,构成图像的一个成分(component).下面首先引进一些定义,然后讨论有关算法.

3.5.1定义

(1近邻

在数字图像中,一个像素在空间上可能非常接近其它一些像素.在用方格表示的数字图像中,一个像素与其它四个像素有公共边界,并与另外四个像素共享顶角.如果两个像素有公共边界,则把它们称为4-近邻(4-neighbors.同样,如果两个像素至少共享一个顶角,则称它们为8-近邻.例如,位于[i,j]的像素有四个4-近邻:

它[i-1,j],[i+1,j],[i,j-1],[i,j+1].

[i+1,j-1],[i-1,j+1],[i+1,j+1].的8-近邻包括这四个4-近邻,再加上[i-1,j-1],一

个像素被认为与它的4-近邻是4-连通(4-connected关系,与它的8-近邻是8-连通关系(如图3.7).

[i-1,j][i,j-1][i,j][i,j+1][i+1,j]

[i-1,j-1][i-1,j][i-1,j+[i,j-1][i,j][i,j+1][i+1,j-i+1,j][i+1,j+1]

3.7矩形像素网格的4-近邻和8-近邻示意图.像素[i,j]位于图的中心.

(2路径

从像素[i0,j0]到像素[in,jn]的路径(path是指一个像素序列[i0,j0],[i1,j1],...,[in,jn],其中像素[ik,jk]是像素[ik+1,jk+1]的近邻像素,0≤k≤n-1.如果近邻关系是4-连通的,则路径是4-路径;如果是8-连通的,则称为8-路径.图3.8即为路径的两个简单例子.

图3.84-路径和8—路径示意图

(3前景

图像中值为1的全部像素的集合称为前景(foreground,用S表示.

(4连通性

已知像素p,q∈S,如果存在一条从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连通成份

一个像素集合,如果集合内的每一个像素与集合内其它像素连通,则称该集合为一个连通成份(connectedcomponent.

(6背景

⎺S(S的补集)中包含图像边界点的所有连通成份的集合称为背景(background.⎺S中所有其它元称为洞.考虑下面的两个图像.

首先看左图中有几个洞和几个物体.如果从前景和背景来考虑4-连通,有四个大小为-个像素的物体和一个洞.如果考虑8-连通,那么有一个物体而没有洞.直观地,在这两种情况下出现了不确定性情况.右图为另一个类似的不确定问题.其中如果1是连通的,那么0就应该是不连通的.

为了避免这种难以处理的情况,对物体和背景应使用不同的连通.如果我们对S使用8-连通,那么对⎺S就应使用4-连通.

(7边界

S的边界(boundary是S中与⎺S中有4-连通关系的像素集合.边界通常记为S'.

(8内部

内部(interior是S中不属于它的边界的像素集合.S的内部等于S-S'.

(9包围

如果从S中任意一点到图像边界的4-路径必须与区域T相交,则区域T包围(surrounds区域S(或S在T内).图3.9即为一幅简单二值图像和它的边界、内部、包围示意图.

图3.9

,内部和包围

3.5.2连通成份标记

在一幅图像中找出连通成份是机器视觉中最常见的运算之一.连通区域内的点构成表示物体的候选区域.机器视觉中的大多数物体都有表面,显然,物体表面点投影到图像平面上会形

成空间上密集的点集.这里应该指出,连通成份算法常常会在二值视觉系统中形成瓶颈效应,原因是连通成份运算是一个全局性的运算,这种算法在本质上是序贯的.如果图像中仅有一个物体,那么找连通成份就没有必要;如果图像中有许多物体,且需要求出物体的特性与位置,则必须确定连通成份.

连通标记算法可以找到图像中的所有连通成份,并对同一连通成份中的所有点分配同一标记.图3.10表示的是一幅图像和已标记的连通成份.在很多应用中,要求在标记连通成份的同时算出连通成份的特征,如尺寸、位置、方向和外接矩形.下面介绍两种连通成份标记算法:

递归算法和序贯算法[Jain1995].

图3.10一副图像及其连通成分图像

(1)递归算法

递归算法在串行处理器上的计算效率是很低的,因此,这一算法主要用于并行机上.算法3.1连通成份递归算法

1.扫描图像,找到没有标记的1点,给它分配一个新的标记L.3.递归分配标记L给1点的邻点.3.如果不存在没标记的点,则停止.4.返回第一步.

(2)序贯算法

序贯算法通常要求对图像进行二次处理.由于这一算法一次仅运算图像的两行,因此当图像以文件形式存贮且空间不允许把整幅图像载入内存时也能使用这一算法.这一算法(见算法3.2可以查看某一点的邻点,并且可以给像素值为1的邻点分配一个已经使用过的标记.如果图像的邻点有两种不同的标记,则用一个等价表(equivalenttable来记录所有的等价标记.在第二次处理过程中,使用这一等价表来给某一连通成份中所有像素点分配唯一的标记.

本算法在从左到右、从上到下扫描图像时,算法仅能查询到某一像素点的4-近邻中的两个近邻点,即上点与左点.设算法已经查到了该像素的这两个近邻点,此时出现三种情况:

(1如果这两个近邻点中没有一点为1,则该像素点需要一个新的标记.(2如果这两个近邻点中只有一点为1,且分配了标记L,那么该像素点的标记也为L.(3如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是L;但是当近邻点被分配了不同标记M与N,则这两个标记被用于了同一组元,应该把它们合并.在这种情况下,应把其中的一个标记(一般选用最小的那个标记)分配给该像素点,并在等价表中登记为等价标记.

等价表包含了给每一连通成份分配唯一标记的信息.在第一次扫描中,所有属于同一连通成份的标记被视为是等价的.在第二次扫描中,从一个等价集(equivalentset中选择一个标记并分配给连通成份中所有像素点.通常将最小的标记分配给一个连通成份.第二次扫描将给每一连通成份分配唯一的标记.

在找到所有的连通成份后,应该统计等价表,以便删除其中的空格;然后将等价表作为查

找表对图像重新进行扫描,以便重新统计图像中的标记.

计算每一连通成份的面积、一阶矩、二阶矩是序贯连通成份算法的一个部分.当然,必须使用分离变量来累加每一区域的矩信息.当区域合并后,每一区域的矩累计值也应加到一起.算法3.24-连通序贯连通成份算法

1.从左至右、从上到下扫描图像.

2.如果像素点为1,则:

(a如果上面点和左面点有一个标记,则复制这一标记.

(b如果两点有相同的标记,复制这一标记.

(c如果两点有不同的标记,则复制上点的标记且将两个标记输入等价表中作为等价

标记.

(d否则给这一个像素点分配一新的标记并将这一标记输入等价表.

3.如果需考虑更多的点,则回到第二步.

4.在等价表的每一等价集中找到最低的标记.

5.扫描图像,用等价表中的最低标记取代每一标记.

3.5.3欧拉数

在许多应用中,亏格数(genus或欧拉数可作为识别物体的特征.亏格数定义为连通成份数减去空洞数,

E=C-H(3.21

其中,E,C和H分别是欧拉数、连通成份数与空洞数.这个式子给出了一个简单的拓朴特征,这种拓扑特征具有平稳、旋转和比例不变特性.图3.11给出了一些例子及其对应的欧拉数.

E=0E=-1E=2

图3.11字母“A”、“B”、“i”及它们的欧拉数.注意前景

用了8-连通,而背景用了4-连通.

3.5.4区域边界

连通成份S的边界是那些属于S且与⎺S邻接的点集.使用简单的局部运算就可找到边界点.在大多数应用中,我们都想用一特定的顺序跟踪边界点.一般的算法是按顺时针方向跟踪区域的所有点.此处讨论一个简单的边界跟踪算法.

假定物体边界不在图像的边界上(即物体完全在图像内部),边界跟踪算法先选择

一起始点s∈S,然后跟踪边界直到回到起始点.这种算法概括在算法3.3中.这种算法对尺寸大于1个象素的所有区域都是有效的.用这种算法求区域8-邻点的边界如图3.12(a所示.为了得到平滑的图像边界,可以在检测和跟踪图像边界后,利用边界点的方向信息来平滑边界。

显然,图像边界噪声越大,图像边界点变化越剧烈,图像边界相邻点的方向变化数(与差分链码有一点区别,链码见第七章)也越大.根据这一特点,设置一个边界点方向变化数阈值,把方向变化数大于这一阈值的图像边界点滤除,由此可得到平滑的图像边界。

图3.12(b)所示的是一个经过平滑过的区域边界示意图,其中的方向变化数阈值为1。

注意,由于采用8-邻点边界跟踪,因此方向变化数的最大值为4。

如果阈值设成4,则对原始边界没有平滑。

边界跟踪和平滑常常结合在一起使用,见计算机作业3.5。

图3.12边界跟踪算法结果,(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1