膨胀
dilation_rectangle1
dilation_rectangle1 — 用矩形结构元素进行膨胀。
函数原型:dilation_rectangle1(Region : RegionDilation : Width, Height : )
描述:
dilation_rectangle1对输入区域Region进行矩形膨胀应用。 构造矩形的大小为 Width x Height。该操作得到了放大的区域,并封闭了区域内部比矩形掩模小的孔。
expression_rectangle1是一个非常快速的操作,因为矩形的高度仅以对数形式进入运行时复杂度,而宽度根本不输入。这使得运行时效率非常高,即使在非常大的矩形(边长>100)的情况下也是如此。
注意:
dilation_rectangle1分别应用于每个输入区域。如果要消除不同区域之间的间隙,必须首先调用union1或union2。
要在各个方向上扩大相同的区域,宽度和高度必须是奇数。如果不是这样,区域在右侧或底部分别比在左侧或顶部膨胀更多。
参数:
Region (input_object) :待膨胀区域
RegionDilation (output_object):膨胀后的区域
Width (input_control) :构造矩形的宽度。
默认值:11
建议值:1、2、3、4、5、11、15、21、31、51、71、101、151、201
典型值范围:1≤宽度≤511(lin)
最小增量:1
建议增量:10
Height(input_control):构造矩形的高度
默认值:11
建议值:1、2、3、4、5、11、15、21、31、51、71、101、151、201
典型值范围:1≤高度≤511(lin)
最小增量:1
建议增量:10
Example (C++ (HALCON 5.0-10.0))
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
main()
{
cout << "Reproduction of 'dilation_rectangle ()'" << endl;
cout << "First = original image " << endl;
cout << "Blue = after dilation " << endl;
cout << "Red = after segmentation " << endl;
HByteImage img("monkey");
HWindow w;
HRegionArray regs = (img >= 220).Connection();
HRegionArray dilreg = regs.DilationRectangle1 (2, 4);
img.Display (w); w.Click ();
w.SetColor ("blue"); dilreg.Display (w); w.Click ();
w.SetColor ("red"); regs.Display (w); w.Click ();
return(0);
}
闭运算
消除噪点
: opening_rectangle1(),opening_circle()
用于填充缝隙
: closing_rectangle1(),closing_circle()
先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
closing_rectangle1
closing_rectangle1
— 使用矩形结构元素闭合区域
函数原型:closing_rectangle1(Region
: RegionClosing
: Width
, Height
: )
功能:使用矩形结构元素对区域进行闭运算,填充缝隙 。先膨胀后腐蚀,矩形结构元素的大小由参数宽度和高度决定。区域边界被平滑,区域内小于矩形结构元素的洞被封闭。
参数:
Region(输入参数)——输入区域
RegionClosing(输出参数)——闭合后的区域
Width(输入参数)——矩形结构元素的宽度
Height(输入参数)——矩形结构元素的高度
closing_circle
closing_circle
——使用圆形结构元素闭合区域
函数原型:closing_circle(Region
: RegionClosing
: Radius
:)
功能: 使用圆形结构元素对区域进行闭运算,填充缝隙。先膨胀后腐蚀。对区域边界进行平滑处理,并封闭区域内小于半径的圆形规整元素的孔洞。
注意:close_circle分别对每个输入区域使用。 如果要缩小不同区域之间的间隙,则必须首先调用union1或union2。
参数:
Region(输入参数)——输入区域
RegionClosing(输出参数)——闭运算后的区域
Radius(输入参数)——圆形结构元素的半径
开运算
opening_rectangle1
函数原型:opening_rectangle1(Region
: RegionOpening
: Width
, Height
: )
功能:使用生成的矩形结构元素对区域进行开运算操作。
参数:
Region——要进行开运算操作的区域
RegionOpening——开运算后获得的区域
Width/Height——矩形结构元素的宽和高
opening_circle
函数原型:opening_circle(Region : RegionOpening : Radius : )
功能:使用圆形结构元素对区域进行开运算操作。
参数:
Region——要进行开运算操作的区域
RegionOpening——开运算后获得的区域
Radius——圆形结构元素的半径
示例:
read_image (Image1, 'monkey')
threshold (Image1, Region, 120, 255)
* Close the small gaps.
* closing_circle (Region, RegionClosing, 3.5)
* Select the large regions.
opening_circle (Region, RegionOpening, 3.5)
上列图片分别为原图、阈值分割后的图、闭运算图及开运算图
对图像腐蚀或是膨胀操作后,和原区域做减操作,可以得到区域的内或是外边界