smooth_image
— Glättung mit verschiedenen Filtern.
smooth_image(Image : ImageSmooth : Filter, Alpha : )
smooth_image
dient zur Glättung von Graustufenbildern
mittels rekursiver Filter (nach Deriche und Shen) bzw. mittels des
konventionell implementierten Gaußfilters. Konkret lassen sich
über den Parameter Filter
folgende vier Filter
auswählen:
'deriche1', 'deriche2', 'shen' und 'gauss'.
Die „Filterbreite“ (d.h. das Einzugsgebiet und damit die
glättende Wirkung der Filter) ist frei wählbar. Sie nimmt bei den
Deriche- und dem Shen-Filter mit wachsendem Filterparameter
Alpha
ab, beim Gaußfilter hingegen zu (Alpha
ist in diesem Fall die Standardabweichung der Gaußfunktion). Eine
Abschätzung des Einzugsgebiets der Filter für konkrete Werte von
Alpha
liefert die Routine info_smooth
.
Nicht-rekursive Filter, wie hier der Gaußfilter, werden häufig
mittels Filtermasken realisiert. In diesem Fall erhöht sich die
Laufzeit natürlich mit wachsender Filterbreite. Die Laufzeit der
rekursiven Filter ist hingegen praktisch konstant. Lediglich die
Randbehandlung (Spiegelung der Randpunkte) ist bei „breiteren“
Filter etwas aufwändiger. Das Einzugsgebiet der Deriche- bzw. des
Shen-Filters ist also fast ohne Mehraufwand beliebig vergrößerbar.
Der daraus resultierende Laufzeitvorteil gegenüber dem Gaußfilter
nimmt naturgemäß mit wachsender „Filterbreite“ zu. Allerdings
ist nur der Gaußfilter isotrop, alle anderen Filter sind anisotrop
(wobei der 'deriche2'-Filter nur schwach richtungs-sensitiv ist).
Eine vergleichbare glättende Wirkung der Filter erhält man bei
folgender Wahl von Alpha
:
Alpha(deriche2) = Alpha(deriche1) / 2,
Alpha(shen) = Alpha(deriche1) / 2,
Alpha(gauss) = 1.77 / Alpha(deriche1).
Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel Filter / Glättung beschrieben.
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.
Image
(input_object) (multichannel-)image(-array) →
object (byte / uint2 / real)
Zu glättende Bilder.
ImageSmooth
(output_object) (multichannel-)image(-array) →
object (byte / uint2 / real)
Geglättete Bilder.
Filter
(input_control) string →
(string)
Gewünschter Filter.
Defaultwert: 'deriche2'
Werteliste: 'deriche1' , 'deriche2' , 'gauss' , 'shen'
Alpha
(input_control) real →
(real)
Filterparameter: kleine Werte bewirken starke Glättung (bei 'gauss' umgekehrt).
Defaultwert: 0.5
Wertevorschläge: 0.1, 0.2, 0.3, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.0, 10.0
Typischer Wertebereich: 0.01
≤
Alpha
≤
50.0
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.1
Restriktion: Alpha > 0
info_smooth('deriche2',0.5,Size,Coeffs) smooth_image(Input,Smooth,'deriche2',7)
Sind die Parameterwerte korrekt liefert smooth_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>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
threshold
,
dyn_threshold
,
regiongrowing
binomial_filter
,
gauss_filter
,
mean_image
,
derivate_gauss
,
isotropic_diffusion
info_smooth
,
median_image
,
sigma_image
,
anisotropic_diffusion
R.Deriche: „Fast Algorithms for Low-Level Vision“; IEEE Transactions on Pattern Analysis and Machine Intelligence; PAMI-12, no. 1; S. 78-87; 1990.
Foundation