interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImage (Operator)

Name

interpolate_scattered_data_imageT_interpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImage — Interpolation eines Bildes.

Signatur

interpolate_scattered_data_image(Image, RegionInterpolate : ImageInterpolated : Method, GenParamName, GenParamValue : )

Herror T_interpolate_scattered_data_image(const Hobject Image, const Hobject RegionInterpolate, Hobject* ImageInterpolated, const Htuple Method, const Htuple GenParamName, const Htuple GenParamValue)

void InterpolateScatteredDataImage(const HObject& Image, const HObject& RegionInterpolate, HObject* ImageInterpolated, const HTuple& Method, const HTuple& GenParamName, const HTuple& GenParamValue)

static void HOperatorSet.InterpolateScatteredDataImage(HObject image, HObject regionInterpolate, out HObject imageInterpolated, HTuple method, HTuple genParamName, HTuple genParamValue)

Beschreibung

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImage interpoliert das Bild ImageImageImageImageimage innerhalb der Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate und gibt das Ergebnis in ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolated zurück. Die Differenz zwischen der Domäne des Bildes ImageImageImageImageimage und der Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate definiert die gültigen Datenpunkte, die für die Interpolation verwendet werden, wohingegen die Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate die Punkte definiert, an denen die Grauwerte des Bildes ImageImageImageImageimage bestimmt werden sollen. Mit dem Parameter MethodMethodMethodMethodmethod wird der Interpolations-Algorithmus festgelegt. Bisher werden nur die 'thin_plate_splines'"thin_plate_splines""thin_plate_splines""thin_plate_splines""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 ImageImageImageImageimage and unterschiedlichen Regionen RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate interpoliert, kann der Operator create_scattered_data_interpolatorcreate_scattered_data_interpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolatorCreateScatteredDataInterpolator effizienter sein.

Die folgenden Parameter können mit GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue gesetzt werden:

'alpha'"alpha""alpha""alpha""alpha":

Der Parameter 'alpha'"alpha""alpha""alpha""alpha" ist ein Glättungsfaktor. Für 'alpha'"alpha""alpha""alpha""alpha" = 0 werden alle Punkte des Bildes ImageImageImageImageimage exakt interpoliert. Für sehr große Werte von 'alpha'"alpha""alpha""alpha""alpha" glättet die Interpolation die Bildpunkte so, dass alle interpolierten Punkte des Ausgabebildes ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolated auf einer gemeinsamen Ebene liegen. Defaultwert ist 0. Beschränkungen: 'alpha'"alpha""alpha""alpha""alpha" >= 0

interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImage arbeitet am besten mit wenigen Datenpunkten, z.B. weniger als 1000. Zum Rekonstruieren von verlorenen Bilddaten in der Region RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate, sollte die Anzahl der Datenpunkte entsprechend angepasst werden, z.B. indem nur die Randpixel der zu rekonstruierenden Regionen verwendet werden (siehe Beispielprogramm unten).

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHobject (byte / uint2 / real)

Bild, das interpoliert werden soll.

RegionInterpolateRegionInterpolateRegionInterpolateRegionInterpolateregionInterpolate (input_object)  region objectHRegionHRegionHobject

Region auf der interpoliert werden soll.

ImageInterpolatedImageInterpolatedImageInterpolatedImageInterpolatedimageInterpolated (output_object)  singlechannelimage objectHImageHImageHobject * (real)

Interpoliertes Ausgabebild.

MethodMethodMethodMethodmethod (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Methode für die Interpolation.

Defaultwert: 'thin_plate_splines' "thin_plate_splines" "thin_plate_splines" "thin_plate_splines" "thin_plate_splines"

Wertevorschläge: 'thin_plate_splines'"thin_plate_splines""thin_plate_splines""thin_plate_splines""thin_plate_splines"

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter, die angepasst werden können.

Defaultwert: []

Wertevorschläge: 'alpha'"alpha""alpha""alpha""alpha"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value-array HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Werte der generischen Parameter, die angepasst werden können.

Defaultwert: []

Wertevorschläge: 0, 1.0, 10.0, 100.0

Beispiel (HDevelop)

* 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)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert interpolate_scattered_data_imageinterpolate_scattered_data_imageInterpolateScatteredDataImageInterpolateScatteredDataImageInterpolateScatteredDataImage den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Alternativen

interpolate_scattered_data_points_to_imageinterpolate_scattered_data_points_to_imageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImageInterpolateScatteredDataPointsToImage

Modul

Foundation