interpolate_scattered_data_image
— Interpolation eines Bildes.
interpolate_scattered_data_image(Image, RegionInterpolate : ImageInterpolated : Method, GenParamName, GenParamValue : )
interpolate_scattered_data_image
interpoliert das Bild Image
innerhalb der Region RegionInterpolate
und gibt das Ergebnis in
ImageInterpolated
zurück. Die Differenz zwischen der Domäne des
Bildes Image
und der Region RegionInterpolate
definiert die gültigen Datenpunkte, die für die Interpolation verwendet
werden, wohingegen die Region RegionInterpolate
die Punkte
definiert, an denen die Grauwerte des Bildes Image
bestimmt
werden sollen. Mit dem Parameter Method
wird der
Interpolations-Algorithmus festgelegt. Bisher werden nur die
'thin_plate_splines' unterstützt. Diese Methode interpoliert die
Datenpunkte auf globaler Ebene, was bedeutet, dass alle Punkte für die
Interpolation verwendet werden, egal wie weit sie von einander weg liegen.
Der Einfluss von entfernten Punkten korreliert mit
wobei r die Entfernung zweier Punkte
beschreibt. Wird das selbe Bild Image
and unterschiedlichen
Regionen RegionInterpolate
interpoliert, kann der Operator
create_scattered_data_interpolator
effizienter sein.
Die folgenden Parameter können mit GenParamName
und
GenParamValue
gesetzt werden:
Der Parameter 'alpha' ist ein Glättungsfaktor.
Für 'alpha' = 0 werden alle Punkte des Bildes Image
exakt interpoliert.
Für sehr große Werte von 'alpha' glättet die Interpolation
die Bildpunkte so, dass alle interpolierten Punkte des Ausgabebildes
ImageInterpolated
auf einer gemeinsamen Ebene liegen.
Defaultwert ist 0.
Beschränkungen: 'alpha' >= 0
interpolate_scattered_data_image
arbeitet am besten mit wenigen
Datenpunkten, z.B. weniger als 1000. Zum Rekonstruieren von verlorenen
Bilddaten in der Region RegionInterpolate
, sollte die Anzahl der
Datenpunkte entsprechend angepasst werden, z.B. indem nur die Randpixel der
zu rekonstruierenden Regionen verwendet werden
(siehe Beispielprogramm unten).
Image
(input_object) singlechannelimage →
object (byte / uint2 / real)
Bild, das interpoliert werden soll.
RegionInterpolate
(input_object) region →
object
Region auf der interpoliert werden soll.
ImageInterpolated
(output_object) singlechannelimage →
object (real)
Interpoliertes Ausgabebild.
Method
(input_control) string →
(string)
Methode für die Interpolation.
Defaultwert: 'thin_plate_splines'
Wertevorschläge: 'thin_plate_splines'
GenParamName
(input_control) attribute.name-array →
(string)
Namen der generischen Parameter, die angepasst werden können.
Defaultwert: []
Wertevorschläge: 'alpha'
GenParamValue
(input_control) attribute.value-array →
(string / integer / real)
Werte der generischen Parameter, die angepasst werden können.
Defaultwert: []
Wertevorschläge: 0, 1.0, 10.0, 100.0
* This example program shows how to use the scattered data interpolator * to fill holes in an image gen_image_surface_second_order (ImageData, 'real', 1, 1, 0, 0, 0, 1, \ 24, 24, 48, 48) gen_circle (Circle, 12, 12, 6) difference (ImageData, Circle, Region) reduce_domain (ImageData, Region, ImageReduced) dev_clear_window () dev_display (ImageReduced) stop() * * Select only border pixels for the interpolation dilation_circle (Circle, CircleDilation, 1.5) intersection (CircleDilation, Region, RegionBorderData) dev_clear_window () dev_display (ImageReduced) dev_display (RegionBorderData) stop() * * Interpolate pixels reduce_domain (ImageData, RegionBorderData, ImageReducedBorder) interpolate_scattered_data_image (ImageReducedBorder, Circle, \ ImageInterpolated, \ 'thin_plate_splines', [], []) paint_gray (ImageInterpolated, ImageData, ImageFilled) dev_clear_window () dev_display (ImageFilled)
Sind die Parameterwerte korrekt, dann liefert
interpolate_scattered_data_image
den Wert 2 (H_MSG_TRUE). Gegebenenfalls
wird eine Fehlerbehandlung durchgeführt.
interpolate_scattered_data_points_to_image
Foundation