| Operatoren |
add_image — Addieren zweier Bilder.
add_image(Image1, Image2 : ImageResult : Mult, Add : )
add_image addiert zwei Bilder. Die Grauwerte (g1,g2) der Eingabebilder (Image1 und Image2) werden dabei wie folgt transformiert:
g' := (g1 + g2) * Mult + Add
Tritt ein Überlauf oder ein Unterlauf ein, so werden die Werte beschnitten. Dies gilt nicht im Fall von cyclic- und direction-Bildern. Das Ergebnisbild wird in ImageResult abgelegt.
Es ist möglich, byte-Bilder mit int2, uint2 oder int4 Bildern bzw. int4 mit int2 oder uint2 Bildern zu addieren. In diesem Fall werden int2, uint2 oder int4 bzw. int4 Bilder als Ergebnis erzeugt.
Es können mehrere Bilder pro Aufruf bearbeitet werden. In diesem Fall enthalten beide Eingabeparameter gleich viele Bilder, die dann paarweise abgearbeitet werden. Zu jedem Paar wird ein Ausgabebild erzeugt.
Es ist zu beachten, dass die Laufzeit des Operators von der Wahl der Steuerparameter abhängt. Für häufig verwendete Parameterkombinationen sind spezielle Optimierungen implementiert. Für byte, int2. uint2 und int4 Bilder sind außerdem 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.
add_image kann für byte-, int1-, int2-, uint2-, int4-, real-, direction-, cyclic-, und complex-Bilder auf OpenCL Geräten ausgeführt werden. Da OpenCL 1.0 aber nur einfache genaue Fließkommaunterstützung voraussetzt und nicht alle Rundungsarten unterstützt werden, kann das Ergebnis der OpenCL-Implementierung geringfügig von dem der skalaren oder der SIMD-Implementierung abweichen.
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 add_image, abhängig von der Eingaberegion und den Hardwareeigenschaften, mit SIMD Technologie länger dauern als ohne. In diesem Falle lässt sich die Verwendung von SIMD Technologie durch set_system(::'mmx_enable','false':) verhindern.
Bild(er) 1.
Bild(er) 2.
Ergebnisbil(der) durch die Bildpunktaddition.
Faktor zur Grauwertanpassung.
Defaultwert: 0.5
Wertevorschläge: 0.2, 0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 5.0
Typischer Wertebereich: -255.0 ≤ Mult ≤ 255.0
Minimale Schrittweite: 0.001
Empfohlene Schrittweite: 0.1
Wert für Grauwertausgleich.
Defaultwert: 0
Wertevorschläge: 0, 64, 128, 255, 512
Typischer Wertebereich: -512.0 ≤ Add ≤ 512.0
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 1.0
read_image(Image1,'fabrik') dev_display (Image1) read_image(Image2,'monkey') dev_display (Image2) add_image(Image1,Image2,Result,0.5,10.0) dev_display (Result)
add_image liefert den Wert 2 (H_MSG_TRUE), falls die Parameter korrekt sind. 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.
Foundation
| Operatoren |