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