《第7章HALCON数学形态学与Blob分析.pptx》由会员分享,可在线阅读,更多相关《第7章HALCON数学形态学与Blob分析.pptx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、7.17.27.37.47.57.6数学形态学的发展历史及基本概念数学基础形态学基本运算 二值图像数学形态学分析Blob分析数学形态学工程应用第第7章章HALCON数学形态学与数学形态学与Blob分析分析HALCON编程基础与工程应用编程基础与工程应用7.1数学形态学的发展及基本概念数学形态学的发展及基本概念l形态学:通常指生物学中对动植物的形状和结果进行处理的一个形态学:通常指生物学中对动植物的形状和结果进行处理的一个分支。分支。l数学形态学数学形态学(mathematical morphology(mathematical morphology) ):是根据形态学概念发展是根据形态学概念发
2、展而来具有严格数学理论基础的科学,并在图像处理和模式识别领域而来具有严格数学理论基础的科学,并在图像处理和模式识别领域得到了成功应用。除了通常作为一种抽取图像中区域形状特征,如得到了成功应用。除了通常作为一种抽取图像中区域形状特征,如边界、骨骼和凸壳等,的工具外,也经常用于图像的预处理和后处边界、骨骼和凸壳等,的工具外,也经常用于图像的预处理和后处理,如:形态学滤波、细化和修剪等。理,如:形态学滤波、细化和修剪等。l数学形态学是分析几何形状和结构的数学方法,它是建立在集合数学形态学是分析几何形状和结构的数学方法,它是建立在集合代数的基础上用集合论方法定量描述目标几何结构的学科。代数的基础上用集
3、合论方法定量描述目标几何结构的学科。HALCON编程基础与工程应用编程基础与工程应用7.2数学基础数学基础集合论的一些基本概念集合论的一些基本概念属于、不属于、空集属于、不属于、空集令令A是是Z2中的一个集合,如果中的一个集合,如果a是其中的一个元素,称是其中的一个元素,称a属于属于A,并,并记作:记作:a A, 否则,称否则,称a不属于不属于A,记为:,记为: a A ,如,如A中没有任何中没有任何元素,称元素,称A为空集:为空集:子集、并集、交集子集、并集、交集A B, C = A B, C = A B不相连(互斥)、补集、差集不相连(互斥)、补集、差集A B = , Ac = a | a
4、 A , A B = c | c A, c B = A Bc反射(相对某个中心点)反射(相对某个中心点)、移位(相对原点)、移位(相对原点),( ),zBw wb bBAc caz aA HALCON编程基础与工程应用编程基础与工程应用并、交、补、减并、交、补、减集合关系的图形表示集合关系的图形表示HALCON编程基础与工程应用编程基础与工程应用7.3形态学基本运算形态学基本运算 腐蚀 (erosion) 膨胀 (dilation) 开、闭运算 (opening 、 closing) 击中击不中变换 (hit-or-miss)HALCON编程基础与工程应用编程基础与工程应用1、腐蚀、腐蚀 (e
5、rosion)定义:定义:集合集合A被集合被集合B腐蚀,表示为腐蚀,表示为 ,数学形式为,数学形式为BA:AxBxBAA称为输入图像,称为输入图像,B称为结构元素。称为结构元素。边界向内部收缩的过程,如下图所示:边界向内部收缩的过程,如下图所示:腐蚀相关算子:腐蚀相关算子:erosion_circle;erosion_rectangle;erosion1;erosion2等等HALCON编程基础与工程应用编程基础与工程应用2、膨胀、膨胀 (dilation)定义:定义:集合集合A被集合被集合B膨胀,表示为膨胀,表示为 ,数学形式为,数学形式为A称为输入图像,称为输入图像,B称为结构元素。称为结
6、构元素。膨胀可以填充图像内部的小孔及在图像边缘处的小凹陷部膨胀可以填充图像内部的小孔及在图像边缘处的小凹陷部分,并能够磨平图像向外的尖角,如下图所示:分,并能够磨平图像向外的尖角,如下图所示:BACCBABA)(膨胀相关算子:膨胀相关算子:dilation_circle;dilation_rectangle;dilation1;dilation2等等HALCON编程基础与工程应用编程基础与工程应用腐蚀、膨胀操作应用举例腐蚀、膨胀操作应用举例任务:消除二值图像中的不相关细节任务:消除二值图像中的不相关细节(a)原图)原图 (b)腐蚀后图像)腐蚀后图像 (c)膨胀后图像)膨胀后图像HALCON编程
7、基础与工程应用编程基础与工程应用3、开运算、开运算 (opening) 开运算是利用结构元素开运算是利用结构元素B对输入图像对输入图像A进行开运算,进行开运算,用符号用符号 表示,其定义:表示,其定义:开运算是开运算是A先被先被B腐蚀,然后再被腐蚀,然后再被B膨胀。膨胀。 开运算能够使图像的轮廓变得光滑,还能使狭窄的连接开运算能够使图像的轮廓变得光滑,还能使狭窄的连接断开及消除细毛刺,如下图所示:断开及消除细毛刺,如下图所示:BABBABA)(开运算相关算子:开运算相关算子:opening;opening_circle;opening_rectangle1等等HALCON编程基础与工程应用编程
8、基础与工程应用4、闭运算、闭运算 (closing) 闭运算是开运算的对偶运算,定义为先作膨胀然后再闭运算是开运算的对偶运算,定义为先作膨胀然后再作腐蚀。利用作腐蚀。利用B对对A作闭运算表示为作闭运算表示为 ,定义为,定义为:闭运算是用闭运算是用-B对对A进行膨胀,将其结果用进行膨胀,将其结果用-B进行腐蚀。进行腐蚀。 闭运算通常会弥合较窄的间断和细长的沟壑,还能消除闭运算通常会弥合较窄的间断和细长的沟壑,还能消除小的孔洞及填充轮廓线的断裂,如下图所示:小的孔洞及填充轮廓线的断裂,如下图所示:BA)()(BBABA闭运算相关算子:闭运算相关算子:closing;closing_circle;c
9、losing_rectangle1等等HALCON编程基础与工程应用编程基础与工程应用开、闭运算进行形态学滤波举例开、闭运算进行形态学滤波举例过程:先开后过程:先开后闭,开消除噪闭,开消除噪声,闭修复开声,闭修复开运算造成的指运算造成的指纹断裂。纹断裂。例:指纹图像例:指纹图像滤波滤波HALCON编程基础与工程应用编程基础与工程应用5、击中击不中变换击中击不中变换 (hit-or-miss) 击中击不中变换需要两个结构基元击中击不中变换需要两个结构基元E和和F,一个探测图,一个探测图像内部,一个探测图像外部,其定义为:像内部,一个探测图像外部,其定义为:)()(FAEABACFE BEUF 击
10、中与击不中变换是用我们感兴趣的击中与击不中变换是用我们感兴趣的E去腐蚀图像去腐蚀图像A,得到的结果是使得到的结果是使E完全包含于完全包含于A的图像内部时其中心点位的图像内部时其中心点位置的集合置的集合U1,可以将,可以将U1看作是看作是E在在A中所有匹配的中心点中所有匹配的中心点的集合。的集合。 击中击不中示意图如击中击不中示意图如下下图所示图所示:(a)击中元素结构()击中元素结构(b)击不中元素结构()击不中元素结构(c)输入图像)输入图像 (d)击中击不中输出)击中击不中输出击中击不中算相关算子:击中击不中算相关算子:hit_or_miss等等HALCON编程基础与工程应用编程基础与工程
11、应用7.4二值图像数学形态学分析二值图像数学形态学分析 边界提取 (Boundary) 孔洞填充 (Hole filling) 骨架 (skeletons)HALCON编程基础与工程应用编程基础与工程应用1、边界提取边界提取 (Boundary) 腐蚀膨胀最常用的应用是计算区域的边界腐蚀膨胀最常用的应用是计算区域的边界:相当于采用:相当于采用一个一个3*3的结构元素对原图像进行腐蚀,只有那些的结构元素对原图像进行腐蚀,只有那些8邻域都是邻域都是黑点的内部点被保存,再用原图像减去腐蚀后的图像。黑点的内部点被保存,再用原图像减去腐蚀后的图像。(a)原图)原图 (b)腐蚀的结构元素)腐蚀的结构元素B
12、 (c)A被被B腐蚀腐蚀 (d) 用用A减去(减去(c)中腐蚀图像)中腐蚀图像boundary算子算子boundary(Region:RegionBorder:BoundaryType:)Region:想要进行边界提取的区域;:想要进行边界提取的区域;RegionBorder:边界提取后获得的边界区域;:边界提取后获得的边界区域;BoundaryType:边界提取的类型,:边界提取的类型,HALCON编程基础与工程应用编程基础与工程应用2、孔洞填充、孔洞填充 (Hole filling) A表示一个集合,其元素是表示一个集合,其元素是8连通的边界,连通的边界,每个边界包围一个背景区域(即一个孔
13、洞),每个边界包围一个背景区域(即一个孔洞),给定每一个孔洞中一个点,然后从该点开始填给定每一个孔洞中一个点,然后从该点开始填充整个边界包围的区域,公式如下:充整个边界包围的区域,公式如下:ckkABXX)(1其中其中B是结构元素,如果是结构元素,如果Xk=Xk-1,则算法在,则算法在第第k步迭代结束,集合步迭代结束,集合Xk包含了所有被填充的包含了所有被填充的孔洞。孔洞。Xk和和A的并集包含了所有的填充的孔洞的并集包含了所有的填充的孔洞及这些孔洞的边界及这些孔洞的边界。如果不加限制,上式中的膨胀可以填充整个如果不加限制,上式中的膨胀可以填充整个区域,然而每一步中与区域,然而每一步中与A的交集
14、操作都把结果的交集操作都把结果限制在感兴趣区域内,过程如右图所示。限制在感兴趣区域内,过程如右图所示。空洞填充相关算子:空洞填充相关算子:fill_up;fill_up_shape等等HALCON编程基础与工程应用编程基础与工程应用3、骨架骨架 (skeletons) “骨架骨架”是指一幅图像的骨骼部分。是指一幅图像的骨骼部分。二值图像二值图像A的形态学骨架可以通过选的形态学骨架可以通过选定合适的结构元素定合适的结构元素B,对,对A进行连续腐进行连续腐蚀和开运算求得。设蚀和开运算求得。设S(A)表示表示A的骨的骨架,则求图像架,则求图像A的骨架的表达式:的骨架的表达式:K0kk)(S=)A(S
15、ABKB)(A-KB)(A=)A(SHALCONHALCON骨架算子:骨架算子:skeleton(skeleton(RegionRegion: :SkeletonSkeleton:):)junctions_skeleton(junctions_skeleton(RegionRegion: :EndPoinEndPointsts, ,JuncPointsJuncPoints:):)HALCON编程基础与工程应用编程基础与工程应用7.5Blob分析分析 在在HALCON中,中,Blob是是指指一个提取所得的一个提取所得的Region,是指对该二值区,是指对该二值区域进行面积、周长、重心等特征的分析
16、过程。域进行面积、周长、重心等特征的分析过程。Blob分析包含的图像处理技术:分析包含的图像处理技术: (1)图像分割;(2)形态学操作;(3)连通性分析;(4)特征值计算;(5)场景描述;Blob分析流程图Blob分析主要适用于以下图像:分析主要适用于以下图像:(1)二维目标图像;(2)高对比度图像;(3)场景简单图像;Blob分析并不适用于以下情况分析并不适用于以下情况:(1)低对比度图像;(2)必要的图像特征不能用2个灰度级描述;(3)按照模版检测 (图形检测需求);HALCON编程基础与工程应用编程基础与工程应用Blob分析相关算子分析相关算子1.图像获取相关算子图像获取相关算子rea
17、d_image;read_sequence;read_region;read_region;read_region。2.图像分割相关算子图像分割相关算子partition _ dynamic;auto_ threshold;bin_ threshold;char_ threshold;dyn_ threshold;fast_ threshold;threshold;var_ threshold;binary_threshold等。3.形态学处理相关算子形态学处理相关算子Connection;select_shape;erosion;dilation;opening;closing;openin
18、g_circle; closing_circle;opening_rectangle1;closing_rectangle1;difference;intersection;union1;shaps_trans;fill_up;boundary;skeleton;top-hat;bottom-hat;hit-or-miss。4.提取特征相关算子提取特征相关算子area_center;smallest_rectangle1;smallest_rectangle2;compactness;eccentricity;elliptic_axis;area_center_gray;intensity;m
19、in_max_gray。HALCON编程基础与工程应用编程基础与工程应用Blob例程例程例:例:提取圆形焊点的定位与测量提取圆形焊点的定位与测量 图像分析:图像分析:可以看出,目标区域相比背景区域灰度值较小,底部低灰度值横线容易对检测造成干扰,中间存在矩形区域与焊点区域灰度值相近。 编程思路:编程思路:首先应将图像四周边缘剪切掉,以免造成各焊点粘连,采用的方法是区域形状转换与reduce_domain结合的方式;然后用阈值分割提取焊点区域,开运算排除其他干扰,select_shape_std根据形状选择方形区域,用区域相减的方式得到最终焊点区域。最后求取各焊点的最小外接圆半径与中心坐标,HAL
20、CON代码参考本书对应章节。(a)原图)原图 (b)阈值分割)阈值分割 (c)开运算)开运算 (d) 区域相减区域相减 (e)最小外接圆)最小外接圆HALCON编程基础与工程应用编程基础与工程应用7.6数学形态学工程应用数学形态学工程应用 数学形态学在图像处理过程中能够完成图像滤波、图像分割、数学形态学在图像处理过程中能够完成图像滤波、图像分割、图像测量等任务,是图像处理过程中较为关键的一环。图像测量等任务,是图像处理过程中较为关键的一环。1.工业图像处理工业图像处理在在线自动视觉检测系统中,形态学主要用于消除不均匀背景照明并检测缺陷,比如在钢带生产线中检测钢带的擦伤、裂纹等。也被用于自动提取
21、喷涂在板材上网格模式点的节点以估计其冲压后的变形情况。2.材料科学图像处理材料科学图像处理形态学在材料科学领域常用于纤维长度和直径的估计,具体的为用形态学方法分离扫描电子显微镜图像上横断面或交叉纤维中发亮的相连纤维,对于低对比度的图像采用分水岭分割方法和区域邻接图算法。3.医学图像处理医学图像处理医学图像应用形态学的例子更为广泛,比如利用形态学和统计学工具分析共焦细胞图像;利用形态学多分辨率图像表示和分解技术对核磁共振断层扫描图像的融合。HALCON编程基础与工程应用编程基础与工程应用数学形态学工程实例数学形态学工程实例例:小球计数例:小球计数图像分析:图像分析:如图所示,小球所在区域的灰度值
22、较高,但是相邻小球之间存在不同程度的粘连问题,需要考虑如何将他们分开。编程思路编程思路:首先用自动阈值分割将背景去除,提取出小球所在区域,用开运算去除干扰区域,计算连通性后发现存在粘连发生,然后对目标区域用圆结构腐蚀,再次计算连通性,最后膨胀到原始小球大小并计数即可,HALCON代码参考本书对应章节。(b)阈值分割)阈值分割 (c)开运算)开运算 (d)腐蚀)腐蚀 (e)膨胀)膨胀(a)原图)原图HALCON编程基础与工程应用编程基础与工程应用总结总结 形态学图像处理被广泛应用于图像分割和图像描述等方面。本章介绍了二值形态学的基本运算-腐蚀和膨胀,并以此为基础,引出了其他常见的数学形态学运算,如开闭运算、击中击不中变换等。还介绍了Blob分析相关技术,详细阐述了Blob分析的优缺点、应用条件及部分算子。并通过例程的形式展示了目前形态学在各领域的工程应用。HALCON编程基础与工程应用编程基础与工程应用