emphasizeemphasizeEmphasizeEmphasize (Operator)

Name

emphasizeemphasizeEmphasizeEmphasize — Kontrast des Bildes verbessern.

Signatur

emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )

Herror emphasize(const Hobject Image, Hobject* ImageEmphasize, const Hlong MaskWidth, const Hlong MaskHeight, double Factor)

Herror T_emphasize(const Hobject Image, Hobject* ImageEmphasize, const Htuple MaskWidth, const Htuple MaskHeight, const Htuple Factor)

void Emphasize(const HObject& Image, HObject* ImageEmphasize, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Factor)

HImage HImage::Emphasize(Hlong MaskWidth, Hlong MaskHeight, double Factor) const

static void HOperatorSet.Emphasize(HObject image, out HObject imageEmphasize, HTuple maskWidth, HTuple maskHeight, HTuple factor)

HImage HImage.Emphasize(int maskWidth, int maskHeight, double factor)

Beschreibung

emphasizeemphasizeEmphasizeEmphasizeEmphasize hebt hochfrequente Anteile im Bild hervor (Kanten und Ecken). Das Ergebnisbild erscheint daher schärfer.

Die Prozedur führt zunächst eine Filterung mit dem Tiefpass (mean_imagemean_imageMeanImageMeanImageMeanImage) durch. Aus den so gewonnenen Grauwerten (mean) und den Originalgrauwerten (orig) werden die Ergebnisgrauwerte (res) wie folgt berechnet: res := round((orig - mean) * Factor) + orig FactorFactorFactorFactorfactor dient somit als Maß für die Kontraststeigerung. Die Trennfrequenz wird über die Größe der Filtermatrix festgelegt. Je größer die Matrix ist, desto niedriger wird die Trennfrequenz.

Als Randbehandlungen werden die Grauwerte an den Bildrändern gespiegelt. Über- bzw. Unterlauf von Grauwerten wird beschnitten.

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

Parameter

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / int2 / uint2)

Zu verbesserndes Bild.

ImageEmphasizeImageEmphasizeImageEmphasizeImageEmphasizeimageEmphasize (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / int2 / uint2)

Kontrastverstärktes Bild.

MaskWidthMaskWidthMaskWidthMaskWidthmaskWidth (input_control)  extent.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite der Tiefpassmaske.

Defaultwert: 7

Wertevorschläge: 3, 5, 7, 9, 11, 15, 21, 25, 31, 39

Typischer Wertebereich: 3 ≤ MaskWidth MaskWidth MaskWidth MaskWidth maskWidth ≤ 201

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

MaskHeightMaskHeightMaskHeightMaskHeightmaskHeight (input_control)  extent.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe der Tiefpassmaske.

Defaultwert: 7

Wertevorschläge: 3, 5, 7, 9, 11, 15, 21, 25, 31, 39

Typischer Wertebereich: 3 ≤ MaskHeight MaskHeight MaskHeight MaskHeight maskHeight ≤ 201

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

FactorFactorFactorFactorfactor (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Stärke der Kontrastanhebung.

Defaultwert: 1.0

Wertevorschläge: 0.3, 0.5, 0.7, 1.0, 1.4, 1.8, 2.0

Typischer Wertebereich: 0.0 ≤ Factor Factor Factor Factor factor ≤ 20.0 (sqrt)

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.2

Restriktion: 0 < Factor && Factor < 20

Beispiel (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Beispiel (C)

read_image(&Image,"mreut");
disp_image(Image,WindowHandle);
draw_region(&Region,WindowHandle);
reduce_domain(Image,Region,&Mask);
emphasize(Mask,&Sharp,7,7,2.0);
disp_image(Sharp,WindowHandle);

Beispiel (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Beispiel (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Beispiel (HDevelop)

read_image(Image,'mreut')
dev_display (Image)
draw_region(Region,WindowHandle)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert emphasizeemphasizeEmphasizeEmphasizeEmphasize 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

disp_imagedisp_imageDispImageDispImageDispImage

Alternativen

mean_imagemean_imageMeanImageMeanImageMeanImage, sub_imagesub_imageSubImageSubImageSubImage, laplacelaplaceLaplaceLaplaceLaplace, add_imageadd_imageAddImageAddImageAddImage

Siehe auch

mean_imagemean_imageMeanImageMeanImageMeanImage, highpass_imagehighpass_imageHighpassImageHighpassImageHighpassImage

Modul

Foundation