| Operatoren |
mean_image — Glättung durch Mittelwertbildung.
mean_image(Image : ImageMean : MaskWidth, MaskHeight : )
mean_image führt eine lineare Glättung mit den Grauwerten aller Eingabebilder (Image) durch. Die Filtermatrix besteht aus Einsen (gleich gewichtet) und hat die Größe MaskHeight x MaskWidth. Das Ergebnis der Konvolution wird durch MaskHeight x MaskWidth dividiert. Als Randbehandlung werden die Grauwerte an den Bildrändern gespiegelt.
Für mean_image sind spezielle Optimierungen unter Verwendung von SIMD Technologie implementiert. Ob diese tatsächlich zur Anwendung kommen, kann über den Systemparameter 'mmx_enable' (siehe set_system) gesteuert werden. Falls 'mmx_enable' auf 'true' gesetzt wird (und die verwendete Hardware SIMD Technologie unterstützt), wird die Berechnung intern unter Verwendung von SIMD Technologie durchgeführt. Es ist zu beachten, dass der Beschleunigungseffekt von SIMD Technologie bei großen, kompakten Eingaberegionen am größten ist. Im Einzelfall kann aber die Ausführung von mean_image, abhängig von der Eingaberegion und den Hardwareeigenschaften, mit SIMD Technologie auch länger dauern als ohne.
In jedem Falle wirkt es sich günstig auf das Laufzeitverhalten von mean_image aus, wenn man die Eingaberegion von Image so wählt, dass es zu keiner Randbehandlung kommt.
Werden für MaskHeight oder MaskWidth gerade statt ungerade Werte übergeben, verwendet die Routine an ihrer Stelle die nächstgrößeren ungeraden Werte (damit ist der Schwerpunkt der Filtermaske immer eindeutig bestimmt).
mean_image kann für byte-, int2-, uint2-, int4- und real-Bilder auf OpenCL Geräten ausgeführt werden, wenn MaskHeight kleiner als zweimal die Höhe von Image ist. Der OpenCL Code berechnet die Filterantwort intern mit 32 bit Integerarithmetik (für real-Bilder wird einfach genaue Fließkommaarithmetik verwendet). Dies kann zu Überläufen (und damit zu fehlerhaften Ergebnissen) führen, wenn der gesamte Wertebereich von int4- oder real-Bildern verwendet wird. Da zur Verbesserung der Laufzeit für eine MaskWidth größer 9 ein vollständiger Scan jeder Zeile von Image berechnet wird, kann es in diesem Fall auch bei byte-, int2- oder uint2-Bildern zu Überläufen kommen, wenn Image sehr breit ist. In solchen Fällen muss die CPU-Version von mean_image verwendet werden.
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.
Zu glättendes Bild.
Geglättetes Bild.
Breite der Filtermaske.
Defaultwert: 9
Wertevorschläge: 3, 5, 7, 9, 11, 15, 23, 31, 43, 61, 101
Typischer Wertebereich: 1 ≤ MaskWidth ≤ 501
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Restriktion: odd(MaskWidth)
Höhe der Filtermaske.
Defaultwert: 9
Wertevorschläge: 3, 5, 7, 9, 11, 15, 23, 31, 43, 61, 101
Typischer Wertebereich: 1 ≤ MaskHeight ≤ 501
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Restriktion: odd(MaskHeight)
read_image(Image,'fabrik') mean_image(Image,Mean,3,3) dev_display(Mean)
Pro Bildpunkt: O(15).
Sind die Parameterwerte korrekt, dann liefert mean_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.
reduce_domain, rectangle1_domain
binomial_filter, gauss_filter, smooth_image
anisotropic_diffusion, sigma_image, convol_image, gen_lowpass
Foundation
| Operatoren |