boundary boundary Boundary Boundary boundary (Operator)
Name
boundary boundary Boundary Boundary boundary — Reduzieren einer Region auf deren Rand.
Signatur
Beschreibung
boundary boundary Boundary Boundary Boundary boundary berechnet für jede Eingaberegion in Region Region Region Region region region
die Kontur und gibt diese in RegionBorder RegionBorder RegionBorder RegionBorder regionBorder region_border zurück.
Der Parameter BoundaryType BoundaryType BoundaryType BoundaryType boundaryType boundary_type bestimmt die Art der Randerzeugung.
Die Berechnung der Kontur wird mit Hilfe morphologischer Operationen
durchgeführt. Die Ergebnisregionen bestehen nur aus einem minimalen Rand
der Eingaberegionen. Dabei hängt die Position des Randes vom Parameter
BoundaryType BoundaryType BoundaryType BoundaryType boundaryType boundary_type ab, für den die folgenden Werte möglich sind:
'inner' "inner" "inner" "inner" "inner" "inner" : Die Kontur liegt innerhalb der Eingaberegionen.
'inner_filled' "inner_filled" "inner_filled" "inner_filled" "inner_filled" "inner_filled" : Die Kontur liegt innerhalb der
Eingaberegionen, Hohlflächen der Eingaberegionen werden unterdrückt.
Aufgrund der Algorithmen-Optimierung kann es leichte Abweichung
geben zwischen den so erhaltenen Konturen und den entsprechenden
Konturen die mit 'inner_filled' "inner_filled" "inner_filled" "inner_filled" "inner_filled" "inner_filled" erhalten wurden.
'outer' "outer" "outer" "outer" "outer" "outer" : Die Kontur liegt ein Pixel außerhalb der
Eingaberegionen.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf Tupelebene.
Parameter
Region Region Region Region region region (input_object) region(-array) → object HRegion HObject HRegion Hobject
Regionen, die auf den Rand reduziert werden.
RegionBorder RegionBorder RegionBorder RegionBorder regionBorder region_border (output_object) region(-array) → object HRegion HObject HRegion Hobject *
Ergebnisregionen.
BoundaryType BoundaryType BoundaryType BoundaryType boundaryType boundary_type (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Art der Regionenrandes.
Defaultwert:
'inner'
"inner"
"inner"
"inner"
"inner"
"inner"
Werteliste: 'inner' "inner" "inner" "inner" "inner" "inner" , 'inner_filled' "inner_filled" "inner_filled" "inner_filled" "inner_filled" "inner_filled" , 'outer' "outer" "outer" "outer" "outer" "outer"
Beispiel (C++)
#include "HalconCpp.h"
using namespace Halcon;
main()
{
HWindow w;
HRegion circ1 = HRegion::GenCircle (20, 10, 10.5);
circ1.Display (w);
w.Click ();
HRegion marg1 = circ1.Boundary ("inner");
w.SetColor ("red");
marg1.Display (w);
w.Click ();
return(0);
}
Beispiel (C)
/* Intersections of two circles: */
gen_circle(&Circle1,200.0,100.0,100.5);
gen_circle(&Circle2,200.0,150.0,100.5);
boundary(Circle1,&Margin1,"inner");
boundary(Circle2,&Margin2,"inner");
intersection(Margin1,Margin2,&Intersections);
connection(Intersections,&Single);
T_area_center(Single,NULL,&Rows,&Columns);
/* simulation of Mode 'inner' */
void inner(Hobject Region, Hobject *Border)
{
Hobject Smaller;
erosion_circle(Region,&Smaller,1.5);
difference(Region,Smaller,Border);
}
Beispiel (C++)
#include "HalconCpp.h"
using namespace Halcon;
main()
{
HWindow w;
HRegion circ1 = HRegion::GenCircle (20, 10, 10.5);
circ1.Display (w);
w.Click ();
HRegion marg1 = circ1.Boundary ("inner");
w.SetColor ("red");
marg1.Display (w);
w.Click ();
return(0);
}
Beispiel (C++)
#include "HalconCpp.h"
using namespace Halcon;
main()
{
HWindow w;
HRegion circ1 = HRegion::GenCircle (20, 10, 10.5);
circ1.Display (w);
w.Click ();
HRegion marg1 = circ1.Boundary ("inner");
w.SetColor ("red");
marg1.Display (w);
w.Click ();
return(0);
}
Beispiel (C++)
#include "HalconCpp.h"
using namespace Halcon;
main()
{
HWindow w;
HRegion circ1 = HRegion::GenCircle (20, 10, 10.5);
circ1.Display (w);
w.Click ();
HRegion marg1 = circ1.Boundary ("inner");
w.SetColor ("red");
marg1.Display (w);
w.Click ();
return(0);
}
Komplexität
Sei A die Fläche einer Eingaberegion, dann ist die
Laufzeitkomplexität für ein Objekt:
Ergebnis
Bei korrekter Parametrisierung liefert die Funktion
boundary boundary Boundary Boundary Boundary boundary den Wert 2 (H_MSG_TRUE ). Das Funktionsverhalten für die
beiden Fälle leere und keine Eingaberegion lässt sich wie folgt
kontrollieren:
keine Region:
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>)
leere Region:
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>)
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
threshold threshold Threshold Threshold Threshold threshold ,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing ,
connection connection Connection Connection Connection connection ,
union1 union1 Union1 Union1 Union1 union1 ,
watersheds watersheds Watersheds Watersheds Watersheds watersheds ,
class_ndim_norm class_ndim_norm ClassNdimNorm ClassNdimNorm ClassNdimNorm class_ndim_norm
Nachfolger
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 ,
connection connection Connection Connection Connection connection
Alternativen
dilation_circle dilation_circle DilationCircle DilationCircle DilationCircle dilation_circle ,
erosion_circle erosion_circle ErosionCircle ErosionCircle ErosionCircle erosion_circle ,
difference difference Difference Difference Difference difference
Siehe auch
fill_up fill_up FillUp FillUp FillUp fill_up
Modul
Foundation