您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第03章 二值图象分析
1第三章二值图像分析一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应用来说,也常有32、64、128或512个灰度级的情况,在医疗领域里甚至使用高达4096(12bits)个灰度级.很明显,灰度级越高,图像质量越好,但所需的内存也越大.在机器视觉研究的早期,由于内存和计算能力非常有限,而且十分昂贵,因此视觉研究人员把精力主要集中在研究输入图像仅包含两个灰度值的二值视觉系统上.人们注意到,人类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,而且应用场合很多,这一点对研究二值视觉系统的研究人员是一个极大的鼓舞.随着计算机计算能力的不断增强和计算成本的不断下降,人们普遍开始研究基于灰度图像、彩色图像和深度图像的视觉系统.尽管如此,二值视觉系统还是十分有用的,其原因如下:⑴计算二值图像特性的算法非常简单,容易理解和实现,并且计算速度很快.⑵二值视觉所需的内存小,对计算设备要求低.工作在256个灰度级的视觉系统所需内存是工作在相同大小二值图像视觉系统所需内存的八倍.如若利用游程长度编码等技术(见3.4节)还可使所需内存进一步减少.由于二值图像中的许多运算是逻辑运算而不是算术运算,所以所需的处理时间很短.(3)许多二值视觉系统技术也可以用于灰度图像视觉系统上.在灰度或彩色图像中,表示一个目标或物体的一种简易方法就是使用物体模板(mask),物体模板就是一幅二值图像,其中1表示目标上的点,0表示其它点.在物体从背景中分离出来后,为了进行决策,还需要求取物体的几何和拓扑特性,这些特性可以从它的二值图像计算出来.因此,尽管我们是在二值图像上讨论这些方法,但它们的应用并不限于二值图像.一般来说,当物体轮廓足以用来识别物体且周围环境可以适当地控制时,二值视觉系统是非常有用的.当使用特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,比如,许多工业场合都属于这种情况.二值视觉系统的输入一般是灰度图像,通常使用阈值法首先将图像变成二值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性.二值图像可用来计算特定任务中物体的几何和拓扑特性,在许多应用中,这种特性对识别物体来说是足够的.二值视觉系统已经在光学字符识别、染色体分析和工业零件的识别中得到了广泛应用.在下面的讨论中,假定二值图像大小为nm,其中物体像素值为1,背景像素值为0.3.1阈值视觉系统中的一个重要问题是从图像中识别代表物体的区域(或子图像),这种对人来说是件非常容易的事,对计算机来说却是令人吃惊的困难.为了将物体区域同图像其它区域分离出来,需要首先对图像进行分割.把图像划分成区域的过程称为分割,即把图像],[jiF划分成区域kppp,,,21,使得每一个区域对应一个候选的物体.下面给出分割的严格定义.定义分割是把像素聚合成区域的过程,使得:ikiP1整幅图像(}{iP是一个完备分割).2jiPPji,,(}{iP是一个完备分割).每个区域iP满足一个谓词,即区域内的所有点有某种共同的性质.不同区域的图像,不满足这一谓词.正如上面所表明的,分割满足一个谓词,这一谓词可能是简单的,如分割灰度图像时用的均匀灰度分布、相同纹理等谓词,但在大多数应用场合,谓词十分复杂.在图像理解过程中,分割是一个非常重要的步骤.二值图像可以通过适当地分割灰度图像得到.如果物体的灰度值落在某一区间内,并且背景的灰度值在这一区间之外,则可以通过阈值运算得到物体的二值图像,即把区间内的点置成1,区间外的点置成0.对于二值视觉,分割和阈值化是同义的.阈值化可以通过软件来实现,也可以通过硬件直接完成.通过阈值运算是否可以有效地进行图像分割,取决于物体和背景之间是否有足够的对比度.设一幅灰度图像],[jiF中物体的灰度分布在区间],[21TT内,经过阈值运算后的图像为二值图像],[jiFT,即:其它如果0],[1],[21TjiFTjiFT(3.1)如果物体灰度值分布在几个不相邻区间内时,阈值化方案可表示为:其它如果0],[1],[ZjiFjiFT(3.2)其中Z是组成物体各部分灰度值的集合.图3.1是对一幅灰度图像使用不同阈值得到的二值图像输出结果.阈值算法与应用领域密切相关.事实上,某一阈值运算常常是为某一应用专门设计的,在其它应用领域可能无法工作.阈值选择常常是基于在某一应用领域获取的先验知识,因此在某些场合下,前几轮运算通常采用交互式方式来分析图像,以便确定合适的阈值.但是,在机器视觉系统中,由于视觉系统的自主性能(autonomy)要求,必须进行自动阈值选择.现在已经研究出许多利用图像灰度分布和有关的物体知识来自动选择适当阈值的技术.其中的一些方法将在3.2节介绍.图3.1一幅灰度图像和使用不同阈值得到的二值图像结果.上左:原始灰度图像,上右:阈值T=100;左下:T=128.右下:T1=100|T2=128.3.2几何特性通过阈值化方法从图像中检测出物体后,下一步就要对物体进行识别和定位.在大多数工业应用中,摄像机的位置和环境是已知的,因此通过简单的几何知识就可以从物体的二维图像确定出物体的三维位置.在大多数应用中,物体的数量不是很多,如果物体的尺寸和形状完全不同,则可以利用尺度和形状特征来识别这些物体.实际上在许多工业应用中,经常使用区域3的一些简单特征,如大小、位置和方向,来确定物体的位置并识别它们.3.2.1尺寸和位置一幅二值图像区域的面积(或零阶矩)由下式给出:1010],[nimjjiBA(3.3)在许多应用中,物体的位置起着十分重要的作用.工业应用中,物体通常出现在已知表面(如工作台面)上,而且摄像机相对台面的位置也是已知的.在这种情况下,图像中的物体位置决定了它的空间位置.确定物体位置的方法有许多,比如用物体的外接矩形、物体矩心(区域中心)等来表示物体的位置.区域中心是通过对图像进行“全局”运算得到的一个点,因此它对图像中的噪声相对来说是不敏感的.对于二值图像,物体的中心位置与物体的质心相同,因此可以使用下式求物体的中心位置:1010101010101010],[],[],[],[ninimjmjnimjnimjjiiBjiByjijBjiBx(3.4)其中x和y是区域相对于左上角图像的中心坐标.物体的位置为:AjiiByAjijBxnimjnimj10101010],[],[(3.5)这些是一阶矩.注意,由于约定y轴向上,因此方程3.4和3.5的第二个式子的等号右边加了负号.3.2.2方向计算物体的方向比计算它的位置稍微复杂一点.某些形状(如圆)的方向不是唯一的,为了定义唯一的方向,一般假定物体是长形的,其长轴方向被定义为物体的方向.通常,二维平面上与最小惯量轴同方向的最小二阶矩轴被定为长轴.图像中物体的二阶矩轴是这样一条线,物体上的全部点到该线的距离平方和最小.给出一幅二值图像],[jiB,计算物体点到直线的最小二乘方拟合,使所有物体点到直线的距离平方和最小:220101rBijijjmin[,](3.6)其中rij是物体点],[ji到直线的距离.为了避免直线处于近似垂直时所出现的数值病态问题,人们一般把直线表示成极坐标形式:4sincosyx(3.7)如图3.2所示,是直线的法线与x轴的夹角,是直线到原点的距离.把点),(ji坐标代入直线的极坐标方程得出距离r:22)sincos(yxr(3.8)图3.2直线的极坐标表示将方程3.8代入方程3.6并求极小化问题,可以确定参数和:101022],[)sincos(nimjijijjiByx(3.9)令2对的导数等于零求解得:)sincos(yx(3.10)它说明回归直线通过物体中心),(yx.用这一值代入上面的2,则极小化问题变为:222sincossincoscba(3.11)其中的参数:],[)(],[))((2],[)(10210101010102jiByycjiByyxxbjiBxxanimjijnimjijijnimjij(3.12)是二阶矩.表达式2可重写为:2sin212cos)(21)(212bcaca(3.13)对2微分,并置微分结果为零,求解值:cab2tan(3.14)因此,惯性轴的方向由下式给出:52222)(2cos)(2sincabcacabb(3.15)所以由2的最小值可以确定方向轴.注意,如果cab,0,那么物体就不会只有唯一的方向轴.物体的伸长率E是2的最大值与最小值之比:minmaxE(3.16)3.2.3密集度和体态比区域的密集度(compact)可用下面的式子来度量:2pAC(3.17)其中,p和A分别为图形的周长和面积.根据这一衡量标准,圆是最密集的图形,其密集密度为最大值4/1,其它一些图形的比值要小一些.让我们来看一下圆,当圆后仰时,形状成了一椭圆,面积减小了而周长却不象面积减小的那么快,因此密集度降低了.在后仰到极限角时,椭圆被压缩成了一条无限长直线,椭圆的周长为无穷大,故密集度变成了零.对于数字图像,2pA是指物体尺寸(像素点数量)除以边界长度的平方.这是一种很好的散布性或密集性度量方法.这一比值在许多应用中被用作为区域的一个特征.密集度的另一层意义是:在给定周长的条件下,密集度越高,围成的面积就越大.注意在等周长的情况下,正方形密集度大于长方形密集度.体态比定义为区域的最小外接矩形的长与宽之比,正方形和圆的体态比等于1,细长形物体的体态比大于1.图3.3所示的是几种形状的外接矩形.图3.3几种外接矩形示意图3.3投影给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干条,每一条内像素值为1的像素个数为该条二值图像在给定直线上的投影(projection).当给定直线为水平或垂直直线时,计算二值图像每一列或每一行上像素值为1的像素数量,就得到了二值图像的水平和垂直投影,如图3.4所示.由于投影包含了图像的许多信息,所以投影是二值图像的一种6简洁表示方式.显然,投影不是唯一的,同样的投影可能对应不同的图像.图3.4一幅二值图像及其水平投影图在某些应用中,投影可以作为物体识别的一个特征.投影既是一种简洁的图像表示,又可以实现快速算法.下面介绍对角线投影的求解方法.对角线投影的关键是计算当前行和列对应的投影分布图位置标号.设行和列的标号分别用i和j表示.若图像矩阵为n行m列,则i和j的范围分别为0到1n和0到1m.假设对角线的标号d用行和列的仿射变换(线性组合加上常数)计算,即:cbjaid(3.18)对角线投影共对应1mn个条,其中仿射变换把右上角像素映射成对角线投影的第一个位置,把左下角像素映射成最后一个位置,如图3.5所示,则当前行列对应的标号d的公式为:1mjid(3.19)图3.5二值图像及其对角线上的投影图73.4游程长度编码游程长度编码(run-lengthencoding)是另一种二值图像的简洁表示方法,它是用图像像素值连续为1的个数(像素1的长度)来描述图像.这种编码已被用于图像传输.另外,图像的某些性质,如物体区域面积,也可以从游程长度编码直接计算出来.在游程长度编码中经常运用两种方法,一种是使用1的起始位置和1的游程长度,另一种是仅仅使用游程长度,但须从1的游程长度开始描述,如图3.6所示.0110011100001111110100011111101111111111111110000010000011111的游程(2,2)(6
本文标题:第03章 二值图象分析
链接地址:https://www.777doc.com/doc-4798411 .html