zoom_image_factor — Skalieren von Bildern um einen Vergrößerungsfaktor.
zoom_image_factor(Image : ImageZoomed : ScaleWidth, ScaleHeight, Interpolation : )
zoom_image_factor vergrößert das Bild Image um
einen Faktor ScaleWidth in der Breite und einen Faktor
ScaleHeight in der Höhe. Der Parameter
Interpolation gibt dabei die Art der verwendeten
Interpolationsmethode an (siehe affine_trans_image). Die
Domäne des Eingabebildes wird ignoriert, d.h. es wird die volle
Domäne des Bildrechtecks angenommen.
Falls der Systemparameter 'int_zooming' auf 'true'
gesetzt ist, kann die intern verwendete Integer-Arithmetik in den
folgenden drei Fällen zu Fehlern führen: Zum einen kann das
Ergebnisbild leicht fehlerhafte Grauwerte enthalten, wenn
zoom_image_factor auf ein uint2 oder int2 Bild mit hohem
Dynamikbereich (das heißt, Bilder mit Werten nahe an den Grenzen der
entsprechenden Typen) angewendet wird und gleichzeitig
Skalierungsfaktoren kleiner als 0.5 verwendet werden.
Zum zweiten können undefinierte Grauwerte am unteren und am rechten Bildrand
entstehen, wenn für Interpolation ein anderer Wert als
'nearest_neighbor' gewählt wird, ein großer
Skalierungsfaktor angewendet wird und außerdem ein großes
Ergebnisbild entsteht. Die maximale Breite
dieses Randes mit undefinierten Grauwerten kann mit der Formel
abgeschätzt werden, wobei S den Skalierungsfaktor in
einer Dimension und I die Größe des Ausgabebildes in der
entsprechenden Dimension darstellt.
Zum dritten können undefinierte Grauwerte an allen Bildrändern entstehen,
wenn für Interpolation 'nearest_neighbor' gewählt wird,
es sich um ein Real-Bild handelt, und wenn sowohl Eingabe- als auch
Ergebnisbild groß sind.
In allen Fällen wird empfohlen,
den Systemparameter 'int_zooming' mittels
set_system auf 'false' zu setzen.
Wird 'nearest_neighbor' als Interpolationsmethode gesetzt, können die Ergebnisse für verschiedene Bildtypen leicht voneinander abweichen. Grund dafür sind Bildtyp-spezifische Optimierungen des Interpolationsverfahrens.
zoom_image_factor wird für ScaleWidth = 0.5 und
ScaleHeight = 0.5 nicht intern parallelisiert. Außerdem
erfolgt keine interne Parallelisierung für
Interpolation='nearest_neighbor'.
zoom_image_factor kann auf OpenCL-Geräten ausgeführt werden,
wenn das Eingangsbild die maximale Größe für Bildobjekte des
ausgewählten Gerätes nicht überschreitet. Aus numerischen Gründen
kann es dabei zu geringfügigen Abweichungen des Ergebnisses
gegenüber der Ausführung auf der CPU kommen.
Image (input_object) (multichannel-)image(-array) → object (byte* / int2* / uint2* / real*) *erlaubt für Compute Devices
Eingabebild.
ImageZoomed (output_object) (multichannel-)image(-array) → object (byte / int2 / uint2 / real)
Skaliertes Ausgabebild.
ScaleWidth (input_control) extent.x → (real)
Faktor für Breite des Zielbildes.
Default: 0.5
Wertevorschläge: 0.25, 0.5, 1.5, 2.0
Wertebereich:
0.001
≤
ScaleWidth
≤
10.0
Minimale Schrittweite: 0.001
Empfohlene Schrittweite: 0.1
ScaleHeight (input_control) extent.y → (real)
Faktor für Höhe des Zielbildes.
Default: 0.5
Wertevorschläge: 0.25, 0.5, 1.5, 2.0
Wertebereich:
0.001
≤
ScaleHeight
≤
10.0
Minimale Schrittweite: 0.001
Empfohlene Schrittweite: 0.1
Interpolation (input_control) string → (string)
Art der Interpolation.
Default: 'constant'
Werteliste: 'bicubic', 'bilinear', 'constant', 'nearest_neighbor', 'weighted'
read_image(Image,'monkey') dev_display (Image) zoom_image_factor (Image, ZoomImage, 0.25, 0.25, 'constant') dev_display (ZoomImage)
zoom_image_size,
affine_trans_image,
hom_mat2d_scale
hom_mat2d_scale,
affine_trans_image
Foundation