勇哥的视觉实验:halcon的blob分析(十) 闭运算(closing)与fill_up的差别比较

前言:

一直以来,对于blob分析勇哥没有做系列贴子,现在把它补上。

在halcon中经常听到两个概念,一是blob分析,二是形态学,它们之间是什么关系呢?
答案是:后者是前者的一个子集,或者说是前者的一个步骤。
形态学在blob分析中常见的用于去除噪声影响,常见的算法有:腐蚀、膨胀、开运算、闭运算、
顶帽、黑帽、形态学梯度等等。 详见:http://www.skcircle.com/?id=1643

blob分析主要内容如下:
1、图像分割:如全局阈值、局部阈值、二值化等。
2、形态学操作:如开运算、闭运算、腐蚀、膨胀等。
3、连通性分析:如connect算子
4、特征值计算:如面积、周长、质心坐标等特征
5、场景描述:对场景中目标之间的拓扑关系进行描述。


(一)解释下两种算子


先说说算子fill_up

fill_upRegionRegionFillUp:)

fill_up填充区域中的孔。区域数量保持不变



而闭运算(close)是指的一个系列的形态学算子,常见的有下面这些:

closing(RegionStructElement : RegionClosing : : )

closing_circle(Region : RegionClosing : Radius : )

closing_rectangle1(Region : RegionClosing : WidthHeight : )

closing这个算子需要你自己指定任意结构元素(StructElemnet)。

而后面两个算子指定好了结构元素的类型。


闭运算是总得来讲是先膨胀后腐蚀的过程,可以用于消除一些region内部孔洞并对边缘进行整形。区域的数量保持不变。

但如果是closing算子的话,根据你指定的结构元素(StructElemnet)不同,对region边缘也会有一定影响。


那么结构元素是什么鬼呢?

就如下图所示。

image.png


如果不清楚的话,再看下面的代码与动图演示:

dev_clear_window()
dev_get_window(WindowHandle)
dev_set_draw('margin')
draw_region(Region1, WindowHandle)
draw_circle(WindowHandle, Row, Column, Radius)
gen_circle(Circle, Row, Column, Radius)
difference(Region1, Circle, Region1)

*Region2是结构元素
draw_region(Region2, WindowHandle)
closing(Region1, Region2, RegionClosing)
connection(RegionClosing, ConnectedRegions)
count_obj(ConnectedRegions, n1)

fill_up(Region1, RegionFillUp)

circle1720_转.gif


(二)举个实际栗子


我们来做个实验,来领会一下两者的区别。


代码:

threshold(ImageSub, Region,0,40) 
closing_circle(Region, RegionClosing1, 5.5)
fill_up(RegionClosing1, RegionFillUp)


原图

image.png

(图1)


阈值后

image.png

(图2)


仅仅做fill_up后

image.png

(图3)


做  closing_circle(Region, RegionClosing1, 5.5) 后的效果

image.png

(图4)


(三)结论


通过上面理论与实践,我们知道了fill_up这种算子实际上填充的是连通区域孔,对于边缘非封闭的地方就无能为力了。

这一点对比一下图2、图3就可以知道了。

而闭运算(close)之类的算子会作用到整个region的边界上面(就像是对边缘整形一样),并且内部的孔也可以一并填充。对边界的影响根据结构元素不同而不同。

如果你的目的是想region整个被填充,则用 闭运算 + fill_up二合一 更靠谱(至少不会让情况变坏)。


下图是经过闭运算(close)

image.png

再经过一次fill_up的效果

image.png

当然,设置适当参数或者是结构元素的话,第一张图不经fill_up也是可以完全封闭填充的(但矛盾是我们不容易确定参数的上限)。


--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864