opening_seg opening_seg OpeningSeg OpeningSeg (Operator)
Name
opening_seg opening_seg OpeningSeg OpeningSeg
— Trennen von sich überlappenden Regionen.
Warnung
opening_seg opening_seg OpeningSeg OpeningSeg OpeningSeg
ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt.
Signatur
Beschreibung
Die opening_seg opening_seg OpeningSeg OpeningSeg OpeningSeg
-Operation ist als die
Hintereinanderschaltung von erosion1 erosion1 Erosion1 Erosion1 Erosion1
,
connection connection Connection Connection Connection
und dilation1 dilation1 Dilation1 Dilation1 Dilation1
definiert (siehe
Beispiel). Es wird dabei nur eine Iteration bei
erosion1 erosion1 Erosion1 Erosion1 Erosion1
und dilation1 dilation1 Dilation1 Dilation1 Dilation1
ausgeführt.
opening_seg opening_seg OpeningSeg OpeningSeg OpeningSeg
dient zum Trennen von sich überlappenden
Regionen, deren Überlappungsbereich kleiner als
StructElement StructElement StructElement StructElement structElement
ist. Es ist zu beachten, dass sich die
Ergebnisregionen überlappen können ohne dabei zu verschmelzen
(siehe expand_region expand_region ExpandRegion ExpandRegion ExpandRegion
). opening_seg opening_seg OpeningSeg OpeningSeg OpeningSeg
verwendet als
Bezugspunkt den Schwerpunkt des strukturierenden Elementes.
Das strukturierende Element StructElement StructElement StructElement StructElement structElement
kann mit
Operatoren wie gen_circle gen_circle GenCircle GenCircle GenCircle
, gen_rectangle1 gen_rectangle1 GenRectangle1 GenRectangle1 GenRectangle1
,
gen_rectangle2 gen_rectangle2 GenRectangle2 GenRectangle2 GenRectangle2
, gen_ellipse gen_ellipse GenEllipse GenEllipse GenEllipse
,
draw_region draw_region DrawRegion DrawRegion DrawRegion
, gen_region_polygon gen_region_polygon GenRegionPolygon GenRegionPolygon GenRegionPolygon
,
gen_region_points gen_region_points GenRegionPoints GenRegionPoints GenRegionPoints
, etc. erzeugt werden.
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
(input_object) region(-array) →
object HRegion HRegion Hobject
Regionen, die verarbeitet werden sollen.
StructElement StructElement StructElement StructElement structElement
(input_object) region →
object HRegion HRegion Hobject
Strukturierendes Element (lageinvariant).
RegionOpening RegionOpening RegionOpening RegionOpening regionOpening
(output_object) region-array →
object HRegion HRegion Hobject *
Das Ergebnis des Opening-Operators.
Beispiel (HDevelop)
* Simulation of opening_seg
* opening_seg(Region,StructElement,RegionOpening):
erosion1(Region,StructElement,H1,1)
connection(H1,H2)
dilation1(H2,StructElement,RegionOpening,1)
Beispiel (C)
/* Simulation of opening_seg */
my_opening_seg(Hobject Region, Hobject StructElement, Hobject *Opening)
{
Hobject H1,H2;
erosion1(Region,StructElement,&H1,1);
connection(H1,&H2);
dilation1(H2,StructElement,Opening,1);
}
/* separation of circular objects */
gen_random_regions(&Regions,"circle",8.5,10.5,0.0,0.0,0.0,0.0,400,512,512);
union1(Regions,&UnionReg);
gen_circle(&Mask,100,100,8.5);
opening_seg(UnionReg,Mask,&RegionsNew);
Beispiel (HDevelop)
* Simulation of opening_seg
* opening_seg(Region,StructElement,RegionOpening):
erosion1(Region,StructElement,H1,1)
connection(H1,H2)
dilation1(H2,StructElement,RegionOpening,1)
Beispiel (HDevelop)
* Simulation of opening_seg
* opening_seg(Region,StructElement,RegionOpening):
erosion1(Region,StructElement,H1,1)
connection(H1,H2)
dilation1(H2,StructElement,RegionOpening,1)
Beispiel (HDevelop)
* Simulation of opening_seg
* opening_seg(Region,StructElement,RegionOpening):
erosion1(Region,StructElement,H1,1)
connection(H1,H2)
dilation1(H2,StructElement,RegionOpening,1)
Komplexität
Sei F1 die Fläche einer Eingaberegion und F2 die Fläche des
strukturierenden Elementes, dann ist die Laufzeitkomplexität für
ein Objekt:
Ergebnis
Bei korrekter Parametrisierung liefert die Funktion
opening_seg opening_seg OpeningSeg OpeningSeg OpeningSeg
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>)
leere Region:
set_system('empty_region_result',<RegionResult>)
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
threshold threshold Threshold Threshold Threshold
,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing
,
connection connection Connection Connection Connection
,
union1 union1 Union1 Union1 Union1
,
watersheds watersheds Watersheds Watersheds Watersheds
,
class_ndim_norm class_ndim_norm ClassNdimNorm ClassNdimNorm ClassNdimNorm
,
gen_circle gen_circle GenCircle GenCircle GenCircle
,
gen_ellipse gen_ellipse GenEllipse GenEllipse GenEllipse
,
gen_rectangle1 gen_rectangle1 GenRectangle1 GenRectangle1 GenRectangle1
,
gen_rectangle2 gen_rectangle2 GenRectangle2 GenRectangle2 GenRectangle2
,
draw_region draw_region DrawRegion DrawRegion DrawRegion
,
gen_region_points gen_region_points GenRegionPoints GenRegionPoints GenRegionPoints
,
gen_region_polygon_filled gen_region_polygon_filled GenRegionPolygonFilled GenRegionPolygonFilled GenRegionPolygonFilled
Nachfolger
expand_region expand_region ExpandRegion ExpandRegion ExpandRegion
,
reduce_domain reduce_domain ReduceDomain ReduceDomain ReduceDomain
,
select_shape select_shape SelectShape SelectShape SelectShape
,
area_center area_center AreaCenter AreaCenter AreaCenter
,
connection connection Connection Connection Connection
Alternativen
erosion1 erosion1 Erosion1 Erosion1 Erosion1
,
connection connection Connection Connection Connection
,
dilation1 dilation1 Dilation1 Dilation1 Dilation1
Modul
Foundation