| Operatoren |
anisotrope_diff — Kantenerhaltende Glättung durch anisotrope Diffusion.
anisotrope_diff ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt. Neue Applikationen sollten stattdessen anisotropic_diffusion verwenden.
anisotrope_diff(Image : ImageAniso : Percent, Mode, Iteration, NeighborhoodType : )
anisotrope_diff realisiert ein iteratives, anisotropes Glättungsverfahren, das auf den mathematischen Grundlagen der physikalischen Diffusion beruht. In Analogie zum physikalischen Diffusionsprozess, der den Konzentrationsausgleich zwischen Molekülen in Abhängigkeit vom Dichtegradienten beschreibt, führt der Diffusionsfilter eine Glättung der Grauwerte, abhängig von den lokalen Grauwertgradienten, durch.
Zur iterativen Berechnung des Grauwertes eines Pixels werden die Grauwertdifferenzen zu den vier bzw. acht Nachbarn herangezogen. Diese Grauwertdifferenzen gehen jedoch mit unterschiedlicher Gewichtung in die Berechnung ein, d.h. es handelt sich um einen nichtlinearen Diffusionsprozess.
Die Gewichtung erfolgt mittels einer Diffusionsfunktion (implementiert wurden zwei verschiedene Funktionen, Mode = 1 bzw. 2), die --- abhängig vom Gradienten --- dafür sorgt, dass innerhalb homogener Regionen stärker geglättet wird als über die Regionengrenzen hinweg. Die Kanten bleiben deswegen scharf erhalten. Die Diffusionsfunktion wird mittels einer Histogrammanalyse im Gradientenbild (nach Canny) auf das Rauschverhältnis des Bildes hin abgestimmt. Ein hoher Wert für Percent erhöht dabei die glättende Wirkung, verwischt aber auch Kanten etwas mehr (typisch sind Werte von 80 - 90 Prozent).
Der Parameter Iteration legt die Zahl der Iterationen fest (typisch 3--7).
Zu glättendes Bild.
Geglättetes Bild.
Für Histogrammanalyse. Größere Werte erhöhen die glättende Wirkung, typisch: 80 - 90.
Defaultwert: 80
Wertevorschläge: 65, 70, 75, 80, 85, 90
Typischer Wertebereich: 50 ≤ Percent ≤ 100
Minimale Schrittweite: 1
Empfohlene Schrittweite: 5
Auswahl der Diffusionsfunktion.
Defaultwert: 1
Werteliste: 1, 2
Anzahl der Iterationen, typische Werte: 3 - 7.
Defaultwert: 5
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Typischer Wertebereich: 1 ≤ Iteration ≤ 30
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Gewünschter Nachbarschaftstyp.
Defaultwert: 8
Werteliste: 4, 8
read_image(Image,'fabrik') anisotrope_diff(Image,Aniso,80,1,5,8) sub_image(Image,Aniso,Sub,2.0,127) dev_display(Sub)
Pro Bildpunkt: O(Iterations * 18).
Sind die Parameterwerte korrekt, dann liefert anisotrope_diff 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.
P. Perona, J. Malik: „Scale-space and edge detection using anisotropic diffusion“, IEEE transaction on pattern analysis and machine intelligence, Vol. 12, No. 7, July 1990.
Foundation
| Operatoren |