bottom_hat🔗
Short description🔗
bottom_hat — Compute the bottom hat of regions.
Signature🔗
bottom_hat( region Region, region StructElement, out region RegionBottomHat )
Description🔗
bottom_hat computes the closing of
Region with StructElement. The difference
between the result of the closing and the original region is called
the bottom hat. In contrast to closing, which merges
regions under certain circumstances, bottom_hat computes
the regions generated by such a merge.
The position of StructElement is meaningless, since a
closing operation is invariant with respect to the choice of the
reference point.
Structuring elements (StructElement) can be generated
with operators such as gen_circle, gen_rectangle1,
gen_rectangle2, gen_ellipse,
draw_region, gen_region_polygon,
gen_region_points, etc.
Execution information🔗
Execution information
-
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
-
Multithreading scope: global (may be called from any thread).
Parameters🔗
Region (input_object) region(-array) → object
Regions to be processed.
StructElement (input_object) region → object
Structuring element (position independent).
RegionBottomHat (output_object) region(-array) → object
Result of the bottom hat operator.
Example🔗
(HDevelop)
read_image (Image, 'brake_disk/brake_disk_bike_01')
threshold (Image, Regions, 128, 255)
gen_circle (Circle, 40, 40, 20)
bottom_hat (Regions, Circle, RegionBottomHat)
threshold(Image,&Regions,128.0,255.0)\;
gen_circle(&Circle,100.0,100.0,16.0)\;
bottom_hat(Regions,Circle,&RegionBottomHat)\;
threshold(Image,&Regions,128.0,255.0)\;
gen_circle(&Circle,128.0,128.0,16.0)\;
bottom_hat(Regions,Circle,&RegionBottomHat)\;
set_color(WindowHandle,"red")\;
disp_region(Regions,WindowHandle)\;
set_color(WindowHandle,"green")\;
disp_region(RegionBottomHat,WindowHandle)\;
#include "HalconCpp.h"
main()
{
HByteImage Monkey("monkey")\;
HWindow w\;
HRegion regs = (Monkey >= 128)\;
HRegion circ = HRegion::GenCircle (128, 128, 3)\;
HRegion rbht = regs.BottomHat (circ)\;
Monkey.Display (w)\; w.Click ()\;
w.SetColor ("red")\; regs.Display (w)\; w.Click ()\;
w.SetColor ("green")\; rbht.Display (w)\; w.Click ()\;
return(0)\;
}
Result🔗
bottom_hat returns 2 (H_MSG_TRUE) if all parameters are correct.
The behavior in case of empty or no input region can be set via:
-
no region:
set_system('no_object_result',<RegionResult>) -
empty region:
set_system('empty_region_result',<RegionResult>)
Otherwise, an exception is raised.
Combinations with other operators🔗
Combinations
Possible predecessors
threshold, regiongrowing, connection, union1, watersheds, class_ndim_norm, gen_circle, gen_ellipse, gen_rectangle1, gen_rectangle2, draw_region, gen_region_points, gen_region_polygon_filled
Possible successors
reduce_domain, select_shape, area_center, connection
Alternatives
See also
Module🔗
Foundation