| Operatoren |
laplace — Näherung des Laplace-Operators durch finite Differenzen.
laplace(Image : ImageLaplace : ResultType, MaskSize, FilterMask : )
laplace filtert die Eingabebilder (Image) mittels des Laplace-Operators. Abhängig vom Parameter FilterMask werden folgende lokale Approximationen an den Laplace-Operator zugrundegelegt:
1
1 -4 1
1
1 1 1
1 -8 1
1 1 1
10 22 10
22 -128 22
10 22 10
Für die einzelnen Filtermasken werden folgende Normierungen der Ergebnisgrauwerte, (d.h. Division durch die angegebene Zahl) durchgeführt: 'n_4' Normierung durch 1, 'n_8', Normierung durch 2 und 'n_8_isotropic' Normierung durch 32.
Für eine 3x3 Laplace-Filterung (MaskSize = 3) wird der entsprechende Filter direkt angewandt. Für größere Laplace-Filter wird das Eingabebild dagegen zunächst mit dem Gaußfilter (siehe gauss_image) oder einem Binomialfilter (siehe binomial_filter) der Größe MaskSize-2 geglättet. Der Gaußfilter wird durch die oben angegebenen Werte von ResultType ausgewählt. Hierbei ist MaskSize = 5, 7, 9, 11 oder 13 zu wählen. Der Binomialfilter wird ausgewählt, indem '_binomial' an die oben angegebenen Werte von ResultType angehängt wird. Hier kann MaskSize zwischen 5 und 39 gewählt werden. Zusätzlich ist es hier möglich, unterschiedliche Glättungen in Spalten- und Zeilenrichtung durch Angabe von zwei Werten in MaskSize zu erreichen. Dabei entspricht der erste Wert der Maskenbreite (Glättung in Spaltenrichtung) und der zweite Wert der Maskenhöhe (Glättung in Zeilenrichtung) des Binomialfilters. Somit ist z.B.
laplace(O:R:'absolute',MaskSize,N:)
für MaskSize > 3 äquivalent zu
gauss_image(O:G:MaskSize-2:) >
laplace(G:R:'absolute',3,N:)
und
laplace(O:R:'absolute_binomial',MaskSize,N:)
ist äquivalent zu
binomial_filter(O:B:MaskSize-2,MaskSize-2:) >
laplace(B:R:'absolute',3,N:).
laplace liefert entweder den Absolutbetrag des Laplace-gefilterten Eingabebildes (ResultType = 'absolute') in einem byte/uint2-Bild oder unmittelbar das Filterergebnis (ResultType = 'signed' oder 'signed_clipped') mit einem Pixeltyp mit Vorzeichen zurück. Dabei ist bei 'signed_clipped' der Ausgabebildtyp von derselben Anzahl von Bytes wie der Eingabebildtyp (also int1 oder int2), während bei 'signed' der Ausgabebildtyp die nächsthöhere Anzahl an Bytes besitzt (also int2 oder int4).
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.
Eingabebild.
Laplace-gefiltertes Ausgabebild.
Typ des Ergebnisbildes, wobei für byte und uint2 der Absolutbetrag zurückgegeben wird.
Defaultwert: 'absolute'
Werteliste: 'absolute', 'absolute_binomial', 'signed', 'signed_binomial', 'signed_clipped', 'signed_clipped_binomial'
Filtergröße.
Defaultwert: 3
Werteliste: 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39
Filtermasle für den Laplace-Operator
Defaultwert: 'n_4'
Werteliste: 'n_4', 'n_8', 'n_8_isotropic'
read_image(&Image,"mreut"); laplace(Image,&Laplace,"signed",3,"n_8_isotropic"); zero_crossing(Laplace,&ZeroCrossings);
Sind die Parameterwerte korrekt, dann liefert laplace den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
zero_crossing, dual_threshold, threshold
diff_of_gauss, laplace_of_gauss, derivate_gauss
Foundation
| Operatoren |