Name
inner_circleinner_circleInnerCircleInnerCircle — Ermitteln des größten Inkreises einer Region.
inner_circleinner_circleInnerCircleInnerCircleInnerCircle bestimmt den größten Inkreis einer Region.
Das ist die größte diskrete Kreisregion, die vollständig in die
Eingangsregion passt.
Für diesen Kreis werden der Mittelpunkt (RowRowRowRowrow,
ColumnColumnColumnColumncolumn) und der Radius (RadiusRadiusRadiusRadiusradius) bestimmt.
Ist die Position des Kreises nicht eindeutig definiert, wird die
"erste mögliche" Position (das ist soweit links oben, wie möglich)
zurückgeliefert.
In der Dokumentation zu diesem Kapitel (Regionen / Merkmale) finden
Sie ein Bild mit Regionen, die sich im Durchmesser ihrer Inkreise
unterscheiden.
Die Ausgabe von inner_circleinner_circleInnerCircleInnerCircleInnerCircle ist so gewählt, dass sie als
Eingabe für die HALCON-Operatoren disp_circledisp_circleDispCircleDispCircleDispCircle,
gen_circlegen_circleGenCircleGenCircleGenCircle und gen_ellipse_contour_xldgen_ellipse_contour_xldGenEllipseContourXldGenEllipseContourXldGenEllipseContourXld verwendet
werden kann.
Werden mehrere Regionen in RegionsRegionsRegionsRegionsregions übergeben, werden die
Ausgabeparameter als Tupel zurückgegeben.
Ist die Eingaberegion leer, haben alle Parameter den Wert
0.0, soweit mit set_systemset_systemSetSystemSetSystemSetSystem kein anderes Verhalten
eingestellt wurde.
Wenn mehrere Inkreise bei einer Region vorhanden sind,
wird nur die Lösung, die am weitesten links oben ist, zurückgegeben.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Zu untersuchende Regionen.
Zeilenindex des Mittelpunktes.
Spaltenindex des Mittelpunktes.
Radius des Inkreises.
Zusicherung: Radius >= 0
read_image(Image,'fabrik')
regiongrowing(Image,Seg,5,5,6,100)
select_shape(Seg,H,'area','and',100,2000)
inner_circle(H,Row,Column,Radius)
gen_circle(Circles,Row,Column,Radius)
dev_set_draw('margin')
dev_display(Circles)
read_image(&Image,"fabrik");
open_window(0,0,-1,-1,0,"visible","",&WindowHandle);
regiongrowing(Image,&Seg,5,5,6.0,100);
select_shape(Seg,&H,"area","and",100.0,2000.0);
T_inner_circle(H,&Row,&Column,&Radius);
T_gen_circle(&Circles,Row,Column,Radius);
set_draw(WindowHandle,"margin");
disp_region(Circles,WindowHandle);
read_image(Image,'fabrik')
regiongrowing(Image,Seg,5,5,6,100)
select_shape(Seg,H,'area','and',100,2000)
inner_circle(H,Row,Column,Radius)
gen_circle(Circles,Row,Column,Radius)
dev_set_draw('margin')
dev_display(Circles)
read_image(Image,'fabrik')
regiongrowing(Image,Seg,5,5,6,100)
select_shape(Seg,H,'area','and',100,2000)
inner_circle(H,Row,Column,Radius)
gen_circle(Circles,Row,Column,Radius)
dev_set_draw('margin')
dev_display(Circles)
read_image(Image,'fabrik')
regiongrowing(Image,Seg,5,5,6,100)
select_shape(Seg,H,'area','and',100,2000)
inner_circle(H,Row,Column,Radius)
gen_circle(Circles,Row,Column,Radius)
dev_set_draw('margin')
dev_display(Circles)
Sei F die Fläche der Region und R der Radius des
Inkreises, dann beträgt die Laufzeitkomplexität O(sqrt(F) * R).
inner_circleinner_circleInnerCircleInnerCircleInnerCircle liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe
nicht leer ist. Das Verhalten bei leerer Eingabe (keine Eingaberegionen
vorhanden) lässt sich mittels
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen.
Das Verhalten bei einer leeren Region (Region ist die leere Menge)
wird mit set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>) bestimmt.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
thresholdthresholdThresholdThresholdThreshold,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing,
connectionconnectionConnectionConnectionConnection,
runlength_featuresrunlength_featuresRunlengthFeaturesRunlengthFeaturesRunlengthFeatures
gen_circlegen_circleGenCircleGenCircleGenCircle,
disp_circledisp_circleDispCircleDispCircleDispCircle
erosion_circleerosion_circleErosionCircleErosionCircleErosionCircle,
inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1InnerRectangle1
set_shapeset_shapeSetShapeSetShapeSetShape,
select_shapeselect_shapeSelectShapeSelectShapeSelectShape,
smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle
Foundation