第9章 二值图像处理
(完整word版)二值图像分析
第三章 二值图像分析一幅数字图像是一个二维阵列,阵列元素值称为灰度值或强度值.实际上,图像在量化成数字图像前是一个连续强度函数的集合,场景信息就包含在这些强度值中.图像强度通常被量化成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 k i 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 A j 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χ的最大值与最小值之比:m inm ax χχ=E (3.16) 3.2.3 密集度和体态比区域的密集度(compact )可用下面的式子来度量:2pA C = (3.17) 其中,p 和A 分别为图形的周长和面积.根据这一衡量标准,圆是最密集的图形,其密集密度为最大值π4/1,其它一些图形的比值要小一些.让我们来看一下圆,当圆后仰时,形状成了一椭圆,面积减小了而周长却不象面积减小的那么快,因此密集度降低了.在后仰到极限角时,椭圆被压缩成了一条无限长直线,椭圆的周长为无穷大,故密集度变成了零.对于数字图像, 2p A 是指物体尺寸(像素点数量)除以边界长度的平方.这是一种很好的散布性或密集性度量方法.这一比值在许多应用中被用作为区域的一个特征.密集度的另一层意义是:在给定周长的条件下,密集度越高,围成的面积就越大.注意在等周长的情况下,正方形密集度大于长方形密集度.体态比定义为区域的最小外接矩形的长与宽之比,正方形和圆的体态比等于1,细长形物体的体态比大于1.图3.3所示的是几种形状的外接矩形.图3。
二值图像
像
处
理
连接性矛盾示意图
遥感信息工程学院
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)A是A B的子集。
(2)如果C是D的子集,
则C B是D B的子集。
(3)(A B) B=A B
则C B是D B的子集。
(3)(A B) B=A B
多次开操作或 闭操作没有影 响,只能用一次
二值形态学中的运算对象是集合。设A为图像集合,B为 结构元/结构元素,数学形态学运算是用B对A进行操作。 需要指出,实际上结构元素本身也是一个图像集合。对每 个结构元素可以指定一个原点,它是结构元素参与形态学 运算的参考点。 应注意,原点可以包含在结构元素中,也可以不包含在结 构元素中,但运算的结果常不相同。 二值形态学中两个最基本的运算是腐蚀与膨涨 开操作:先用B对A腐蚀,然后再用B对结果进行膨胀 闭操作:先用B对A膨胀,然后再用B对结果进行腐蚀
使用3x3的结构元素:提取的边界宽度为1个像素 使用5x5的结构元素:提取的边界宽度为2~3个像素
• 使用迭代法进行区域填充/孔洞填充:
X k X k 1 B Ac
区域填充
k = 1,2,3,... Xk=Xk-1,则算法在迭代的第k步结束
初 始 点 条件膨胀:如果对上述公式的左部不加限制,则 膨胀将填充整个区域。利用与Ac的交集将 结果限制在感兴趣区域内,实现条件膨胀
多个目标孔洞的填充
第一个点填充的结果
难点:如何判断黑点是球体内部的点还是背景点? ——智能填充
连通分量的提取
令Y表示一个包含于集合A中的连通分量,并假设Y 中的一个点p是已知的。用下列迭代式生成Y的所有 元素: Xk Xk1 B A
k 1,2,3,...
x0=p,如果Xk=Xk-1,算法收敛,令Y=Xk 区域填充:寻找背景点 连通分量的提取:寻找前景 点
数字图像 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中。
数字图像处理9二值图像全解
二 值 图 像 处 理
遥感信息工程学院
7
第 八 章
8.1 二值图像的连接性和距离
在研究一个二值图像连接成分的场合,若1像 素的连接成分用 4- / 8- 连接,而 0 像素连接成分 不用相反的8-/4-连接就会产生矛盾。在下图中, 如果假设各个 1 像素用 8 — 连接,因此 0 像素和 1 像素应采用互反的连接形式.
3 3 3 3 2 2 2 3 3 2 2 1 2 2 3 3 2 1 0 1 2 3 3 2 2 1 2 2 3 3 2 2 2 3 3 3 3
二 值 图 像 处 理
5 5
2 1 2 1 5 2
2 1 0 1 2
欧几里德距离
4-邻域距离
8-邻域距离
8角形距离
遥感信息工程学院
17
第 八 章
8.1 二值图像的连接性和距离
2.链码表示法(Chain code) 链码表示法可看成是一种矢量表示法。它是相互邻接的两个象 素按照不同的方向给定一个规定的数字符号(或码)。用一串这 样的符号(码)表示一个连接成分的方法叫链码表示法。
遥感信息工程学院
18
第 八 章
8.1 二值图像的连接性和距离
2 3 4 1 0 7 6 a3 3 a4 4 a5 5 a2 2 A (i,j) a6 6 a1 1 a0 0 a7 7
{[1 f ( x0 )] [1 f ( x0 )] [1 f ( x1 )] [1 f ( x2 )]} {[1 f ( x2 )] [1 f ( x2 )] [1 f ( x3 )] [1 f ( x4 )]} {[1 f ( x4 )] [1 f ( x4 )] [1 f ( x5 )] [1 f ( x6 )]} {[1 f ( x6 )] [1 f ( x6 )] [1 f ( x7 )] [1 f ( x0 )]} 1 1 1 1 4
数字图像处理二值图像处理PPT课件
第14页/共57页
(d) 边界的8链码表
•链 码 的 表 示 方 法 具 有 下 面 一 些 有 趣 的 特 性 : • ① 如果曲线上的像素数目为N,那么链码的长度则为N-1; • ② 链码是和起点相关的,不同的起点可以得到不同的链码表示。 • ③ 链码具有平移的不变性,也就是说曲线的位置变动不改变其链码结构; • ④ 曲线的旋转将使得得到的链码中的每个元素分量增加相同的数值。
• 对于离散的的数字图像f(i,j),矩定义为:
• 对于二值图像,在目标区域R有f(i,j)=1,背景区域f(i,j)=0,因此:
M 1 N 1
mpq
i p j q f (i, j) p, q 0,1,2
i0 j0
mpq
ip jq
(i, j)R
第22页/共57页
• 同样的,考察二值图像各阶矩,我们可以知道,其零阶矩m00为目标区域的面 积,也即区域中包含的点数;假设
• ② 对称性:
;
• ③ 三角不等式:
d(A, B) 0
d(A, B) d(B, A) d(A,C) d(A, B) d(B,C)
第2页/共57页
•假 设 计 算 点 P ( a , b ) 与 Q ( c , d ) 间 距 离 可 以 采 取 下 面 的 几 种 定 义 形 式 :
•
① 欧几里德距离,用来De表示,如下式所示:
阶矩称为惯性矩。
•中心矩 :
pq (x x) p ( y y)q f (x, y)dxdy p, q 0,1,2
第21页/共57页
• 低阶矩主要描述区域的面积、转动惯量、质心等等,具有明显得几何意义,而高 阶矩一般主要描述区域的细节特征,比如三阶矩描述扭曲度,四阶矩描述峰值的状 态等等,一般来说高阶矩受到图像离散化等的影响,高阶矩一般在应用中不一定十 分准确。
二值图象分析BinaryImageAnalysis
06
二值图像的应用实例
文字识别
总结词
文字识别是二值图像分析的一个重要应用,通过将文字转换为二值图像,可以方便地进行文字提取、识别和分类。
详细描述
在文字识别中,首先将文字图像进行预处理,包括去噪、二值化、归一化等操作,然后利用特征提取和分类器进 行文字识别。常见的文字识别方法有基于模板匹配、基于深度学习的OCR等。
基于神经网络的分类方法
总结词
基于神经网络的分类方法是一种深度学习方法,通过训练神经网络来识别和分类二值图 像中的对象。
详细描述
基于神经网络的分类方法的基本思想是,利用神经网络学习大量的训练样本,通过训练 得到一个能够自动识别和分类二值图像中的对象的模型。常用的神经网络模型有卷积神
经网络(CNN)、循环神经网络(RNN)等。
基于聚类的分类方法
总结词
基于聚类的分类方法是一种无监督学习方法,通过将像素点聚类成不同的组,将每个组视为一个类别 。
详细描述
基于聚类的分类方法的基本思想是,利用聚类算法将像素点聚类成若干个组,每个组内的像素点具有 相似的灰度值或特征,然后根据聚类结果将像素点分类。常用的聚类算法有K-means、DBSCAN等。
指纹识别
总结词
指纹识别是利用二值图像分析技术对指 纹进行提取、匹配和分类的过程,是身 份识别的一种重要手段。
VS
详细描述
在指纹识别中,首先对指纹图像进行预处 理,包括增强、二值化、细化等操作,然 后提取指纹的特征点,如脊线方向、脊线 间距等,最后进行匹配和分类。常见的指 纹识别算法有基于细节点匹配和基于图像 特征的匹配等。
连通区域标记通常使用深度优先搜索(DFS)或广度 优先搜索(BFS)算法实现,标记后的每个连通区域都 有一个唯一的标识符。
图像处理之常见二值化方法汇总
图像处理之常见⼆值化⽅法汇总图像处理之常见⼆值化⽅法汇总图像⼆值化是图像分析与处理中最常见最重要的处理⼿段,⼆值处理⽅法也⾮常多。
越精准的⽅法计算量也越⼤。
本⽂主要介绍四种常见的⼆值处理⽅法,通常情况下可以满⾜⼤多数图像处理的需要。
主要本⽂讨论的⽅法仅针对RGB⾊彩空间。
⽅法⼀:该⽅法⾮常简单,对RGB彩⾊图像灰度化以后,扫描图像的每个像素值,值⼩于127的将像素值设为0(⿊⾊),值⼤于等于127的像素值设为255(⽩⾊)。
该⽅法的好处是计算量少速度快。
缺点更多⾸先阈值为127没有任何理由可以解释,其次完全不考虑图像的像素分布情况与像素值特征。
可以说该⽅法是史最弱智的⼆值处理⽅法⼀点也不为过。
⽅法⼆:最常见的⼆值处理⽅法是计算像素的平均值K,扫描图像的每个像素值如像素值⼤于K像素值设为255(⽩⾊),值⼩于等于K像素值设为0(⿊⾊)。
该⽅法相⽐⽅法⼀,阈值的选取稍微有点智商,可以解释。
但是使⽤平均值作为⼆值化阈值同样有个致命的缺点,可能导致部分对象像素或者背景像素丢失。
⼆值化结果不能真实反映源图像信息。
⽅法三:使⽤直⽅图⽅法来寻找⼆值化阈值,直⽅图是图像的重要特质,直⽅图⽅法选择⼆值化阈值主要是发现图像的两个最⾼的峰,然后在阈值取值在两个峰之间的峰⾕最低处。
该⽅法相对前⾯两种⽅法⽽⾔稍微精准⼀点点。
结果也更让⼈可以接受。
⽅法四:使⽤近似⼀维Means⽅法寻找⼆值化阈值,该⽅法的⼤致步骤如下:1. ⼀个初始化阈值T,可以⾃⼰设置或者根据随机⽅法⽣成。
2. 根据阈值图每个像素数据P(n,m)分为对象像素数据G1与背景像素数据G2。
(n为⾏,m为列)3. G1的平均值是m1, G2的平均值是m24. ⼀个新的阈值T’ = (m1 + m2)/25. 回到第⼆步,⽤新的阈值继续分像素数据为对象与北京像素数据,继续2~4步,直到计算出来的新阈值等于上⼀次阈值。
前⾯三种在以前的博⽂中都有涉及,最后⼀种⼆值化⽅法的代码如下:package com.gloomyfish.filter.study;package com.gloomyfish.filter.study;import java.awt.image.BufferedImage;import java.util.ArrayList;import java.util.List;public class ThresholdBinaryFilter extends GrayFilter {@Overridepublic BufferedImage filter(BufferedImage src, BufferedImage dest) { int width = src.getWidth();int height = src.getHeight();if ( dest == null )dest = createCompatibleDestImage( src, null );int[] inPixels = new int[width*height];int[] outPixels = new int[width*height];src = super.filter(src, null); // we need to create new onegetRGB( src, 0, 0, width, height, inPixels );int index = 0;int means = getThreshold(inPixels, height, width);for(int row=0; row<height; row++) {int ta = 0, tr = 0, tg = 0, tb = 0;for(int col=0; col<width; col++) {index = row * width + col;ta = (inPixels[index] >> 24) & 0xff;tr = (inPixels[index] >> 16) & 0xff;tg = (inPixels[index] >> 8) & 0xff;tb = inPixels[index] & 0xff;if(tr > means) {tr = tg = tb = 255; //white} else {tr = tg = tb = 0; // black}outPixels[index] = (ta << 24) | (tr << 16) | (tg << 8) | tb;}}setRGB( dest, 0, 0, width, height, outPixels );return dest;}private int getThreshold(int[] inPixels, int height, int width) {// maybe this value can reduce the calculation consume;int inithreshold = 127;int finalthreshold = 0;int temp[] = new int[inPixels.length];for(int index=0; index<inPixels.length; index++) {temp[index] = (inPixels[index] >> 16) & 0xff;}List<Integer> sub1 = new ArrayList<Integer>();List<Integer> sub2 = new ArrayList<Integer>();int means1 = 0, means2 = 0;while(finalthreshold != inithreshold) {finalthreshold = inithreshold;for(int i=0; i<temp.length; i++) {if(temp[i] <= inithreshold) {sub1.add(temp[i]);} else {sub2.add(temp[i]);}}means1 = getMeans(sub1);means2 = getMeans(sub2);sub1.clear();sub2.clear();sub2.clear();inithreshold = (means1 + means2) / 2;}long start = System.currentTimeMillis();System.out.println("Final threshold = " + finalthreshold); long endTime = System.currentTimeMillis() - start;System.out.println("Time consumes : " + endTime);return finalthreshold;}private static int getMeans(List<Integer> data) {int result = 0;int size = data.size();for(Integer i : data) {result += i;}return (result/size);}}效果如下:。
图像处理中的图像二值化算法
图像处理中的图像二值化算法随着科技的发展,图像处理技术应用越来越广泛。
作为一项基础技术,图像二值化算法在图像处理中扮演着非常关键的角色,它可以将图像分割成黑白两种颜色,也就是将图像中的灰度值转化为0和1,简化了后续的处理流程。
本文将介绍图像二值化算法的基本原理和应用情况。
一、二值化算法的基本原理在图像中,每个像素都有一定的灰度值,在8位灰度图像中,灰度值的范围在0-255之间,其中0是代表黑色,255代表白色。
当我们需要处理一张图片时,如果直接对每一个灰度值进行处理,那么处理的过程就会非常繁琐,因此,我们需要将图像灰度值转化为0和1两种数字进行处理。
常见的二值化算法有全局阈值算法、局部阈值算法、自适应阈值算法、基于梯度算法等。
其中,全局阈值算法是最基本、最简单的一种算法。
它将整张图像分成黑白两个部分,通过将整个图像的像素点的灰度值与一个固定的阈值进行比较,如果像素点的灰度值大于阈值,就将该像素点的灰度值置为1,否则置为0。
使用全局二值化算法的步骤如下:1.将图像读入到内存中;2.将图像转化为灰度图像;3.计算整个图像的平均灰度值,该平均灰度值作为全局阈值;4.将图像中每个像素点的灰度值与该全局阈值进行比较,灰度值大于等于该全局阈值的像素点赋值为255(代表白色),小于该阈值的像素点赋值为0(代表黑色);5.输出处理后的图像。
当然,这种方法的缺点也非常明显,那就是无法适应不同场合下的图像处理需求,处理效果难以保证。
因此,我们需要更为灵活的算法和方法来进行二值化处理。
二、不同类型的二值化算法1.基于直方图的全局阈值法二值化算法中的全局阈值算法通常是将整个图像分成两类像素:一类像素比较暗,另一类像素比较亮。
在直方图中,该分割就是直方图上的两个峰。
我们可以通过直方图分析来确定这个阈值,并将灰度值低于阈值的像素变为黑色,将灰度值高于阈值的像素变为白色。
对于图像I(x,y),它的灰度直方图h(i)可以表示为:h(i) = N(i) / MN (i=0,1,…,L-1)其中N(i)是图像中所有像素灰度值为i的像素数量,MN是总的像素数量,L是灰度级别数量(在8位图像中,L等于256)然后我们需要确定一个阈值T,所有像素点的灰度值小于T的变为黑色,大于等于T的变为白色。
二值图像处理的程序设计形态学处理
二值图像处理的程序设计形态学处理1相关知识1.1 MATLAB在图像处理中的应用MATLAB7.x提供了20类图像处理函数,涵盖了图像处理包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。
这些函数按功能可分为图像显示、图像文件I/O、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、结构元素创建与处理、基于边缘的处理、色彩映射表操作、色彩空间变换及图像类型与类型转换。
Matlab数字图像处理工具箱函数包括以下几类:(1)图像显示函数;(2)图像文件输入、输出函数;(3)图像几何操作函数;(4)图像像素值及统计函数;(5)图像分析函数;(6)图像增强函数;(7)线性滤波函数;(8)二维线性滤波器设计函数;(9)图像变换函数;(10)图像邻域及块操作函数;(11)二值图像操作函数;(12)基于区域的图像处理函数;(13)颜色图操作函数;(14)颜色空间转换函数;(15)图像类型和类型转换函数。
1.2 图像处理概念图像处理并不仅限于对图像进行增强、复原和编码,还要对图像进行分析,图像分析旨在对图像进行描述,即用一组数或符号表征图像中目标区的特征、性质和相互间的关系,为模式识别提供基础。
描述一般针对图像或景物中的特定区域或目标。
闭运算通常用来填充目标内细小空洞,连接断开的邻近目标,平滑其边界的同时不明显改变其面积。
1.3 图像二值化的基本原理图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。
图像预处理(二值化)
图像预处理(⼆值化)图像预处理(⼆值化)本⽂的实验室主要通过opencv与python3实现,相关的代码可以在GitHub中找到。
1. 图像获取与灰度化通过摄像头获取到的图像为彩⾊的图像。
彩⾊图像主要分为两种类型,RGB及CMYK。
其中RGB的彩⾊图像是由三种不同颜⾊成分组合⽽成,⼀个为红⾊,⼀个为绿⾊,另⼀个为蓝⾊。
⽽CMYK类型的图像则由四个颜⾊成分组成:青C、品M、黄Y、⿊CMYK类型的图像主要⽤于印刷⾏业。
每个图像的像素通常对应于⼆维空间中⼀个特定的位置,并且有⼀个或者多个与那个点相关的采样值组成数值。
灰度图像,也称为灰阶图像,图像中每个像素可以由0(⿊)到255(⽩)的亮度值(Intensity)表⽰。
0-255之间表⽰不同的灰度级。
将彩⾊图像转化成为灰度图像的过程称为图像的灰度化处理。
灰度化,在RGB模型中,如果R=G=B时,则彩⾊表⽰⼀种灰度颜⾊,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需⼀个字节存放灰度值(⼜称强度值、亮度值),灰度范围为0-255。
彩⾊图像中的每个像素的颜⾊有R、G、B三个分量决定,⽽每个分量有255个值可取,这样⼀个像素点可以有1600多万(255255255)的颜⾊的变化范围。
⽽灰度图像⼀个像素点的变化范围为255种,所以在数字图像处理种⼀般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少⼀些。
灰度图像的描述与彩⾊图像⼀样仍然反映了整幅图像的整体和局部的⾊度和亮度等级的分布和特征。
对于灰度化的⽅式有分量法、最⼤值法、平均值法,加权平均法等。
本⽂使⽤平均值法对图像进⾏灰度化。
对于平均值法,将彩⾊图像中的R、G、B三个分量的亮度求简单的平均值,将得到的值作为灰度值输出⽽得到灰度图。
其实现的表达式如下:通过实验得到得到如下图所⽰,灰度化前后:2.⼆值化通过以上对彩⾊图⽚进⾏灰度化以后,把获取到的灰度图像进⾏⼆值化处理。
对于⼆值化,其⽬的是将⽬标⽤户背景分类,为后续车道的识别做准备。
二值图像处理
3.1 形态学运算 ....................................................... 15 3.1.1 二值腐蚀 ........................................................................................................ 15 3.1.2 二值膨胀 ........................................................................................................ 16 3.1.3 二值开运算 ..................................................................................................... 16 3.1.4 二值闭运算 .................................................................................................... 17
本文研究和实现了常用经典边缘检测算子(Roberts 算子,Sobel 算子,Canny 算子等),针对试验结果进行分析对比,总结各种算子适合处理对象的条件。在研究二 值形态学基础理论,将 candy 算子结合二值形态学应用于图像的边缘检测,并仿真实 现。试验结果表明运用二值形态学进行边缘检测,简化处理的处理复杂度,能够有效 的提高边缘提取的精度,降低伪边缘出现的概率,减少运算量,从而为后续图像的处 理提供方便。
MATLAB技术二值图像处理
MATLAB技术二值图像处理图像处理是计算机视觉与计算机图形学中的核心内容之一,而二值图像处理则是图像处理中的重要分支之一。
MATLAB作为一款常用的科学计算软件,其强大的图像处理功能为研究者和工程师提供了便利。
本文将在5000字左右的篇幅内,探讨MATLAB技术在二值图像处理中的应用。
1. 简介二值图像是由仅包含两种灰度值的像素组成的图像。
在二值图像中,每个像素只能取两种颜色之一,常见的为黑色和白色。
二值图像处理主要包括二值图像的生成、分割和特征提取等过程。
而MATLAB提供了一系列的函数和工具箱,能够有效地处理二值图像,实现各种图像处理任务。
2. 二值图像的生成在图像处理过程中,可能需要将一幅彩色图像转化为二值图像。
MATLAB提供了多种方法来实现二值图像的生成,其中最常用的是基于阈值的方法。
通过设定适当的阈值,可以将彩色或灰度图像中的像素分为黑色和白色两类。
借助MATLAB中的im2bw函数,我们可以方便地实现这一过程。
3. 二值图像的形态学处理形态学处理是二值图像处理中的重要方法之一。
它通过改变图像的形状和结构,实现图像的去噪、分割、填充等目的。
MATLAB提供了丰富的形态学处理函数,如腐蚀、膨胀、开运算和闭运算等。
这些函数能够对二值图像进行局部或全局的形状改变,从而达到预期的处理效果。
4. 二值图像的边缘检测边缘检测是图像处理中的常见任务,它用于检测图像中的边缘或轮廓。
在二值图像中,边缘通常被定义为两个灰度值之间的边界或过渡区域。
MATLAB提供了多种边缘检测算法,如Sobel算子、Prewitt算子和Canny算子。
这些算子能够根据像素的灰度值变化,将边缘和非边缘像素区分开来。
5. 二值图像的形状分析形状分析是对二值图像中的对象进行形状特征描述和分析的过程。
它能够提取出对象的面积、周长、凸度等特征,用于图像分类、目标识别等任务。
MATLAB 提供了多种形状分析函数,如bwpropfilt和regionprops等。
二值图像
13
6.3 腐蚀和膨胀
二值形态学中的运算对象是集合。设A为图像集合,B为结 构元素,数学形态学运算是用B对A进行操作。二值形态学中两 个最基本的运算——腐蚀与膨胀。
二值图像 腐蚀 膨胀
14
6.3.1 腐蚀
腐蚀是一种消除边界点,使边界向内部收缩的过程。
X k ( X k 1 B) Ac
k 1,2,3,
这里X0=p,结构元素为B,结束条件Xk=Xk-1。
121
实现:
X k XX k 1 X kB) B) Ac ( k ( 1 A
c
k 1,2,3,,3, k 1 2,
122
举例:使用形态学处理填充区域
如果 A B ,则称互斥的或不相容的。
7
补集:对一幅图像A,在图像A区域以外的所有点
构成的集合称为A的补集,记作:
A {w | w A}
c
差集:记为A-B,定义为:
A B {w | w A, w B} A B
c
8
举例:集合的基本运算
9
位移: A用b=(b1,b2)位移,记为(A)z,定义为:
59
定义:
B称为结构元素
A用B来膨胀写作 A B ,定义为:
ˆ A B x | ( B) x A
ˆ 理解:用B来膨胀A得到的集合是 B 的位移与A至少有一个非
零元素即相交时B的原点位置的集合。
60
方法: 先对B做关于原点的映象,再将其映象平移x,结 果是平移后与A交集不为空的x集合。
A B {x | B1 x A且B2 x A }
二值化图像
二值化图像?二值化——图像只有两种色,黑白。
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中图像二值化方法:评判某个算法是否好,就看二值化图像信息是否丢失了很多。
《遥感数字图像处理》第九章图像二值化的处理方法(82P)
图像预处理图像分析校正、增强、恢复分割、图像的连接、轮廓跟踪与细化。
分类与识别图像理解着重强调在图像之间进行变换。
主要是对图像进行各种操作以改善图像,或者校正图像误差等,狭义图像处理是从一个图像到另一个图像。
主要是对图像中感兴趣的目标进行检测和量测,从而建立对图像的描述。
图像分析是从一个图像到数值或符号表示过程。
进一步研究图像中各目标物的性质、特征和它们之间的相互关系,并给出对图象内容的理解和对地面客观地物、场景的解译第九章二值图像的处理方法主要内容⏹灰度图像的二值化处理⏹二值图像的连续性⏹二值图像的轮廓跟踪⏹二值图像的细化⏹二值形态学基本运算9.1 灰度图像的二值化处理是一种区域分割的技术图像的二值化处理设表示像素在(i,j)位置的灰度值,二值化处理为下式所示。
),(j i f 0255),(j i f tj i f t j i f ),(),(这里t 称为二值化阈值(Threshold).目标背景阈值的选取直方图二值图像阈值128阈值103阈值94确定阈值t的方法⏹1、全局阈值整幅图像用一个阈值处理。
当对比度强的图像。
前景和背景灰度值差别较大时频数t灰度级直方图呈现双峰分布前景和背景灰度值差别较小,但呈现双峰分布。
T )(z P o )(z P b )(T E b )(T E o )(z P 0z()b p z ()o p z误分割率最小的分割阈值。
背景和目标的概率密度分别是整幅图像的混合概率密度是其中和分别是背景和目标区域的平均灰度值,和是均值的均方差,和分别是背景和目标区域灰度值的先验概率。
()()()b b o o p z P p z P p z )()(z p z po b 和)(z p b ob o oP b P 1b o P P 最优阈值的选取如图所示,如果确定阈值是T ,则小于T 的像素分割为背景而使得灰度值大于T 的像素分割为目标。
这时,错误地将目标像素划分为背景的概率和将背景像素错误地划分为目标的概率分别为:T o b dz z p T E )()(T b o dz z p T E )()(确定最佳阈值:而总的误差概率是2、多阈值处理方法物体和背景的对比度在图像各处不一样时,需要选取多个阈值进行处理。
二值图像分析BinaryImageAnalysis
门限处理(阈值分割) 阈值举例 选择直方图中双峰之间的谷底作为全局阈值
门限处理(阈值分割) 阈值举例
门限处理(阈值分割)
阈值举例
玩家手中的扑克牌,要对其进行视觉上的分析
原始图像
阈值图像
门限处理(阈值分割)
阈值举例
如果设置了错误的阈值,结果是很糟糕的
太小的阈值
太大的阈值
门限处理(阈值分割)单值阈值的问题 单值阈值只能对双峰直方图工作得较好 对于其它类型的直方图,需要更多的阈值
一幅灰度图像和使用不同阈值得到的二值图 像结果
门限处理(阈值分割)
图像分割的经典方法是基于灰度阈值的分割方法. 由于图像门限处理的直观性和易于实现的性质,使 它在图像分割应用中处于中心地位.
1 g ( x, y ) 0
常用的方法是求解 灰度直方图中的双峰 或者多峰,并以两峰 之间的谷底作为阈值
腐蚀
定义:物体的颜色是白 = 1,背景是黑 = 0, 度,而是一种标志量。 定义腐蚀模板为 1 1 1 1 1 1 1 1 1 逻辑操作算子是Or 模板的效果相当于去掉物体边界处的单个象素
//并非指灰
4种情况: 当前处理象素为1,邻域象素全为 1 =》1 当前处理象素为1,邻域象素为 1、0 的混合 =》0 当前处理象素为0,邻域象素全为 0 =》0 当前处理象素为0,邻域象素为 1、0 的混合 =》0
4.应用: 用于定位
物体的方向:
定义为最小惯量轴(主轴)的方向。
最小惯量轴:目标物上找一条直线,使目标上的 所有点到这条直线的垂直距离的平方和最小、
最小外接矩形
最大外接矩形
在已知物体的边界时,用其外接矩形的尺寸来刻画它的基本 形状是最简单的方法。如果仅计算其在坐标系方向上的外接 矩形是很简单的,只需计算物体边界点的最大和最小坐标值, 就可得到物体的水平和垂直跨度。但通常需要计算反映物体 形状特征的主轴方向上的长度和与之垂直方向上的宽度,这 样的外接矩形是物体最小的外接矩形(MER-Minimum Enclosing Rectangle)。计算MER的一种方法是将物体在90 度范围内等间隔地旋转,每次记录其坐标系方向上的外接矩 形参数,取其面积为最小的矩形的参数为主轴意义下的长度 和宽度,如图所示。通常主轴可以通过矩(Moments)(//可 以理解成最小惯量么?)的计算得到,也可以用求物体的最 佳拟合直线的方法求出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
四近邻
八近邻
• 若当前点像素值为 ,其四近邻像素中至少有一个点 若当前点像素值为1, 像素值为1,即认为两点间存在通路,称为四连接。 像素值为 ,即认为两点间存在通路,称为四连接。 • 同样,如果其八近邻像素中至少有一个点的像素值 同样, 为1,称为八连接。 1,称为八连接。
9
•在搜索边界轮廓时,如上图所示,四连接的 在搜索边界轮廓时,如上图所示, 在搜索边界轮廓时 路径(见图(a))与八连接的路径(见图 与八连接的路径( 路径(见图 与八连接的路径 见图(b))各 各 不相同。换句话说, 不相同。换句话说,图(c)中的两点之间的关 中的两点之间的关 系在八连接的意义下是连通的, 系在八连接的意义下是连通的,而在四连接 意义下是不连通的。 意义下是不连通的。
其中,示连通域 NS为连通域中像素的个数; 为连通域中像素的个数; 为质心点的坐标。 (xm,ym)为质心点的坐标。
18
例如, 例如,下图所示连通域的质 心为
1 xm = (3 × 2 + 5 × 3 + 5 × 4 + 5 × 5 + 3 × 6 ) = 4 21 1 ym = (3 × 2 + 5 × 3 + 5 × 4 + 5 × 5 + 3 × 6 ) = 4 21
• 腐蚀处理可以表示成用结构元素对图像进行探测, 腐蚀处理可以表示成用结构元素对图像进行探测, 找出图像中可以放下该结构元素的区域。 找出图像中可以放下该结构元素的区域。 • 膨胀处理可以理解成是对图像的补集进行腐蚀处 理。 • 腐蚀与膨胀属非线性逻辑模板 • 非线性逻辑模板不能用简洁的数学形式表达。 非线性逻辑模板不能用简洁的数学形式表达。 • 它实际上是对邻域内的像素分布模式进行分类后, 它实际上是对邻域内的像素分布模式进行分类后, 根据不同的模式而给出不同处理。 根据不同的模式而给出不同处理。 • 下面给出的各种算法都是针对二值图像的。处理 下面给出的各种算法都是针对二值图像的。 中均使用一定尺寸的模板(结构元素--SE),并 ),并 中均使用一定尺寸的模板(结构元素 ), 假定图中背景像素灰度值为0,景物像素值为1。 假定图中背景像素灰度值为 ,景物像素值为 。 • 有两种典型的非线性逻辑模板: 有两种典型的非线性逻辑模板: ①腐蚀 21 ②膨胀
将相互连接在一起的像素 值全部为1 值全部为1的像素点的集 合称为一个连通域, 合称为一个连通域,如右 所示, 图(b)所示,八连接意义 下是一个连通域, 下是一个连通域,四连接 意义下是三个连通域。 意义下是三个连通域。
10
9.1.2 内部点与边界点
• 在每个连通域中,与背景相邻接的点称为边界点, 在每个连通域中,与背景相邻接的点称为边界点 边界点, 与背景不相邻接的点称为内部点 内部点。 与背景不相邻接的点称为内部点。下图所示是在四 连接与八连接定义下的内部点与边界点的示意图。 连接与八连接定义下的内部点与边界点的示意图。 • 从下图 可以看到,在四连接定义下,内部点是 从下图(b)可以看到 在四连接定义下, 可以看到, 在当前点的八近邻像素点中,没有值为0的点 的点” “在当前点的八近邻像素点中,没有值为 的点”, 而在八连接定义下,内部点是“ 而在八连接定义下,内部点是“在当前点的四近邻 像素点中,没有值为0的点 的点” 像素点中,没有值为0的点”。
第9章
二值图像处理 数学形态学处理) (数学形态学处理)
二值图像分析 —— 问题的提出
经过图像分割之后, 经过图像分割之后,获得了目标物与非 目标物两种不同的对象。 目标物两种不同的对象。但是提取出的 目标物存在以下的问题: 目标物存在以下的问题: 1)提取的目标中存在伪目标物; )提取的目标中存在伪目标物; 伪目标物 2)多个目标物中,存在粘连或者是断裂; )多个目标物中,存在粘连或者是断裂; 3)多个目标物存在形态的不同。 )多个目标物存在形态的不同。 存在形态的不同
1 1 1 0 0 0 1 0 0
0 1 0 1 1 0 0 0
1 0 0 0 1 0 1 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0
注:图像画面上边框处不能被结构元素覆盖的部 分可以保持原来的值不变,也可以置为背景。 分可以保持原来的值不变,也可以置为背景。
例:
22
腐蚀 ——设计思想 设计思想
• 设计一个结构元素,结构元素的原点 设计一个结构元素, 定位在待处理的目标像素上,通过判 断是否覆盖, 断是否覆盖,来确定是否该点被腐蚀 掉。
结构元素
23
腐蚀 —— 算法步骤
1)扫描原图,找到第一个像素值为1的目标点; )扫描原图,找到第一个像素值为 的目标点 的目标点; 2)将预先设定好形状以及原点位置的结构元素的原 ) 点移到该点; 点移到该点; 3)判断该结构元素所覆盖的像素值是否全部为1: )判断该结构元素所覆盖的像素值是否全部为 :
1. 2. 3. 4. 5. 6. 面积 周长 质心 圆形度 矩形度 长宽比
17
质心
•质心原本意思是物体的质量中心。 质心原本意思是物体的质量中心。 质心原本意思是物体的质量中心 •在二值图像中,采用质心的概念,可以对连通 在二值图像中, 在二值图像中 采用质心的概念, 域的几何中心进行描述。为了借用质心的概念, 域的几何中心进行描述。为了借用质心的概念, 假设二值图像的每个像素的“质量” 假设二值图像的每个像素的“质量”是完全相 同的。在此前提下,质心的计算公式定义如下: 同的。在此前提下,质心的计算公式定义如下:
•交叉数是表征当前点像素的八个近邻像素中, 交叉数是表征当前点像素的八个近邻像素中, 交叉数是表征当前点像素的八个近邻像素中 从像素值为1的点到像素值为 的点到像素值为0的点的变化次 从像素值为 的点到像素值为 的点的变化次 数。
13
9.1.4 欧拉数
• 在对二值图像进行分析时,常常会有如下图所示的两 在对二值图像进行分析时, 种不同形式的连通域。把没有孔的连通域称为单连通, 种不同形式的连通域。把没有孔的连通域称为单连通, 至少含有一个孔的连通域称为多连通。 至少含有一个孔的连通域称为多连通。 欧拉数为 • 欧拉数就是用以表征连通域属性的值。定义欧拉数为 欧拉数就是用以表征连通域属性的值。定义欧拉数 二值图像中连通域的个数减去孔的个数。 二值图像中连通域的个数减去孔的个数。
–因此,该连通域的质心为 因此, 因此 (xm,ym)=(4,4)。 ( , )。
19
9.2 腐蚀与膨胀
• 二值图像中的一种主要处理是对所提取的目标 图形进行形态分析。 图形进行形态分析。而形态处理中最基本的是 腐蚀与膨胀。 腐蚀与膨胀。 • 腐蚀与膨胀是两个互为对偶的运算。腐蚀处理 腐蚀与膨胀是两个互为对偶的运算。 的作用是将目标图形收缩, 的作用是将目标图形收缩,而膨胀处理的作用 是将目标图形扩大。 是将目标图形扩大。 • 为了实现腐蚀与膨胀,数学形态学提出了结构 为了实现腐蚀与膨胀, 元素的概念。 元素的概念。所谓结构元素是指具有某种确定 形状的基本结构元素,例如,一定大小的矩形、 形状的基本结构元素,例如,一定大小的矩形、 圆或者菱形等。 圆或者菱形等。
2
目标提取示例 —— 伪目标物
3
目标提取示例 —— 伪目标物
4
多目标提取示例 ——粘连或断裂
5
多目标提取示例 —— 不同形态
6
二值图像分析的目的
• 二值图像的分析 1.首先是区分所提取出的不同的目 首先是区分所提取出的不同的目 标物; 标物 2.然后,对不同的目标物特征差异 然后, 然后 进行描述与计算; 进行描述与计算 3.最后获得所需要的分析结果。 最后获得所需要的分析结果。 最后获得所需要的分析结果
k∈C
N (8) = ∑ ( f (k ) − f (k )i f (k + 1)i f (k + 2))
•下图所示的 种不同的典型连接方式。 下图所示的6种不同的典型连接方式 下图所示的 种不同的典型连接方式。
12
•下表列出了连接数与当前像素点属性之间的 下表列出了连接数与当前像素点属性之间的 关系。 关系。
15
•以右图为例,进行该细线的链码 以右图为例, 以右图为例 计算(为方便观察, 计算(为方便观察,图中未标注 数值的像素点上的值为0)。 )。如 数值的像素点上的值为 )。如 果以实线框中的像素为起点, 果以实线框中的像素为起点,虚 线框中的像素为终点, 线框中的像素为终点,则可得到 该线的链码为: 该线的链码为: 1,0,7,6,5,5,5, , , , , , , , 6,0,0,0 , , ,
16
9.1.6 几何特征的测量
•在图像处理与分析技术中,许多场合下对所拍 在图像处理与分析技术中, 在图像处理与分析技术中 摄的图像进行二值化处理, 摄的图像进行二值化处理,然后对所分割出的 目标区域进行几何特征的测量。 目标区域进行几何特征的测量。 •本节介绍以下几个最基本的二值图像中的几何 本节介绍以下几个最基本的二值图像中的几何 特征量及其计算方法: 特征量及其计算方法:
11 11
9.1.3 连接数与交叉数
•连接数是指在沿着当前点的近邻(四近邻或者 连接数是指在沿着当前点的近邻( 连接数是指在沿着当前点的近邻 是八近邻)像素所构成的边界轨迹上移动时, 是八近邻)像素所构成的边界轨迹上移动时, 通过的像素值为1的点的个数 的点的个数。 通过的像素值为 的点的个数。 •四近邻定义下: (4) = ∑ ( f (k ) − f (k )i f (k + 1)i f (k + 2)) 四近邻定义下: 四近邻定义下 N k∈C 八近邻定义下: 八近邻定义下:
14
9.1.5 链码
• 链码是对线宽为一个像素的细线的轨 迹进行描述的编码; 迹进行描述的编码; • 链码方法是对其坐标序列进行方向编 码的方法。 码的方法。采用链码方法可以对细线 的走向进行清晰的描述与分析。 的走向进行清晰的描述与分析。 • 右图给出了八个方向的编码定义,根 右图给出了八个方向的编码定义, 据这个方向码的定义, 据这个方向码的定义,即可求出一条 细线的链码。在计算细线的链码时, 细线的链码。在计算细线的链码时, 从选定的某个端点出发, 从选定的某个端点出发,按着逆时针 方向搜索下一个细线上的点, 方向搜索下一个细线上的点,并根据 与前一个点的方向位置, 与前一个点的方向位置,对这一点进 行编码,直到终点。 行编码,直到终点。