形态学操作——膨胀
一提到图像处理,想必大家都会马上联想到阈值处理、腐蚀、膨胀、开闭运算等等图像处理中的常规操作。工作之后如果从事图像处理相关的工作,无论你用啥样的开发平台(Halcon、OpenCV、MATLAB等),这些基础的操作每天都在上演,出现在你的代码里。但你是否清晰其中的操作原理,还是仅仅只是应用,比如腐蚀膨胀,一旦精确到具体数值,该如何合理精确设置结构元大小。接下来和大家先聊一聊形态学操作中的膨胀。
上一篇文章介绍了腐蚀操作,文末留下的问题有推导吗?下面让我们验证下你的猜想。
冈萨雷斯数字图像处理中是这么介绍的:
理论嘛,怎么绕怎么来,可以忽略,只需看我下面示例图讲解就行。
两张图彻底教会你膨胀
下面我通过两张流程图对上一坨理论解释。希望你静下下来一步步认真仔细看我下面的图解分析,一旦你看懂了,再也不用浪费时间百度杂七杂八的理论解释了。
理论解析
结合尺寸解析
这个在今后应用中非常重要,理解透了,你再用算子的时候就可以根据需要合适设置结构元大小,合理设置大小才是资源的最合理话利用。
聊一聊
好了,现在腐蚀、膨胀介绍完了,上一篇提出的问题你是否清晰了呢?
通过这两篇博客的讲解,想必大家都已经清楚腐蚀膨胀两者并不完全是逆运算。如果要实现逆运算需要满足以下条件:
1、结构元必须是规则的图形(正方形、长方形,圆)。两篇博客中图1就不是互逆的,而图2就是互逆的。
2、被腐蚀或者膨胀的集合也必须是规则的(正方形、长方形,圆)。假设被操作的集合是一个矩形,另外矩形边界处有一个小毛刺。那么你用一个大于小毛刺的结构元进行腐蚀操作,得到的结果是去掉毛刺的规则矩形。然后你再用同样大小的结构元进行膨胀操作,最终你得到的是一个没有毛刺的原型矩形,这就是开运算。
OK,接下来我们来说一说开、闭运算那些事。