midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image (Operator)
Name
midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_image — Mittelwert aus Maximum und Minimum innerhalb einer beliebigen Maske.
Signatur
def midrange_image(image: HObject, mask: HObject, margin: Union[int, float, str]) -> HObject
Beschreibung
midrange_imagemidrange_imageMidrangeImageMidrangeImageMidrangeImagemidrange_image bildet den Mittelwert aus Maximum und Minimum
innerhalb der angegebenen Maske im gesamten Bild. Es kann bei der
Filterung zwischen verschiedenen Randbehandlungen (MarginMarginMarginMarginmarginmargin)
gewählt werden:
Grauwert Bildpunkte außerhalb der Bildränder
werden als konstant (mit dem angegebenen
Grauwert) angenommen.
'continued' Fortsetzung der Randpunkte.
'cyclic' zyklische Fortsetzung der Bildränder.
'mirrored' Spiegelung der Bildpunkte an den Bildrändern.
Die angegebene Maske (= Region des Maskenobjekts) wird so über die zu
filternden Bilder geschoben, dass der Schwerpunkt der Maske alle
Bildpunkte einmal berührt.
Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel
Filter / Glättung beschrieben.
Achtung
Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate
ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben
wird. Weitere Informationen können im Kapitel Filter gefunden
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.
- Automatisch parallelisiert auf Kanalebene.
- Automatisch parallelisiert auf Domainebene.
Parameter
ImageImageImageImageimageimage (input_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (byte / int2 / uint2 / int4 / real)
Zu filterndes Bild.
MaskMaskMaskMaskmaskmask (input_object) region → objectHRegionHObjectHRegionHobject
Filtermaske.
ImageMidrangeImageMidrangeImageMidrangeImageMidrangeimageMidrangeimage_midrange (output_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject * (byte / int2 / uint2 / int4 / real)
Gefiltertes Bild.
MarginMarginMarginMarginmarginmargin (input_control) string → HTupleUnion[int, float, str]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Randbehandlung.
Defaultwert:
'mirrored'
"mirrored"
"mirrored"
"mirrored"
"mirrored"
"mirrored"
Wertevorschläge: 'mirrored'"mirrored""mirrored""mirrored""mirrored""mirrored", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic", 'continued'"continued""continued""continued""continued""continued", 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
Beispiel (HDevelop)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)
Beispiel (C)
read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
midrange_image(Image,Region,&Midrange,"mirrored");
disp_image(Midrange,WindowHandle);
Beispiel (HDevelop)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)
Beispiel (HDevelop)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)
Beispiel (HDevelop)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
midrange_image(Image,Region,Midrange,'mirrored')
dev_display(Midrange)
Komplexität
Pro Bildpunkt: O(sqrt(F) * 5) mit F = Fläche von MaskMaskMaskMaskmaskmask.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert midrange_imagemidrange_imageMidrangeImageMidrangeImageMidrangeImagemidrange_image
den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine
Eingabebilder 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>)set_system("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_imageread_imageReadImageReadImageReadImageread_image,
draw_regiondraw_regionDrawRegionDrawRegionDrawRegiondraw_region,
gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1gen_rectangle1
Nachfolger
thresholdthresholdThresholdThresholdThresholdthreshold,
dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing
Alternativen
sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image
Siehe auch
gen_circlegen_circleGenCircleGenCircleGenCirclegen_circle,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1gen_rectangle1,
gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectGrayErosionRectgray_erosion_rect,
gray_dilation_rectgray_dilation_rectGrayDilationRectGrayDilationRectGrayDilationRectgray_dilation_rect,
gray_range_rectgray_range_rectGrayRangeRectGrayRangeRectGrayRangeRectgray_range_rect
Literatur
R. Haralick, L. Shapiro; „Computer and Robot Vision“;
Addison-Wesley, 1992, Seite 319
Modul
Foundation