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_imageMidrangeImageMidrangeImagemidrange_image bildet den Mittelwert aus Maximum und Minimum
innerhalb der angegebenen Maske im gesamten Bild. Es kann bei der
Filterung zwischen verschiedenen Randbehandlungen (MarginMarginMarginmarginmargin)
gewählt werden:
- Grauwert
Bildpunkte außerhalb der Bildränder werden als konstant
(mit dem angegebenen Grauwert) angenommen.
- 'continued'"continued""continued""continued""continued"
Fortsetzung der Randpunkte.
- 'cyclic'"cyclic""cyclic""cyclic""cyclic"
Zyklische Fortsetzung der Bildränder.
- 'mirrored'"mirrored""mirrored""mirrored""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
ImageImageImageimageimage (input_object) (multichannel-)image(-array) → objectHImageHObjectHObjectHobject (byte / int2 / uint2 / int4 / real)
Zu filterndes Bild.
MaskMaskMaskmaskmask (input_object) region → objectHRegionHObjectHObjectHobject
Filtermaske.
ImageMidrangeImageMidrangeImageMidrangeimageMidrangeimage_midrange (output_object) (multichannel-)image(-array) → objectHImageHObjectHObjectHobject * (byte / int2 / uint2 / int4 / real)
Gefiltertes Bild.
MarginMarginMarginmarginmargin (input_control) string → HTupleUnion[int, float, str]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Randbehandlung.
Default:
'mirrored'
"mirrored"
"mirrored"
"mirrored"
"mirrored"
Wertevorschläge:
'mirrored'"mirrored""mirrored""mirrored""mirrored", 'cyclic'"cyclic""cyclic""cyclic""cyclic", '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)
Komplexität
Pro Bildpunkt: O(sqrt(F) * 5) mit F = Fläche von MaskMaskMaskmaskmask.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert midrange_imagemidrange_imageMidrangeImageMidrangeImagemidrange_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>)set_system("no_object_result",<Result>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_imageread_imageReadImageReadImageread_image,
draw_regiondraw_regionDrawRegionDrawRegiondraw_region,
gen_circlegen_circleGenCircleGenCirclegen_circle,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1gen_rectangle1
Nachfolger
thresholdthresholdThresholdThresholdthreshold,
dyn_thresholddyn_thresholdDynThresholdDynThresholddyn_threshold,
regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing
Alternativen
sigma_imagesigma_imageSigmaImageSigmaImagesigma_image
Siehe auch
gen_circlegen_circleGenCircleGenCirclegen_circle,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1gen_rectangle1,
gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectgray_erosion_rect,
gray_dilation_rectgray_dilation_rectGrayDilationRectGrayDilationRectgray_dilation_rect,
gray_range_rectgray_range_rectGrayRangeRectGrayRangeRectgray_range_rect
Literatur
R. Haralick, L. Shapiro; „Computer and Robot Vision“;
Addison-Wesley, 1992, Seite 319
Modul
Foundation