erosion_circle erosion_circle ErosionCircle ErosionCircle erosion_circle (算子)
名称
erosion_circle erosion_circle ErosionCircle ErosionCircle erosion_circle — 用圆形结构元素腐蚀一个区域。
签名
def erosion_circle (region : HObject, radius : Union[float, int]) -> HObject
描述
erosion_circle erosion_circle ErosionCircle ErosionCircle ErosionCircle erosion_circle applies a Minkowski subtraction with a
circular structuring element to the input regions Region Region Region Region region region .
Because the circular mask is symmetrical, this is identical to an
erosion. The size of the circle used as structuring element is
determined by Radius Radius Radius Radius radius radius 。
The operator results in reduced regions, smoothed region boundaries,
and the regions smaller than the circular mask are eliminated.
It is useful to select only values like 3.5,
5.5, etc. for Radius Radius Radius Radius radius radius in order to avoid a translation
of a region, because integer radii result in a circle having a
non-integer center of gravity which is rounded to the next integer.
执行信息
多线程类型:可重入(与非独占算子并行运行)。
多线程作用域:全局(可从任何线程调用)。
在元组级别上自动并行化。
参数
Region Region Region Region region region (输入对象) region(-array) → object HRegion HObject HRegion Hobject
Regions to be eroded.
RegionErosion RegionErosion RegionErosion RegionErosion regionErosion region_erosion (输出对象) region(-array) → object HRegion HObject HRegion Hobject *
Eroded regions.
Radius Radius Radius Radius radius radius (输入控制) real → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Radius of the circular structuring element.
默认值:
3.5
建议值:
1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 12.5, 15.5, 19.5, 25.5, 33.5, 45.5, 60.5, 110.5
值范围:
0.5
≤
Radius
Radius
Radius
Radius
radius
radius
≤
511.5 (lin)
最小增量:
1.0
建议增量:
1.0
示例 (C++ (HALCON 5.0-10.0))
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
main()
{
cout << "Simulation of 'erosion_circle ()'" << endl;
cout << "First = original image " << endl;
cout << "Red = after segmentation " << endl;
cout << "Blue = after erosion " << endl;
HByteImage img("monkey");
HWindow w;
HRegion circ = HRegion::GenCircle (10, 10, 1.5);
HRegionArray regs = (img >= 128).Connection();
HRegionArray minsub = regs.MinkowskiSub1 (circ, 1);
img.Display (w); w.Click ();
w.SetColor ("red"); regs.Display (w); w.Click ();
w.SetColor ("blue"); minsub.Display (w); w.Click ();
return(0);
}
示例(C)
my_erosion_circle(Hobject In, double Radius, Hobject *Out)
{
Hobject Circle;
gen_circle(&Circle,100.0,100.0,Radius);
minkowski_sub1(In,Circle,Out,1);
}
示例 (C++ (HALCON 5.0-10.0))
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
main()
{
cout << "Simulation of 'erosion_circle ()'" << endl;
cout << "First = original image " << endl;
cout << "Red = after segmentation " << endl;
cout << "Blue = after erosion " << endl;
HByteImage img("monkey");
HWindow w;
HRegion circ = HRegion::GenCircle (10, 10, 1.5);
HRegionArray regs = (img >= 128).Connection();
HRegionArray minsub = regs.MinkowskiSub1 (circ, 1);
img.Display (w); w.Click ();
w.SetColor ("red"); regs.Display (w); w.Click ();
w.SetColor ("blue"); minsub.Display (w); w.Click ();
return(0);
}
示例 (C++ (HALCON 5.0-10.0))
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
main()
{
cout << "Simulation of 'erosion_circle ()'" << endl;
cout << "First = original image " << endl;
cout << "Red = after segmentation " << endl;
cout << "Blue = after erosion " << endl;
HByteImage img("monkey");
HWindow w;
HRegion circ = HRegion::GenCircle (10, 10, 1.5);
HRegionArray regs = (img >= 128).Connection();
HRegionArray minsub = regs.MinkowskiSub1 (circ, 1);
img.Display (w); w.Click ();
w.SetColor ("red"); regs.Display (w); w.Click ();
w.SetColor ("blue"); minsub.Display (w); w.Click ();
return(0);
}
示例 (C++ (HALCON 5.0-10.0))
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
main()
{
cout << "Simulation of 'erosion_circle ()'" << endl;
cout << "First = original image " << endl;
cout << "Red = after segmentation " << endl;
cout << "Blue = after erosion " << endl;
HByteImage img("monkey");
HWindow w;
HRegion circ = HRegion::GenCircle (10, 10, 1.5);
HRegionArray regs = (img >= 128).Connection();
HRegionArray minsub = regs.MinkowskiSub1 (circ, 1);
img.Display (w); w.Click ();
w.SetColor ("red"); regs.Display (w); w.Click ();
w.SetColor ("blue"); minsub.Display (w); w.Click ();
return(0);
}
复杂度
Let F1 be the area of an input region. Then the runtime complexity for one
region is:
结果
erosion_circle erosion_circle ErosionCircle ErosionCircle ErosionCircle erosion_circle 在所有参数正确时返回 2 ( H_MSG_TRUE )。当输入区域为空或不存在时,其行为可通过以下方式设置:
无区域:
set_system('no_object_result',<RegionResult>) set_system("no_object_result",<RegionResult>) SetSystem("no_object_result",<RegionResult>) SetSystem("no_object_result",<RegionResult>) SetSystem("no_object_result",<RegionResult>) set_system("no_object_result",<RegionResult>)
空区域:
set_system('empty_region_result',<RegionResult>) set_system("empty_region_result",<RegionResult>) SetSystem("empty_region_result",<RegionResult>) SetSystem("empty_region_result",<RegionResult>) SetSystem("empty_region_result",<RegionResult>) set_system("empty_region_result",<RegionResult>)
否则,将抛出异常。
可能的前趋
threshold threshold Threshold Threshold Threshold threshold ,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing ,
watersheds watersheds Watersheds Watersheds Watersheds watersheds ,
class_ndim_norm class_ndim_norm ClassNdimNorm ClassNdimNorm ClassNdimNorm class_ndim_norm
可能的后继
connection connection Connection Connection Connection connection ,
reduce_domain reduce_domain ReduceDomain ReduceDomain ReduceDomain reduce_domain ,
select_shape select_shape SelectShape SelectShape SelectShape select_shape ,
area_center area_center AreaCenter AreaCenter AreaCenter area_center
替代
minkowski_sub1 minkowski_sub1 MinkowskiSub1 MinkowskiSub1 MinkowskiSub1 minkowski_sub1
另见
gen_circle gen_circle GenCircle GenCircle GenCircle gen_circle ,
dilation_circle dilation_circle DilationCircle DilationCircle DilationCircle dilation_circle ,
closing_circle closing_circle ClosingCircle ClosingCircle ClosingCircle closing_circle ,
opening_circle opening_circle OpeningCircle OpeningCircle OpeningCircle opening_circle
模块
基础