二值图像

合集下载

二值图像及其编码

二值图像及其编码

二值图像及其编码3.1 二值图像及其特征图像分为彩色图像和灰度图像两大类,二值图像就是只有黑白两种灰度级的特殊灰度图像,例如文件、气象图、工程图、指纹卡片、手写文字、地图、报纸等等。

此外,为了报纸的印刷,即使原来为灰度的图像,也要做成网纹的二值图像;传真只能一点一点地传送二值数据,也要把灰度的图像转化为二值的图像。

二值图像信源编码的目的和灰度图像的编码一样,也是为了减少表示图像所需的比特数。

除了只有黑白两个灰度外,二值图像还有一些其它的特征: 首先,在统计特性上,由于只有两种灰度,即只有两种信源符号,所以只对应两种信源概率P0和P1 ,且满足P1=1 一P0,也就是说信源符号的概率可以只用一种概率来表示;其次,图像数据量较小,单个像素既可以用其灰度值(例如0 和255)来表示,也可以用二进制值(0 和1)来表示,显然后一种表示方法在存储和对图像进行数据处理时会比较简便;此外,二值图像的结构也往往比较简单,黑、白像素区域多为连续分布、划分明显。

这些特征对于二值图像的压缩编码都具有重要的意义,大部分编码方法都是直接利用这些特征或者建立在这些特征的基础上的。

3.23.3 二值图像压缩的意义前面提到,由于灰度级别只有两种,所以用于表示二值图像的数据量本身就远小于同等尺寸的灰度图像和彩色图像。

但是,这并不意味着对它们就不必再进行压缩处理了。

二值图像同一般的图像一样,也有着很大的压缩空间。

如果每一像素用一位二进制码0 或1(白像素为1 ,黑像素为0)表示,则称为直接编码。

一位二进制码为1 比特,因而直接编码时表示一帧图像的比特数就等于该图像的像素数。

直接编码对数据量是没有压缩效果的,因而通常把直接编码得到数据比特数作为该二值图像的原始数据大小,例如,二值图像以Window: 操作系统中的标准图像文件BMP 格式存储就是这样一种情况。

由于二值图像结构和统计上的冗余特性,直接编码所形成的符号所携带的信息中必然包含了大量的冗余成分,所以,经过各种编码处理,去掉这些冗余成分,能够使表示二值图像的比特数小于该图像的像素数(即小于图像原始大小),达到压缩的目的。

数字图像 12.二值图像处理与形状分析2

数字图像   12.二值图像处理与形状分析2

建立一种基本元素循环的方式来描述上述结构。 设S和A是变量,S是起始符号,a和b是基本元素的 常数,则可建立一种描述语法,或说可确定如下重 写(替换)规则:
(l)S->aA (起始符号可用元素a和变量A来替换); (2)A->bs (变量A可以用元素b和起始符号S来替换); (3)A+b (变量A可以用单个元素b来替换)。 由规则2知,如用b和S替换A则可回到规则1,整个过程可 以重复。 根据规则3,如果用b替换A则整个过程结束,因为表达式 中不再有变量。注意这些规则强制在每个a后面跟一个b,所 以a和b间的关系保持不变。
p( j ) f (i, j )
n
j
固定i0,得到图像f(i,j)的过i0而平行于j轴的截口f(i0 ,j) 固定j0,得到图像f(i,j)的过j0而平行于i轴的截口f(i, j0)
二值图像f(i,j)的截口长度为:
s (i 0 ) f (i0 , j ) s ( j 0 ) f (i, j0 )
2)结构分析法
利用二值图像的四叉树表示边界,可以提取
如欧拉数、区域面积、矩、形心、周长等区域的
形状特征。
2.区域外形变换法 区域外形变换是指对区域的边界作各种变 换,包括区域边界的付立叶描述算子、Hough变
换和广义Hough变换、区域边界和骨架的多项式
逼近等。这样将区域的边界或骨架转换成向量
或数量,并把它们作为区域的形状特征。
个结点与其相连通结点的信息,可用一组指向这些结点的 指针来记录。
树结构的两类信息中,一类确定了图象描述中的基本模
式元,第二类确定了各基本模式元之间的物理连接关系。下
图给出一个用树结构描述关系的例子,左图的是一个组合区 域,它可以用右图所示的树借助“在„之中”关系进行描述。 其中根结点R表示整幅图;a和c是在R之中的两个区域所对 应的两个子树的根结点,其余结点是它们的子结点。由图B所 示的树可知,e在d中,d和f在c中,b在a中;a和c在R中。

二值图像分析

二值图像分析

⼆值图像分析第三章⼆值图像分析⼀幅数字图像是⼀个⼆维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是⼀个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成256个不同灰度级,对某些应⽤来说,也常有32、64、128或512个灰度级的情况,在医疗领域⾥甚⾄使⽤⾼达4096(12bits )个灰度级.很明显,灰度级越⾼,图像质量越好,但所需的内存也越⼤.在机器视觉研究的早期,由于内存和计算能⼒⾮常有限,⽽且⼗分昂贵,因此视觉研究⼈员把精⼒主要集中在研究输⼊图像仅包含两个灰度值的⼆值视觉系统上.⼈们注意到,⼈类视觉在理解仅由两个灰度级组成的线条、轮廓影像或其它图像时没有任何困难,⽽且应⽤场合很多,这⼀点对研究⼆值视觉系统的研究⼈员是⼀个极⼤的⿎舞.随着计算机计算能⼒的不断增强和计算成本的不断下降,⼈们普遍开始研究基于灰度图像、彩⾊图像和深度图像的视觉系统.尽管如此,⼆值视觉系统还是⼗分有⽤的,其原因如下:⑴计算⼆值图像特性的算法⾮常简单,容易理解和实现,并且计算速度很快.⑵⼆值视觉所需的内存⼩,对计算设备要求低.⼯作在256个灰度级的视觉系统所需内存是⼯作在相同⼤⼩⼆值图像视觉系统所需内存的⼋倍.如若利⽤游程长度编码等技术(见3.4节)还可使所需内存进⼀步减少.由于⼆值图像中的许多运算是逻辑运算⽽不是算术运算,所以所需的处理时间很短.(3)许多⼆值视觉系统技术也可以⽤于灰度图像视觉系统上.在灰度或彩⾊图像中,表⽰⼀个⽬标或物体的⼀种简易⽅法就是使⽤物体模板(mask),物体模板就是⼀幅⼆值图像,其中1表⽰⽬标上的点,0表⽰其它点.在物体从背景中分离出来后,为了进⾏决策,还需要求取物体的⼏何和拓扑特性,这些特性可以从它的⼆值图像计算出来.因此,尽管我们是在⼆值图像上讨论这些⽅法,但它们的应⽤并不限于⼆值图像.⼀般来说,当物体轮廓⾜以⽤来识别物体且周围环境可以适当地控制时,⼆值视觉系统是⾮常有⽤的.当使⽤特殊的照明技术和背景并且场景中只有少数物体时,物体可以很容易地从背景中分离出来,并可得到较好的轮廓,⽐如,许多⼯业场合都属于这种情况.⼆值视觉系统的输⼊⼀般是灰度图像,通常使⽤阈值法⾸先将图像变成⼆值图像,以便把物体从背景中分离出来,其中的阈值取决于照明条件和物体的反射特性.⼆值图像可⽤来计算特定任务中物体的⼏何和拓扑特性,在许多应⽤中,这种特性对识别物体来说是⾜够的.⼆值视觉系统已经在光学字符识别、染⾊体分析和⼯业零件的识别中得到了⼴泛应⽤.在下⾯的讨论中,假定⼆值图像⼤⼩为n m ?,其中物体像素值为1,背景像素值为0.3.1 阈值视觉系统中的⼀个重要问题是从图像中识别代表物体的区域(或⼦图像),这种对⼈来说是件⾮常容易的事,对计算机来说却是令⼈吃惊的困难.为了将物体区域同图像其它区域分离出来,需要⾸先对图像进⾏分割.把图像划分成区域的过程称为分割,即把图像],[j i F 划分成区域k p p p ,,,21,使得每⼀个区域对应⼀个候选的物体.下⾯给出分割的严格定义.定义分割是把像素聚合成区域的过程,使得:==i ki P 1 整幅图像 (}{i P 是⼀个完备分割 ).●j i P P j i ≠?=, ,(}{i P 是⼀个完备分割).●每个区域i P 满⾜⼀个谓词,即区域内的所有点有某种共同的性质.●不同区域的图像,不满⾜这⼀谓词.正如上⾯所表明的,分割满⾜⼀个谓词,这⼀谓词可能是简单的,如分割灰度图像时⽤的均匀灰度分布、相同纹理等谓词,但在⼤多数应⽤场合,谓词⼗分复杂.在图像理解过程中,分割是⼀个⾮常重要的步骤.⼆值图像可以通过适当地分割灰度图像得到.如果物体的灰度值落在某⼀区间内,并且背景的灰度值在这⼀区间之外,则可以通过阈值运算得到物体的⼆值图像,即把区间内的点置成1,区间外的点置成0.对于⼆值视觉,分割和阈值化是同义的.阈值化可以通过软件来实现,也可以通过硬件直接完成.通过阈值运算是否可以有效地进⾏图像分割,取决于物体和背景之间是否有⾜够的对⽐度.设⼀幅灰度图像],[j i F 中物体的灰度分布在区间],[21T T 内,经过阈值运算后的图像为⼆值图像],[j i F T ,即:≤≤=其它如果0],[ 1],[21T j i F T j i F T (3.1) 如果物体灰度值分布在⼏个不相邻区间内时,阈值化⽅案可表⽰为:∈=其它如果0],[ 1],[Z j i F j i F T (3.2) 其中Z 是组成物体各部分灰度值的集合.图3.1是对⼀幅灰度图像使⽤不同阈值得到的⼆值图像输出结果.阈值算法与应⽤领域密切相关.事实上,某⼀阈值运算常常是为某⼀应⽤专门设计的,在其它应⽤领域可能⽆法⼯作.阈值选择常常是基于在某⼀应⽤领域获取的先验知识,因此在某些场合下,前⼏轮运算通常采⽤交互式⽅式来分析图像,以便确定合适的阈值.但是,在机器视觉系统中,由于视觉系统的⾃主性能(autonomy )要求,必须进⾏⾃动阈值选择.现在已经研究出许多利⽤图像灰度分布和有关的物体知识来⾃动选择适当阈值的技术.其中的⼀些⽅法将在3.2节介绍.图3.1 ⼀幅灰度图像和使⽤不同阈值得到的⼆值图像结果.上左:原始灰度图像,上右:阈值T=100;左下:T=128.右下:T1=100|T2=128.3.2 ⼏何特性通过阈值化⽅法从图像中检测出物体后,下⼀步就要对物体进⾏识别和定位.在⼤多数⼯业应⽤中,摄像机的位置和环境是已知的,因此通过简单的⼏何知识就可以从物体的⼆维图像确定出物体的三维位置.在⼤多数应⽤中,物体的数量不是很多,如果物体的尺⼨和形状完全不同,则可以利⽤尺度和形状特征来识别这些物体.实际上在许多⼯业应⽤中,经常使⽤区域的⼀些简单特征,如⼤⼩、位置和⽅向,来确定物体的位置并识别它们.3.2.1 尺⼨和位置⼀幅⼆值图像区域的⾯积(或零阶矩)由下式给出:∑∑-=-==1010],[n i m j j i B A (3.3)在许多应⽤中,物体的位置起着⼗分重要的作⽤.⼯业应⽤中,物体通常出现在已知表⾯(如⼯作台⾯)上,⽽且摄像机相对台⾯的位置也是已知的.在这种情况下,图像中的物体位置决定了它的空间位置.确定物体位置的⽅法有许多,⽐如⽤物体的外接矩形、物体矩⼼(区域中⼼)等来表⽰物体的位置.区域中⼼是通过对图像进⾏“全局”运算得到的⼀个点,因此它对图像中的噪声相对来说是不敏感的.对于⼆值图像,物体的中⼼位置与物体的质⼼相同,因此可以使⽤下式求物体的中⼼位置:∑∑∑∑∑∑∑∑-=-=-=-=-=-=-=-=-==1010101010101010],[],[],[],[n i n i m j m j n i m j n i m j j i iB j i B y j i jB j i B x (3.4)其中x 和y 是区域相对于左上⾓图像的中⼼坐标.物体的位置为: Aj i iB y Aj i jB x n i m j n i m j ∑∑∑∑-=-=-=-=-==10101010],[],[ (3.5)这些是⼀阶矩.注意,由于约定y 轴向上,因此⽅程3.4和3.5的第⼆个式⼦的等号右边加了负号. 3.2.2 ⽅向计算物体的⽅向⽐计算它的位置稍微复杂⼀点.某些形状(如圆)的⽅向不是唯⼀的,为了定义唯⼀的⽅向,⼀般假定物体是长形的,其长轴⽅向被定义为物体的⽅向.通常,⼆维平⾯上与最⼩惯量轴同⽅向的最⼩⼆阶矩轴被定为长轴.图像中物体的⼆阶矩轴是这样⼀条线,物体上的全部点到该线的距离平⽅和最⼩.给出⼀幅⼆值图像],[j i B ,计算物体点到直线的最⼩⼆乘⽅拟合,使所有物体点到直线的距离平⽅和最⼩:χ220101==-=-∑∑r B i j ij j m i n [,] (3.6)其中r ij 是物体点],[j i 到直线的距离.为了避免直线处于近似垂直时所出现的数值病态问题,⼈们⼀般把直线表⽰成极坐标形式:θθρsin cos y x += (3.7)如图3.2所⽰,θ是直线的法线与x 轴的夹⾓,ρ是直线到原点的距离.把点),(j i 坐标代⼊直线的极坐标⽅程得出距离r :22)sin cos (ρθθ-+=y x r (3.8)图3.2 直线的极坐标表⽰将⽅程3.8代⼊⽅程3.6并求极⼩化问题,可以确定参数ρ和θ:∑∑-=-=-+=101022],[)sin cos (n i m j ij ij j i B y x ρθθχ (3.9) 令2χ对ρ的导数等于零求解ρ得:)sin cos (θθρy x += (3.10) 它说明回归直线通过物体中⼼),(y x .⽤这⼀ρ值代⼊上⾯的2χ,则极⼩化问题变为:θθθθχ222sin cos sin cos c b a ++= (3.11)其中的参数: ],[)(],[))((2],[)(10210101010102j i B y y c j i B y y x x b j i B x x a n i m j ij n i m j ij ij n i m j ij ∑∑∑∑∑∑-=-=-=-=-=-=-=--=-= (3.12)是⼆阶矩.表达式2χ可重写为:θθχ2sin 212cos )(21)(212b c a c a +-++=(3.13) 对2χ微分,并置微分结果为零,求解θ值:ca b -=θ2tan (3.14) 因此,惯性轴的⽅向由下式给出:2222)(2cos )(2sin c a b ca c ab b -+-±=-+±=θθ (3.15) 所以由2χ的最⼩值可以确定⽅向轴.注意,如果c a b ==,0,那么物体就不会只有唯⼀的⽅向轴.物体的伸长率E 是2χ的最⼤值与最⼩值之⽐:minmax χχ=E (3.16) 3.2.3 密集度和体态⽐区域的密集度(compact )可⽤下⾯的式⼦来度量:2pA C = (3.17) 其中,p 和A 分别为图形的周长和⾯积.根据这⼀衡量标准,圆是最密集的图形,其密集密度为最⼤值π4/1,其它⼀些图形的⽐值要⼩⼀些.让我们来看⼀下圆,当圆后仰时,形状成了⼀椭圆,⾯积减⼩了⽽周长却不象⾯积减⼩的那么快,因此密集度降低了.在后仰到极限⾓时,椭圆被压缩成了⼀条⽆限长直线,椭圆的周长为⽆穷⼤,故密集度变成了零.对于数字图像, 2p A 是指物体尺⼨(像素点数量)除以边界长度的平⽅.这是⼀种很好的散布性或密集性度量⽅法.这⼀⽐值在许多应⽤中被⽤作为区域的⼀个特征.密集度的另⼀层意义是:在给定周长的条件下,密集度越⾼,围成的⾯积就越⼤.注意在等周长的情况下,正⽅形密集度⼤于长⽅形密集度.体态⽐定义为区域的最⼩外接矩形的长与宽之⽐,正⽅形和圆的体态⽐等于1,细长形物体的体态⽐⼤于1.图3.3所⽰的是⼏种形状的外接矩形.图3.3 ⼏种外接矩形⽰意图 3.3 投影给定⼀条直线,⽤垂直该直线的⼀簇等间距直线将⼀幅⼆值图像分割成若⼲条,每⼀条内像素值为1的像素个数为该条⼆值图像在给定直线上的投影(projection ).当给定直线为⽔平或垂直直线时,计算⼆值图像每⼀列或每⼀⾏上像素值为1的像素数量,就得到了⼆值图像的⽔平和垂直投影,如图3.4所⽰.由于投影包含了图像的许多信息,所以投影是⼆值图像的⼀种简洁表⽰⽅式.显然,投影不是唯⼀的,同样的投影可能对应不同的图像.图3.4 ⼀幅⼆值图像及其⽔平投影图在某些应⽤中,投影可以作为物体识别的⼀个特征.投影既是⼀种简洁的图像表⽰,⼜可以实现快速算法.下⾯介绍对⾓线投影的求解⽅法.对⾓线投影的关键是计算当前⾏和列对应的投影分布图位置标号.设⾏和列的标号分别⽤i 和j 表⽰.若图像矩阵为n ⾏m 列,则i 和j 的范围分别为0到1-n 和0到1-m .假设对⾓线的标号d ⽤⾏和列的仿射变换(线性组合加上常数)计算,即:c bj aid ++= (3.18) 对⾓线投影共对应1-+m n 个条,其中仿射变换把右上⾓像素映射成对⾓线投影的第⼀个位置,把左下⾓像素映射成最后⼀个位置,如图3.5所⽰,则当前⾏列对应的标号d 的公式为:1-+-=m j i d (3.19)图3.5 ⼆值图像及其对⾓线上的投影图3.4 游程长度编码游程长度编码(run-length encoding)是另⼀种⼆值图像的简洁表⽰⽅法,它是⽤图像像素值连续为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,105,5,1,5,4图3.6 ⼀幅简单⼆值图像的游程长度编码.如果⽤第⼆种⽅法来表⽰图像每⾏的游程长度,并⽤k i r ,代表图像第i ⾏的第k 个游程长度,则全部1的游程长度之和就是所求物体的⾯积.∑∑-=-=+=1021012,n i m k k i i r A (3.20)其中i m 是第i ⾏游程个数,2/)1(-i m 取整,表⽰1的游程个数.由游程长度编码能很容易地计算⽔平投影⽽⽆需变成原来的图像.使⽤更巧妙的⽅法也能从游程长度编码计算出垂直和对⾓线投影.3.5 ⼆值图像算法从背景中分离出物体是⼀个困难的问题,在此将不讨论这个问题.这⾥假设物体可以从背景中分离,并且使⽤某⼀谓词,可以对图像中属于物体的点进⾏标记.因此,问题就变为如何将⼀幅图像中所有被标记的点组合成物体图像.这⾥还假设物体点在空间上是⾮常接近的.利⽤空间接近概念可以严格定义,利⽤此定义研究的算法可以把空间上⾮常接近的点聚合在⼀起,构成图像的⼀个成分(component ).下⾯⾸先引进⼀些定义,然后讨论有关算法.3.5.1 定义(1) 近邻在数字图像中,⼀个像素在空间上可能⾮常接近其它⼀些像素.在⽤⽅格表⽰的数字图像中,⼀个像素与其它四个像素有公共边界,并与另外四个像素共享顶⾓.如果两个像素有公共边界,则把它们称为4-近邻(4-neighbors).同样,如果两个像素⾄少共享⼀个顶⾓,则称它们为8-近邻.例如,位于],[j i 的像素有四个4-近邻:],1[j i -,],1[j i +,]1,[-j i ,]1,[+j i .它的8-近邻包括这四个4-近邻,再加上]1,1[--j i ,]1,1[-+j i ,]1,1[+-j i ,]1,1[++j i .⼀个像素被认为与它的4-近邻是4-连通(4-connected)关系,与它的8-近邻是8-连通关系(如图3.7).图3.7 矩形像素⽹格的4-近邻和8-近邻⽰意图.像素],[j i 位于图的中⼼.(2) 路径从像素],[00j i 到像素],[n n j i 的路径(path)是指⼀个像素序列],[00j i ,],[11j i ,..., ],[n n j i ,其中像素],[k k j i 是像素],[11++k k j i 的近邻像素,10-≤≤n k .如果近邻关系是4-连通的,则路径是4-路径;如果是8-连通的,则称为8-路径.图3.8即为路径的两个简单例⼦.图3.8 4-路径和8—路径⽰意图(3) 前景图像中值为1的全部像素的集合称为前景(foreground),⽤S 表⽰.(4) 连通性已知像素S q p ∈,,如果存在⼀条从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).[i-1, j ][i, j-1] [i, j ] [i, j+1][i+1, j ] [i-1,j-1] [i-1,j ] [i-1,j+1] [i,j-1] [i, j ] [i,j+1] [i+1,j-1] [i+1,j ] [i+1,j+1](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表⽰的是⼀幅图像和已标记的连通成份.在很多应⽤中,要求在标记连通成份的同时算出连通成份的特征,如尺⼨、位置、⽅向和外接矩形.下⾯介绍两种连通成份标记算法:递归算法和序贯算法[Jain 1995].图3.10 ⼀副图像及其连通成分图像(1)递归算法递归算法在串⾏处理器上的计算效率是很低的,因此,这⼀算法主要⽤于并⾏机上.算法3.1连通成份递归算法1.扫描图像,找到没有标记的1点,给它分配⼀个新的标记L.3.递归分配标记L给1点的邻点.3.如果不存在没标记的点,则停⽌.4.返回第⼀步.(2)序贯算法序贯算法通常要求对图像进⾏⼆次处理.由于这⼀算法⼀次仅运算图像的两⾏,因此当图像以⽂件形式存贮且空间不允许把整幅图像载⼊内存时也能使⽤这⼀算法.这⼀算法(见算法3.2)可以查看某⼀点的邻点,并且可以给像素值为1的邻点分配⼀个已经使⽤过的标记.如果图像的邻点有两种不同的标记,则⽤⼀个等价表(equivalent table)来记录所有的等价标记.在第⼆次处理过程中,使⽤这⼀等价表来给某⼀连通成份中所有像素点分配唯⼀的标记.本算法在从左到右、从上到下扫描图像时,算法仅能查询到某⼀像素点的4-近邻中的两个近邻点,即上点与左点.设算法已经查到了该像素的这两个近邻点,此时出现三种情况:(1) 如果这两个近邻点中没有⼀点为1,则该像素点需要⼀个新的标记.(2) 如果这两个近邻点中只有⼀点为1,且分配了标记L,那么该像素点的标记也为L.(3) 如果这两个邻点都为1,且已分配了标记L,则该像素点的标记还是L;但是当近邻点被分配了不同标记M 与N,则这两个标记被⽤于了同⼀组元,应该把它们合并.在这种情况下,应把其中的⼀个标记(⼀般选⽤最⼩的那个标记)分配给该像素点,并在等价表中登记为等价标记.等价表包含了给每⼀连通成份分配唯⼀标记的信息.在第⼀次扫描中,所有属于同⼀连通成份的标记被视为是等价的.在第⼆次扫描中,从⼀个等价集(equivalent set)中选择⼀个标记并分配给连通成份中所有像素点.通常将最⼩的标记分配给⼀个连通成份.第⼆次扫描将给每⼀连通成份分配唯⼀的标记.在找到所有的连通成份后,应该统计等价表,以便删除其中的空格;然后将等价表作为查找表对图像重新进⾏扫描,以便重新统计图像中的标记.计算每⼀连通成份的⾯积、⼀阶矩、⼆阶矩是序贯连通成份算法的⼀个部分.当然,必须使⽤分离变量来累加每⼀区域的矩信息.当区域合并后,每⼀区域的矩累计值也应加到⼀起.算法3.24-连通序贯连通成份算法1.从左⾄右、从上到下扫描图像.2.如果像素点为1,则:(a) 如果上⾯点和左⾯点有⼀个标记,则复制这⼀标记.(b) 如果两点有相同的标记,复制这⼀标记.(c) 如果两点有不同的标记,则复制上点的标记且将两个标记输⼊等价表中作为等价标记.(d) 否则给这⼀个像素点分配⼀新的标记并将这⼀标记输⼊等价表.3.如果需考虑更多的点,则回到第⼆步.4.在等价表的每⼀等价集中找到最低的标记.5.扫描图像,⽤等价表中的最低标记取代每⼀标记.3.5.3 欧拉数在许多应⽤中,亏格数(genus)或欧拉数可作为识别物体的特征.亏格数定义为连通成份数减去空洞数,E-=(3.21)CH其中,E,C和H分别是欧拉数、连通成份数与空洞数.这个式⼦给出了⼀个简单的拓朴特征,这种拓扑特征具有平稳、旋转和⽐例不变特性.图3.11给出了⼀些例⼦及其对应的欧拉数.==EE2=E1-图3.11 字母“A”、“B”、“i”及它们的欧拉数.注意前景⽤了8-连通,⽽背景⽤了4-连通.3.5.4 区域边界连通成份S的边界是那些属于S且与?S邻接的点集.使⽤简单的局部运算就可找到边界点.在⼤多数应⽤中,我们都想⽤⼀特定的顺序跟踪边界点.⼀般的算法是按顺时针⽅向跟踪区域的所有点.此处讨论⼀个简单的边界跟踪算法.假定物体边界不在图像的边界上(即物体完全在图像内部),边界跟踪算法先选择⼀起始点S s ∈,然后跟踪边界直到回到起始点.这种算法概括在算法3.3中.这种算法对尺⼨⼤于1个象素的所有区域都是有效的.⽤这种算法求区域8-邻点的边界如图3.12(a)所⽰.为了得到平滑的图像边界,可以在检测和跟踪图像边界后,利⽤边界点的⽅向信息来平滑边界。

第八章 二值图像知识讲解

第八章 二值图像知识讲解

遥感信息工程学院
10

8.1 二值图像的连接性和距离

章 五.象素的可删除性讨论
➢1.象素的可删除性:
当改变一个象素值由1变成0的时候,整个图象连

接成分的连接性不改变,则这个象素被称为是可
值 图
删除的。

➢2.连接性不变:

是指各连接成分不分离,不结合,孔不消除也不

生成。
遥感信息工程学院
11

k 0,2,4,6
如果xk=x8,则令x8=x0 ,通过对X象素8—邻域一切可能存在的值, 进行计算,其连接数总是取0—4之间的值。象素X的连接数作为二值 图象局部的特征量,有着多种多样的应用。
遥感信息工程学院
9

8.1 二值图像的连接性和距离


象素X的邻域以及它的连接数
x3 x2 x1
1
1
Nc8=0,孤立点或内部点; Nc8=1,端点;
3.二值图像处理的流程:
遥感信息工程学院
2

概述:


灰度图像
二值化 二


连接成分的变形



图形特征测量
结构分析描述
分类•测量
识别•理解
二值图像处理流程
遥感信息工程学院
3

8.1 二值图像的连接性和距离

章 一. 邻域和邻接
➢1. 邻域:
对于任意像素(i,j),把像素的集合{(i+p,j+q)}
x4 x x0
1
Nc 4
Nc8=2,连接点;
x5 x6 x7
1

二值图像处理方法

二值图像处理方法
第八章 二值图像处理方法
第8章 概述
灰度图像的二值化处理 二值图像的连续性 二值图像的轮廓跟踪 二值图像的细化
§8.1 灰度图像的二值化处理
定义
确定阈值t的方 法
直方图方法 微分直方图方法 多阈值处理方法
灰度图像的二值化处理 定义
是一种区域分割的技术
灰度图像的二值化处理 定义
设 f (i, j) 表示像素在(i,j)位置的灰度值,二值化处理
3 32 21 32
23 1 2 B3
A 12 12 3
32 3
距离的4-邻域表示
22 21 21 21
2 22 1 1 B2
A 12 1 12
2 2 2 22
距离的8-邻域表示
二值图像的表示
二值图像的一个连接成分在屏幕上的位置的两种表示方法:
直角坐标表示法 (x,y)表示一个像素的坐标。
13 12
11 10
1
2
3
4 5
x
6
7 8 9
y
设置一个数组,用N(1,1)
表示(x1,y1);N(2,2)表示 (x2,y2);……;N(13,
(x13,y13)1。3)表示
那么图像的连接顺序为:
123
13 1
二值图像的表示
链码表示法 一种矢量表示法,具有方向性; 是相互邻接的两个像素按照不同的方向给定一个规定 的数字符号(码)。 用一串这样的符号(码)表示一个连接成分的方法叫 链码表示法。 优点:直观、节约内存。
连接成分的轮廓-4
3、如果4-邻域均不在像素集合R内时,又分两种情况:
1)如果8-邻域内的1、3、5、7方向 中的任一个存在R内时,该像素可能构成 轮廓像素;

05二值图像分析

05二值图像分析
1)提取的目标中存在伪目标物; 2)多个目标物中,存在粘连或者断裂; 3)多个目标物存在形态的不同。
二值图像及其意义
图像定义
一副数字图像是一个二维阵列,阵列元素值称为灰度值 或亮度值。
二值图像定义
只有黑、白两级灰度的图像。分别用1和0表示。
二值图像优点
去掉无关信息的干扰 几何与拓扑特性的表示与分析 节省资源
L = bwlabel(BW,4) [r, c] = find(L==2); rc = [r c]
区域边界—边界跟踪算法
参考“预处理”部分
距离测量
参考"基础"一章对应内容
描述二值图像的特征
• 基于边界的特征
– 链码、边界长度、边界标记、边界形状数
• 基于区域的特征
– 四叉树、围绕区域、骨架、面积、质心、密度、区域 形状数、不变矩、拓扑特征
第五章 二值图像分析 Chapter 5 Binary Image Analysis
Ref. Book
• 二值图像分析基本过程 预处理-->二值化-->图像描述(特征提取)-->分析识别
(预处理和二值化过程参考前面章节)
二值图像分析的意义
经过图像分割之后,获得了目标物与非目标物两 种不同的对象。但是提取出的目标物存在以下的 问题:
L=N *=L,N中小标号
连通成分标记 — 序贯算法
• [L, num] = bwlabel(BW, n)
BW = logical (... [1 1 1 0 1 1 0 0; 1 1 1 0 1 1 0 0; 1 1 1 0 1 0 0 0; 1 1 1 0 0 0 1 0; 1 0 1 0 0 0 1 0; 1 0 1 0 0 1 1 0; 1 1 1 0 0 1 0 0; 1 1 1 0 0 0 0 1]);

4 二值图像分析

4 二值图像分析

d 4
e
可以描述图形的密集程度,1≤ d ≤ 0 。
3 体态比
区域的最小外接矩形的长与宽之比特性: 1)正方形和圆的体态比等于1 2)细长形物体的体态比大于1 下图是几种形状的外接矩形:
4.3 投影
4.3 投影
• 投影能表现图像的某种特征信息 • 给定一条直线,用垂直该直线的一簇等间距直线将一幅二值图像分割成若干
周长 2 e 面积
emin
周长2 面积
对于圆
2 (2 R) =4 2 R
当图形的形状接近于圆时,e 趋近于最小值(4π),反过来,图形的 形状变得越复杂,e的取值变得越大。
区域的密集度:
C
面积 周长2
根据此标准,圆是最密集的图形。 密集度的另一意义:周长在给定后,密集度越高、所围面积越大。 因此,比值
确定为阈值参数 tp 。
2. 状态法
(直方图分析法-峰谷法)
当给定图像的灰度直方 图(与对象图形和背景相对应)
呈双峰型分布时,只需把
这两个峰间的谷底上的灰 度值作为阈值 t 即可。
t
双峰分布示意图
一幅灰度图像和使用不同阈值到的二值图像结果
1) 原始灰度图像
2) 阈值 T=100
3) T=128(反色) 4) T1=100|T2=128
图像中的物体、背景各具有一灰度值( N ),图像被零均值高斯噪声污 染,灰度分布曲线是由两个正态分布函数叠加而成.图像直方图将会出现 两个分离的峰值,阈值选取波谷最佳。 具有不同灰度均值的多物体图像中.背景和物体灰度值正态分布参数 为:
练习:请用不等 式依次排出 4 个 方差的顺序。
2. 迭代式阈值选择
经试验比较,对于直方图双峰明显,谷底较深的图

第七讲 二值图像处理与形状分析重点

第七讲 二值图像处理与形状分析重点

二值图像的连接性和距离

像素的连接

对于二值图像中具有相同值的两个像素A和B,所有和A、B 具有相同值的像素系列p0(=A),p1,p2,…,pn-1,pn(=B)存在,并 且pi-1和pi互为4-/8-邻接,那么像素A和B叫做4-/8-连接,以 上的像素序列叫4-/8-路径。如图8.1.3。
二值图像的连接性和距离
8.2 二值图像连接成分的变形 操作
二值图像连接成分的变形操作

1、连接成分的标记

为区分二值图像中的连接成分,求得连接成分个数,对属于 同一个1像素连接成分的所有像素分配相同的编号,对不同 的连接成分分配不同的编号的操作,叫做连接成分的标记。

对图像进行TV光栅扫描,发现没有分配标号的1像素,对这个像素分 配还没有使用的标号,对位于这个像素8-邻域内的1像素也赋予同一 标号,然后对位于其8-邻域内的1像素也赋予同一标号。
1 0 B 1 1
二值图像连接成分的变形操作

2.4、开运算

先腐蚀后膨胀的运算称为开运算。它一般的作用是消除细小物体。 在纤点处分离物体和平滑物体边界时又不明显改变其面积
A B (A

B) B
2.5、闭运算

先膨胀后腐蚀的运算称为闭运算。它一般的作用是填充物体内细小 空洞,连接相邻物体,在不明显改变其面积的情况下平滑物体
膨胀运算的一个例子
0 0 A 0 0 0 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0
1 0 B 1 1
二值图像连接成分的变形操作

2.3、收缩/腐蚀

腐蚀的运算符为⊙,A用B来腐蚀记作A⊙B

数字图像处理第三章二值图像

数字图像处理第三章二值图像

图 3.13a 4邻点 中轴变换举例 中轴可作为物体的一种简洁表示.
图3.13b表明少量噪声会使中轴变换结果产 生显著的差异.
图 3.13b 中轴变换举例
3.5.7 细化
细化是把区域缩成线条、逼近中心线(骨架或核线)的一种图 像处理。细化的目的是减少图像成份,直到只留下区域的最基 本信息,以便进一步分析和识别.虽然细化可以用在包含任何 区域形状的二值图像,但它主要对细长形(而不是凸圆形或水滴 状)区域有效.细化一般用于文本分析预处理阶段,以便将文本 图像中线条图画或字符笔画表示成单像素线条.
d=i-j+m-1
二值图像及其对 角线上的投影图
3.4游程长度编码 (run-length encoding)
用图像像素值连续为1的个数来描述图像,有两种方法: (1)用1的起始位置和1的游程长度; (2)仅仅使用游程长度,0:表示从0象素开始 ; 例:
1的游程:(2,2)(6,3)(13,6)(20,1) (4,6)(11,10) (1,5 )(11,1)(17,4)

`S
(7) 边界
S的边界是S中与`S中有4连通关系的像素集合S '
(8) 内部
S中不属于它的边界的像素集合. S的内部等于S - S '
(9) 包围
如果从S中任意一点到图像边界的4路径必须与区域T相 交,则区域 T 包围区域 S(或S在T内)
S `S
边界
内部 包围
例:一幅二值图像
图像 边界
3.5.2 连通成分标记算法
(2) 路径
列:
[路i0径,j0 :]从[像,i1,素j1][i0 ,, j,0[]in 到,j像n]素,[[iikn
,
,

数字图像处理第6章二值图像处理-专业文档资料

数字图像处理第6章二值图像处理-专业文档资料

二阶矩则描述了图像的对于直线和对轴与轴的转动惯量,因 此常常也把物体的二阶矩称为惯性矩。
中心矩 :
p q (x x)p(y y )qf(x ,y )d xp d ,q y 0 ,1 ,2
第6章 二值图像处理
低阶矩主要描述区域的面积、转动惯量、质心等等,具有 明显得几何意义,,四阶矩描述峰值的状态等等,一般 来说高阶矩受到图像离散化等的影响,高阶矩一般在应用中 不一定十分准确。
D e(ac)2(bd)2
② 街区距离,用Ds来表示:
(6-1)
D s |ac||bd|
③ 棋盘距离,用Dg表示如下:
(6-2)
D gma a x c|, ( |b|d|)
(6-3)
三者之间的关系为:Dg Ds,如De图6-1(a)、(b)和(c)所示。
第6章 二值图像处理
(a) 欧氏距离 (b) 街区距离 (c) 棋盘距离 (d)≤2构成菱形 (e)≤2构成正方形 图6-1 三种距离示意图
第6章 二值图像处理
6.2 二值图像的几何特征描述
6.2.1 二值图像中曲线的描述 6.2.1.1 轮廓跟踪-甲虫算法
目标区域的边界轮廓是描述目标的重要特征,对于二 值图像中的目标区域轮廓可以通过一种简单的轮廓跟踪算 法来得到,这种方法也被称作甲虫算法。如图6-6所示的二 值图像4连通分量,假定目标区域用1(黑色)表示,背景区域
1 (x,y)(x,y)
f(x,y)
0
else
M1N1
那么区域的面积为: S f (x, y) x0 y0
如果经过目标标记,区域占有的连通分量有k个,那么目
标区域的面积则是k个连通分量的面积总和,即有:
k
S Si i 1

二值图像的处理程序设计—形态学处理

二值图像的处理程序设计—形态学处理

数学形态学兴起于20世纪60年代,是一种新型的非线性算子,它着重研究图像的几何结构,由于视觉信息理解都是基于对象几何特性的,因此它更适合视觉信息的处理和分析,这类相互作用由两种基本运算腐蚀和膨胀及它们的组合运算来完成。

数学形态学为在图像识别、显微图像分析、医学图像、工业图像、机器人视觉方面都有十分重要的应用。

本设计运用MATLAB把一幅图像二值化,并进行膨胀、腐蚀、开启、闭合等处理,这些算法分别能够使图像边缘扩大物体中的空洞;边缘缩小消除小且无意义的物体;保持原目标的大小与形态的同时,填充凹陷,弥合孔洞和裂缝;用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不改变其面积。

关键字:膨胀;腐蚀;开启;闭合1设计目的与要求 (1)1.1设计目的 (1)1.2设计要求 (1)2 MATLAB平台 (2)2.1MATLAB简介 (2)2.2MATLAB的应用 (2)3设计原理 (3)3.1膨胀 (3)3.2腐蚀 (3)3.3开启与闭合 (5)3.4阈值 (5)4设计方案 (6)4.1设计思想 (6)4.2设计流程 (6)5代码实现 (7)6仿真与结果分析 (8)6.1仿真 (6)6.2结果分析 (11)结论 (12)参考文献 (13)二值图像的处理程序设计—形态学处理1设计目的与要求1.1设计目的(1)了解膨胀、腐蚀、开启、闭合四种方法对二值图像的影响,及它们在数字图处理中的应用。

(2)进一步熟悉MATLAB运用和图像处理的知识,加深对图像二值化处理1.2课程设计要求利用所学的数字图像处理技术,自己设计完成对一副灰度图像的形态学运算(膨胀、腐蚀及其组合运算);对一副灰度图像的分块处理运算。

具体要求:(1)熟悉和掌握MATLAB程序设计方法;(2)学习和熟悉MATLAB图像处理工具箱;(3)学会运用MATLAB工具箱对图像进行处理和分析;(4)能对图像jpg格式进行打开、保存、另存、退出等功能操作;(5)利用所学数字图像处理技术知识、MA TLAB软件对图像进行腐蚀,膨胀,开运算,闭运算。

图像分析:二值图像连通域标记

图像分析:二值图像连通域标记

二、连通域
如果像素点A与B邻接,我们称A与B连通,于是我们不加证明的有如下的结论:
三、连通区域的标记
第一行,我们得到两个团:[2,6]和[10,13],同时给它们标记1和2。

下面是这个过程的C++实现,每个等价表用一个vector<int>来保存,等价对列表保存在map<pair<int,int>>里。

整个算法步骤,我们只扫描了一次图像,同时我们对图像中的像素进行标记,要么赋予一个新的标号,要么用它同行P点。

最后不要忘了把C的值加1。

这个过程如下面图像S1中所示。

情况3
1)如果P是外轮廓的起点,也就是说我们是从P点开始跟踪的,那么我们从7号(右上角)位置P1P1开始,看7号在L上标记为一个负值。

如下图所示,其中右图像标记的结果。

2)那么如果P是不是外轮廓的起点,即P是外轮廓路径上的一个点,那么它肯定是由一个点进入的,我们设置为P−
在OpenCV中查找轮廓的函数已经存在了,而且可以得到轮廓之间的层次关系。

这个函数按上面的算法实现起来并不。

二值化图像

二值化图像

二值化图像?二值化——图像只有两种色,黑白。

0-1,0=黑,1=白灰度:0-255彩色:255,255,255定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。

一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。

这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。

其实图像二值化的方法有不下二十种。

一般分为Global和Local两类,区别就是寻找那个阈值的时候使用到了哪里的信息。

一般是为了将感兴趣目标和背景分离。

图像的二值化是最简单的图像处理技术,它一般都跟具体算法联系在一起,很多算法的输入需要是二值数据。

比如你把图像文字转换为PDF 文字,PDF上只能是黑白两种颜色。

比如你给二维码解码,你需要知道哪块黑哪块白。

去掉图像两个字,二值化在视觉里面应用场景多一些。

比如早期的人脸检测很多手势识别的方法,第一步要找到皮肤块,所以需要把图像分为皮肤区域和非皮肤区域,这也算是一种二值化,但通常在方法上用的可能不是基于直方图的了(可能是ID3,随机森林,SVM,甚至神经网络)。

比如Haar特征,以及后来的BRIEF和FAST等,还有LBP实际上都是用到二值的思想。

图像二值化可以看作是聚类,可以看作是分类……这些其实不重要,重要的是它快。

它最明显的意义就是简化后期的处理,提高处理的速度。

`但是单一的图像二值化方法(指基于直方图的二值化)往往比不过其他的方法,因为,毕竟你信息丢了太多。

但是二值化快啊……你可以进行一百次不同的二值化,然后再得到一个更好的结果……上面右图中下面两个图是还可以对二值图像进行编码。

编码后就更好压缩了,那么我们就可以高度节省内存。

图像二值化方法:全局阈值局部阈值9.2 OpenCV中图像二值化方法:评判某个算法是否好,就看二值化图像信息是否丢失了很多。

第八章 二值图像

第八章 二值图像

8.2 8.2二值图像连接成分的变形操作
3.开-闭运算
二 值 图 像 处 理 1)开运算 思路:先腐蚀,再膨胀 定义:B ° S = (B ⊗ S)⊕ S ⊕ 结果:
1)消除细小对象 2)在细小粘连处分离对象 3)在不改变形状的前提下,平滑对象的边缘
遥感信息工程学院
29
第 八 章
8.2 8.2二值图像连接成分的变形操作
2. 腐蚀与膨胀
二 值 图 像 处 理
腐蚀
膨胀
遥感信息工程学院
25
第 八 章
8.2 8.2二值图像连接成分的变形操作
腐蚀与膨胀
二 值 图 像 处 理 1) 腐蚀 定义:E = B ⊗ S = { x,y | Sxy⊆B} 结果:使二值图像减小一圈 算法:
用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0。
遥感信息工程学院
4
第 八 章
8.1 二值图像的连接性和距离
8—邻域与8—邻接: 二 值 图 像 处 理 像素(i,j)上、下、左、右4个像素和4个对角线像素, 称为像素(i,j)的8—邻域。互为8—邻域的两像素叫 8—邻接(或8—连通) 。 在对二值图像进行处理前,是取8—邻接还是4 —邻接,要视具体情况而定。在处理斜线多的图形中, 宜采用8—邻接。 所谓两个象素互相4-/8-邻接,是指它们均存在于4/8-邻域中。
遥感信息工程学院
2
第 八 章
概述: 概述
二 值 图 像 处 理
遥感信息工程学院
3
第 八 章
8.1 二值图像的连接性和距离 一. 邻域和邻接
二 值 图 像 处 理 1. 邻域: 对于任意像素(i,j),把像素的集合{(i+p,j+q)} (p,q是一对适当的整数)叫做像素(i,j)的邻域。即 像素(i,j)附近的像素形成的区域。 2. 4,8—邻域和4,8—邻接: 4—邻域与4—邻接: 像素(i,j)上、下、左、右4个像素称为像素(i,j) 的4—邻域。互为4—邻域的两像素叫4—邻接(或 4—连通) 。

二值图像的腐蚀和膨胀

二值图像的腐蚀和膨胀

⼆值图像的腐蚀和膨胀⼆值图像的腐蚀和膨胀图像数字处理中应⽤相当⼴泛,代码处理也很简单,只不过⼀些资料在介绍腐蚀和膨胀原理时,⽤⼀些形态学、集合上的概念和术语,搞得也有些”⾼深莫测“了。

从图像处理⾓度看,⼆值图像的腐蚀和膨胀就是将⼀个⼩型⼆值图(结构元素,⼀般为3*3⼤⼩)在⼀个⼤的⼆值图上逐点移动并进⾏⽐较,根据⽐较的结果作出相应处理⽽已。

以⼆值图的⾻架为⿊⾊点为例:作图像腐蚀处理时,如果结构元素中的所有⿊⾊点与它对应的⼤图像素点完全相同,该点为⿊⾊,否则为⽩⾊。

作图像膨胀处理时,如果结构元素中只要有⼀个及以上⿊⾊点与它对应的⼤图像素点相同,该点为⿊⾊,否则为⽩⾊。

也就是说,如果结构元素中的所有⿊⾊点与它对应的⼤图像素点没有⼀个相同,该点为⽩⾊,否则为⿊⾊。

结构元素中的所有⿊⾊点与它对应的⼤图像素点没有⼀个相同,说明⼤图的这些像素点都是⽩⾊的,假如⼆值图的⾻架为⽩⾊点,这个对⿊⾊⾻架⼆值图的膨胀处理恰好是对⽩⾊⾻架⼆值图的腐蚀处理。

同理,对⿊⾊⾻架⼆值图的腐蚀处理也就是对⽩⾊⾻架的膨胀处理。

根据这个道理,我们完全可以把对⿊⾊⾻架和⽩⾊⾻架分别所作的腐蚀和膨胀处理代码统⼀起来,使得原来所需要的四段处理代码变成⼆段甚⾄⼀段处理代码。

下⾯是⼀个对32位像素格式⼆值图像数据的腐蚀和膨胀处理的全部代码://---------------------------------------------------------------------------// 定义ARGB像素结构typedef union{ARGB Color;struct{BYTE Blue;BYTE Green;BYTE Red;BYTE Alpha;};}ARGBQuad, *PARGBQuad;//---------------------------------------------------------------------------// 获取⼆值图像data的字节图数据map,⾻架像素是否为⿊⾊VOID GetDataMap(CONST BitmapData *data, BitmapData *map, BOOL blackPixel){// 字节图边缘扩展1字节,便于处理data的边缘像素map->Width = data->Width + 2;map->Height = data->Height + 2;map->Stride = map->Width;map->Scan0 = (void*)new char[map->Stride * map->Height + 1];// +1防最末字节越界BYTE *ps = (BYTE*)data->Scan0;BYTE *pd0 = (BYTE*)map->Scan0;BYTE *pd = pd0 + map->Stride;BYTE *pt = pd;INT srcOffset = data->Stride - data->Width * sizeof(ARGBQuad);UINT x, y;// 如果⾻架像素为⿊⾊,获取异或字节图if (blackPixel){for (y = 0; y < data->Height; y ++, ps += srcOffset){*pd ++ = *ps ^ 255;for (x = 0; x < data->Width; x ++, ps += sizeof(ARGBQuad))*pd ++ = *ps ^ 255;*pd ++ = *(ps - sizeof(ARGBQuad)) ^ 255;}}// 否则,获取正常字节图else{for (y = 0; y < data->Height; y ++, *pd ++ = *(ps - sizeof(ARGBQuad)), ps += srcOffset){for (x = 0, *pd ++ = *ps; x < data->Width; x ++, *pd ++ = *ps, ps += sizeof(ARGBQuad)); }}ps = pd - map->Stride;for (x = 0; x < map->Width; x ++, *pd0 ++ = *pt ++, *pd ++ = *ps ++);}//---------------------------------------------------------------------------// 按结构元素模板templet制作字节掩码数组masks// templet低3字节的低3位对应结构元素,如下⾯的结构元素:// ⽔平垂直⼗字⽅形其它// ○○○○●○○●○●●●○●○// ●●●○●○●●●●●●●●●// ○○○○●○○●○●●●○●●// ⽤templet分别表⽰为:0x000700, 0x020202, 0x020702, 0x070707, 0x020703VOID GetTempletMasks(DWORD templet, DWORD masks[]){for (INT i = 2; i >= 0; i --, templet >>= 8){masks[i] = 0;for (UINT j = 4; j; j >>= 1){masks[i] <<= 8;if (templet & j) masks[i] |= 1;}}}//---------------------------------------------------------------------------VOID Erosion_Dilation(BitmapData *data, DWORD templet, BOOL blackPixel){BitmapData map;GetDataMap(data, &map, blackPixel);PARGBQuad pd = (PARGBQuad)data->Scan0;BYTE *ps = (BYTE*)map.Scan0 + map.Stride;INT width = (INT)data->Width;INT height = (INT)data->Height;INT dstOffset = data->Stride - width * sizeof(ARGBQuad);INT value = blackPixel? 0 : 255;INT x, y;if (templet == 0x0700) // ⽔平结构元素单独处理,可提⾼处理速度{for (y = 0; y < height; y ++, (BYTE*)pd += dstOffset, ps += 2){for (x = 0; x < width; x ++, pd ++, ps ++){if (*(DWORD*)ps & 0x010101)pd->Blue = pd->Green = pd->Red = value;}}}else{DWORD masks[3];GetTempletMasks(templet, masks);for (y = 0; y < height; y ++, (BYTE*)pd += dstOffset, ps += 2){for (x = 0; x < width; x ++, pd ++, ps ++){if (*(DWORD*)(ps - map.Stride) & masks[0] ||*(DWORD*)ps & masks[1] ||*(DWORD*)(ps + map.Stride) & masks[2])pd->Blue = pd->Green = pd->Red = value;}}}delete map.Scan0;}//---------------------------------------------------------------------------// ⼆值图膨胀。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。




连接性矛盾示意图
遥感信息工程学院
7

8.1 二值图像的连接性和距离

章 四.象素的连接数
➢ 某个“1”象素区中的连接数,可以以这个象素的8-邻域 值f(x0)一f(x7)按下式进行计算:

值 图 像 处 理
如果xk=x8,则令x8=x0 ,通过对X象素8—邻域一切可 能存在的值,进行计算,其连接数总是取0—4之间的值。 象素X的连接数作为二值图象局部的特征量,有着多种多 样的应用。

概述:

章 1.定义:
仅含有两级灰度(一般为0,1)的数字图像.
二 2.特点:
值 图
⑴数据量小;

⑵处理速度快,成本低,实时性强;
处 理
⑶能定义几何学的各种概念.
3.二值图像处理的流程:
遥感信息工程学院
1

概述:



值 图 像 处 理
遥感信息工程学院
2

8.1 二值图像的连接性和距离

对连接成分的每一个象素用(x,y)这一坐标来表示。
例:

值 图 像 处 理
设置一数组,用N(1,1)表示(x1, y1);N(2,2) 表 示 ( x2,y2);…; N(13,13) 表 示 ( x13,y13)。 连 接 顺 序为 1→2→3→…→13→1
二 值 图
一个从a1到a2的邻接的像素序列,则我们把像素a1和a2叫 做4-/8-连接。其像素序列叫4—/8—路径。



遥感信息工程学院
5

8.1 二值图像的连接性和距离

章 三.连接成分
➢ 1.连接成分:
在一个二值图象中,如果把相互连接的象素汇集为一组,就产
生了若干个“0”值象素组和“1”值的象素组,我们分别称这些组

为连接成分(ConnectedComponent)。
值 图 像 处 理
➢ 2.孔:
在“0”连接成分中,如果存在与外围的一行、一列的象素不 相 连的成分,则把它叫做孔(Hole)。
➢ 3.单连接成分:
不包含孔的“1”连接成分叫单连接成分。
➢ 4.孤立点:
仅含有一个象素的单连接成分叫孤立点(Isolated Point)。
➢ 5.多重连接成分:
含有孔的“1”连接成分叫多重连接成分。
遥感信息工程学院
6

8.1 二值图像的连接性和距离


在研究一个二值图像连接成分的场合,若1像
素的连接成分用4-/8-连接,而0像素连接成分
不用相反的8-/4-连接就会产生矛盾。在下图中,
二 值 图
如果假设各个1像素用8—连接,因此0像素和1 像素应采用互反的连接形式.
叫做这幅图像的欧拉数或示性数.

E=C-H
值 图
对于一个1像素连接成分,1减去这个连接成分中

包含的孔数的差值叫做这个1像素连接成分的欧拉数
处 理
显然,二值图像的欧拉数是所有1像素连接成分的
欧拉数之和。
遥感信息工程学院
14

8.1 二值图像的连接性和距离

章 七.象素间的距离
➢1.欧几里德距离(欧氏距离) :
当改变一个象素值由1变成0的时候,整个图象连

接成分的连接性不改变,则这个象素被称为是可
ቤተ መጻሕፍቲ ባይዱ
值 图
删除的。

➢连接性不变:

是指各连接成分不分离,不结合,孔不消除也不

生成。
遥感信息工程学院
10

8.1 二值图像的连接性和距离


可以很直观地看到,可删除象素与连接数Nc=1的情况
是一致的。
连接数Nc=1的几个例子
d8[(i,j),(h,k)]=max{|i-h|,|j-k|,[2(|i-h|+|j-k|+1)/3]}
遥感信息工程学院
15

8.1 二值图像的连接性和距离


离开单个像素的距离

值 图 像 处 理
遥感信息工程学院
16

8.1 二值图像的连接性和距离

章 八.二值图象的链码表示
➢1.直角坐标表示法
章 一. 邻域和邻接
➢1. 邻域:
对于任意像素(i,j),把像素的集合{(i+p,j+q)}
二 值 图
(p,q是一对适当的整数)叫做像素(i,j)的邻域。即 像素(i,j)附近的像素形成的区域。

➢2. 4,8—邻域和4,8—邻接:
处 理
4—邻域与4—邻接:
像素(i,j)上、下、左、右4个像素称为像素(i,j)
的4—邻域。互为4—邻域的两像素叫4—邻接(或
4—连通) 。
遥感信息工程学院
3

8.1 二值图像的连接性和距离


8—邻域与8—邻接:
像素(i,j)上、下、左、右4个像素和4个对角线像素,
二 值
称为像素(i,j)的8—邻域。互为8—邻域的两像素叫 8—邻接(或8—连通) 。

在对二值图像进行处理前,是取8—邻接还是4
二 值
de[(i,j),(h,k)]=((i-h)2+(j-k)2)1/2 。 ➢2. 4—邻点距离(街坊距离):

d4[(i,j),(h,k)]=|i-h|+|j-k|
像 处
➢3. 8—邻点距离(国际象棋盘距离):

d8[(i,j),(h,k)]=max(|i-h|,|j-k|)
➢4. 8角形距离
二 值 图 像 处 理
遥感信息工程学院
11

8.1 二值图像的连接性和距离


象素可删除性的实例
二 值 图 像 处 理
象素a,b删除时应慎重
遥感信息工程学院
12

8.1 二值图像的连接性和距离


这里应该讨论的是,应用象素连接数对二值
图象进行删除操作时,除了Nc=1这一条件外, 有时还应考虑连接成分的某些物理性质。例如上
二 值 图
图进行细化操作时,象素a,b的连接数都为1, 但都不能任意将它们删去。否则,细化线被缩短
像 了,失去了重要信息。因此,有关象素连接数应
处 理
用于可删除操作时,应慎重进行。
遥感信息工程学院
13

8.1 二值图像的连接性和距离

章 六. 欧拉数(E)
➢在二值图像中,1像素连接成分数C减去孔数H的值


—邻接,要视具体情况而定。在处理斜线多的图形中,

宜采用8—邻接。
所谓两个象素互相4-/8-邻接,是指它们均存在于4/8-邻域中。
遥感信息工程学院
4

8.1 二值图像的连接性和距离

章 二.像素的连接
在二值图像中,具有两个相同数值的像素a1和a2,若
所有与它们具有相同值的像素,能够在4-/8-邻域内构成
遥感信息工程学院
8

8.1 二值图像的连接性和距离


象素X的邻域以及它的连接数

Nc8=0,孤立点或内部点;

Nc8=1,端点;

Nc8=2,连接点;

Nc8=3,分支点;

Nc8=4,交叉点。

遥感信息工程学院
9

8.1 二值图像的连接性和距离

章 五.象素的可删除性讨论
➢1.象素的可删除性:
相关文档
最新文档