zoom_image_size — Skalieren von Bildern auf eine vorgegebene Größe.
zoom_image_size(Image : ImageZoom : Width, Height, Interpolation : )
zoom_image_size vergrößert das Bild Image auf die
durch Width und Height vorgegebene Größe. 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 beiden Fällen zu Fehlern führen: Zum einen kann das
Ergebnisbild leicht fehlerhafte Grauwerte enthalten, wenn
zoom_image_size 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 (Verhältnis von Ausgabe- zu Eingabebildgröße)
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. In beiden Fällen wird empfohlen,
den Systemparameter 'int_zooming' mittels
set_system auf 'false' zu setzen.
zoom_image_size wird nicht intern parallelisiert, wenn
Width und Height den halben Dimensionen von
Image entsprechen. Außerdem erfolgt keine interne
Parallelisierung für
Interpolation='nearest_neighbor'.
zoom_image_size 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
ImageZoom (output_object) (multichannel-)image(-array) → object (byte / int2 / uint2 / real)
Skaliertes Ausgabebild.
Width (input_control) extent.x → (integer)
Breite des Zielbildes.
Defaultwert: 512
Wertevorschläge: 128, 256, 512
Typischer Wertebereich: 2
≤
Width
≤
512
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Height (input_control) extent.y → (integer)
Höhe des Zielbildes.
Defaultwert: 512
Wertevorschläge: 128, 256, 512
Typischer Wertebereich: 2
≤
Height
≤
512
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Interpolation (input_control) string → (string)
Art der Interpolation.
Defaultwert: 'constant'
Werteliste: 'bicubic', 'bilinear', 'constant', 'nearest_neighbor', 'weighted'
read_image(Image,'monkey') dev_display (Image) zoom_image_size(Image,ZoomImage,200,200,'constant') dev_display (ZoomImage)
zoom_image_factor,
affine_trans_image,
hom_mat2d_scale
hom_mat2d_scale,
affine_trans_image
Foundation